Telelogic Tau 4.2.0.2 Fixed problems |
IBM Corporation |
© Copyright IBM Corporation 2002, 2009
U.S. Government Users Restricted Rights - Use, duplication, or disclosure restricted
by GSA ADP Schedule Contract with IBM Corp.
Call Ticket | CR ID | Synopsis | Release Notes Text | |
2092793 | TLOG#48091 | Tau G2 4.2does not provide info on TIL errors | Tau G2 4.2 does not provide complete info on TIL errors - a reference to model element is missing in the error message. This defect has been fixed. | |
03006,122,000 | TLOG#49039 | Tau web server needs to close due to a socket error: INVALID_SOCKET | If the default Tau Web Server port is occupied when launching Tau, Tau would not start. This has been fixed. |
Call Ticket |
PD Call Ticket |
Synopsis |
Release Notes Text |
2090302 |
TLOG#45424 |
Tau crashed while starting Model verifier |
Application Builder no longer crashes when starting the Model Verifier without an artifact. |
2090300 |
TLOG#45393 |
Tau G2 doesn't support modifying OctetString data types in MV watch window |
It is now possible to edit octet string in the Watch window. |
2090562 |
TLOG#45559 |
cannot inject message to MV |
The Model Verifier no longer halts if signals with large parameters are sent into the system. |
Call Ticket |
PD Call Ticket |
Synopsis |
Release Notes Text |
1047685 |
TLOG#19756 |
Spelling errors in error messages |
A few spelling errors in semantic checker messages were corrected. |
4031792 |
TLOG#20555 |
Method calls in SQD get wrong return type when using 'Reference Existing' |
Previously when using "Reference Existing" for showing a method call in a sequence diagram, the return type would be incorrectly set. This has now been fixed. |
7007005 |
TLOG#21034 |
Different behavior when class has active/passive class as array |
When generating C code, composite attributes typed by passive classes are not automatically initialized. A new semantic check has been added to detect and warn about such cases. |
4032242 |
TLOG#21036 |
Faulty error message when having passive part with initial count |
See TLOG#21034. |
4023780 |
TLOG#21708 |
method call spanning many lifelines is not pasted correctly |
Documentation is updated. The new sub section "Copying a messages" is added in UML Modeling -> UML Language Guide -> Scenario Modeling -> Message. |
2074886 |
TLOG#21755 |
Property Editor - change name of type name to null does not work |
The wrong context menu could at some occasions be displayed in the property editor. This is now resolved. |
7004023 |
TLOG#21916 |
Make Space does not move separator line |
Make space' command now also move separator lines in sequence diagrams. |
4033576 |
TLOG#22147 |
No error given when having an operation as trigger in C++ code generation |
When having an operation as trigger in a model intended for C++ code generation an error is now reported since this construct is not supported by the C++ code generator. |
7008912 |
TLOG#23159 |
TIL2066: Several matches |
Previously when generating C code incorrect code would be generated if an attribute and its type had the same name. This has now been solved, and such models are now correctly translated to C. |
4037698 |
TLOG#25910 |
Name completion do not work properly when entity name contain spaces |
Now name completion inserts unparsed name of selected definition (i.e. if it contains spaces, it will be quoted). |
7011486 |
TLOG#26089 |
Solaris only: Painting Error With Port Interface Symbols. |
On Solaris platform there was a painting errors on port interface symbols. This is now corrected. |
4040176 |
TLOG#28297 |
Semantic checker does not find errors in 'Conditional' expressions |
When generating C, C++ and Java code, binding errors in conditional expressions are now detected and reported. |
7014038 |
TLOG#28658 |
Call to non-public operation to caught by the semantic checker. TIL2088-error |
A call to a non-public operation is now caught by the semantic checker. |
4041083 |
TLOG#29226 |
Using 'remove' on a Charstring gives TIL2371 error |
Support for "remove" Charstring operator has been added to C code generators, Model Verifier and Validator. |
7014678 |
TLOG#29432 |
Using named return parameter from an Operation gives TIL2312 errors |
A new semantic check was implemented to detect incorrect usage of named return parameters. |
2081239 |
TLOG#30470 |
Using 'unsigned long long int' results in TIL Errors |
Support for 'unsigned long long int' and 'long long int' types has been implemented in C and AgileC code generators, ModelVerifier and Validator. XNOUSE_LONG_LONG compile switch has been added - it controls whether long long type is used in the generated code. For the code generators this compile switch is generated automatically to auto_cfg.h file. If UML model does not use 'unsigned long long int' and 'long long int', #define XNOUSE_LONG_LONG will be added to auto_cfg.h. For ModelVerifier and Validator, this compile switch is never set and long long types are always available in the generated code. |
6017412 |
TLOG#30552 |
In the shortcut window,symbols doesnt grey out. |
Disabled buttons in the "Create diagram element" toolbar is now grey out when shown in the shortcut window. |
3031780 |
TLOG#31081 |
XML Parser errors |
Previously when generating C code with the option enabled to produce a "Result of C generation" package, the XML in this .u2 file would contain errors if the path to generated C files contains a character that would need escaping in XML (such as '&'). This problem has now been fixed. |
6017484 |
TLOG#31207 |
Tau G2 Char types |
The definition of unsigned_char from BasicCTypes.pr has been updated and now it is defined as 'unsigned char' in generated code. |
4044599 |
TLOG#32963 |
The semantic checker do not work give proper feedback with on a java project |
Semantic checks run on models for Java code generation are now correctly summarized (informing about the total number of errors and warnings found). |
3033694 |
TLOG#32972 |
Incorrect Parameter Evaluation Order |
The
C Code Generator has been updated to ensure that all parameters in an
operation call are evaluated from left to right. This is true for operations
defined in UML as well as for external operations. This applies for all
versions of the C code generator, regardless of which target compiler that
will be used, except for Agile CCG for which parameter evaluation order for
external function calls still is compiler dependent. |
7020025 |
TLOG#34933 |
Testing Profile name clashes |
Semantic checks specific for the Testing Profile will now detect erroneous name clashes. |
3035379 |
TLOG#35078 |
Text overflows the tab on package when label position stereotype is applied |
Package symbol tab appearance has been improved, and package label is now placed inside the symbol as default. |
7020574 |
TLOG#35834 |
while doing a check-all error :TCS2007 occurs |
A problem related to the inline type of actors, subjects etc. which is created automatically by drag/drop has been fixed. |
6022457 |
TLOG#36443 |
Tau 3.1 Seq Diagram Trace (start_msc 2) error |
Positioning of sequence diagram symbols during trace has been improved. |
6022712 |
TLOG#36684 |
Update from DOORS doesn't reflect changes to module names in DOORS |
When the name of an imported DOORS module is changed in DOORS, the new name is now properly displayed in Tau after doing a Full Update. |
7022481 |
TLOG#38002 |
'End'-key do not work properly in State symbols |
Text editing in diagrams has been improved to better support Home and End keys. |
7023455 |
TLOG#38866 |
The Model Verifier can not handle two signals with different signatures |
Signals with the same name but with different signatures are now supported in ModelVerifier. Signals are identified by name + list of formal parameter types. In ModelVerifier GUI Signal drop-down list and in trace messages displayed signal names are followed by formal parameter list, for example, testSignal(Integer). |
7023624 |
TLOG#39073 |
TAU Merge Crashes |
A crash while doing automatic merge have been fixed. |
7023493 |
TLOG#39174 |
Uncomplete SQD built with the HTML report |
See TLOG#42238. |
4050153 |
TLOG#39348 |
Compare/Merge from command line (Synergy Int) do not handle files with spaces |
The U2FileUtility now supports spaces in file names. |
4050162 |
TLOG#39349 |
Error message contain two full stops at end |
The U2FileUtility now supports spaces in file names. |
7023896 |
TLOG#39369 |
Tau Consistenly Crashes when doing a 3-way Merge |
Tau no longer crash while doing a 3-way merge. |
2084244 |
TLOG#39370 |
Tau 4.0 documentation error |
The UML Tutorial now has the right version number. |
4050352 |
TLOG#40055 |
The autolayout algorithm do not take the maximum diagram size into consideration |
A warning is now shown in "Messages" report tab if some elements are placed outside diagram bounds. |
4050875 |
TLOG#40212 |
Quotation marks not inserted by Auto Completion |
Quotation marks is added automatically if needed for Accept Event, Send Signal, Actor, State, Signal Receipt, Signal Sending and Save symbols. |
7025188 |
TLOG#40376 |
Deleting class attributes does not actually delete the attribute |
Attribute is deleted from SA repository when using the context menu "Delete attribute" now. |
7025204 |
TLOG#40378 |
Placing a UML2 SQD message by single-click place the message faulty |
Positioning of message lines created with single-click feature are now positioned better. |
7025258 |
TLOG#40404 |
UML2: The X and ? buttons in the color pallet dialog freeze SA |
X and ? In color palette dialog button no longer freeze the tool. |
4051068 |
TLOG#40408 |
'Check All' gives 6 warnings on class symbol in new C# model |
All C# and Java collection types now inherit from ::Predefined::Collection, making them easier to use at UML level. |
4051103 |
TLOG#40447 |
Documentation about DOORS baselines needs to be updated |
|
1060994 |
TLOG#40519 |
Update TAU help document |
New example added to the "Types representing signals" section in documentation. |
7025366 |
TLOG#40553 |
Bad parameter value for a signal traced by the Verifier |
Support for signals with the same name but different signatures has been implemented in SequenceDiagram Trace. The sequence diagram now shows the correct actual parameter values for such signals. |
1061759 |
TLOG#41301 |
What does "createEntityFeatureLabels" do? |
CreateEntityFeatureLabels parameter given to certain diagram generators now create attributes and operations in class symbols. |
1062466 |
TLOG#41928 |
Tau 4.0 help doc - typo Cmp |
Documentation no longer use the abbreviation for the word compare. |
4052335 |
TLOG#41968 |
SA stored model exported to DOORS do not keep information when closed/reopened |
When using the System Architect and DOORS integration simultaneously, could at some occasions loose information. This is now resolved. |
3026051 |
TLOG#41983 |
External(operation/otherwise)names should not be mangled by the code generator |
A new option was added to all C build artifacts (including the Model Verifier) which allows external operations not to be name mangled. |
4052345 |
TLOG#41989 |
Not possible to create an actor from SA VBA using the Tau API |
It is possible to create an actor via Tau API now. |
4052440 |
TLOG#42116 |
'SYNERGY - Merge project' gives Java errors |
The Java error for the Synergy - Merge project has been corrected in ListProjectCommand on Java integration side. |
7027401 |
TLOG#42120 |
Tau crash |
The possible cause for a crash have been fixed. |
7027352 |
TLOG#42223 |
The tool never stops on a SQD testcase |
In rear occasions test execution would continue even when verdict is printed. Now the test process is terminated when verdict is printed. |
7027576 |
TLOG#42238 |
The HTML Browser do not publish the complete diagram |
HTML Browser could at some occasions generate a cropped diagram. The problem is resolved. |
7027757 |
TLOG#42373 |
Icon and LabelPosition stereotypes still visible in Tau 4.1 |
Icon and LabelPosition stereotypes are now invisible. |
7027852 |
TLOG#42452 |
Not possible to create multiple Dependency links with diagrams open |
Creation of dependancy link with multiple targets is now supported with the End link command. |
4052823 |
TLOG#42551 |
Compartment text hidden by 'Active class line' |
Text in compartments could be overdrawn with the active class lines. Text is now placed between active class lines. |
4052824 |
TLOG#42552 |
Connector end text overlap the port |
Positioning of Connector Line's end text labels was improved. |
4052866 |
TLOG#42637 |
Autolayout in Composite Structure Diagrams destroyed by Autolayout |
Line routing in Composite structure diagrams has been improved. |
7028268 |
TLOG#42880 |
SysML model checker does not acknowledge stereotype inheritance |
SysML specific semantic checks now take inheritance into account. |
1063523 |
TLOG#42954 |
How to access system call public func from a child class (composition) |
A new semantic check was implemented to give a warning if an attribute is defined in an active class which has parts (directly, or indirectly through inheritance). The reason is that such a construct cannot always be translated to correct C code. |
7028689 |
TLOG#43248 |
Tau crash when drawing ports using SA-Tau integration |
Tau could terminate unexpectedly when creating multiple ports on a class while using the System Architect integration. |
1064122 |
TLOG#43294 |
Ctrl+click can not locate the definitions when “Show/Hide is off |
Ctrl+Click now works properly to locate elements when "Show/Hide commands" are enabled. |
4053150 |
TLOG#43317 |
errors when building and the SA Integration is enabled |
Conflicting elements in System Architect integration has been removed. |
3040655 |
TLOG#43478 |
Warning messages while dragging activity to Interaction Overview Diagram |
An error in the definition of the <<interaction occurrence>> stereotype, which would cause a warning, has now been corrected. |
2089183 |
TLOG#44650 |
The folder are 0 BUG? |
Sometimes DoDAF view would contain some unnecessary "0" folders. These folders will not appear in DoDAF view anymore. |
The following problems have been corrected in earlier versions (patches) of Tau and are now included into the standard release.
(these changes will take affect only when re-importing SDL model)
(these changes will take affect only when re-importing SDL model)
syntype hexadecimal = Integer;
<<External="true",IsQuery="true">> hexadecimal hd_not ( hexadecimal);
<<External="true",IsQuery="true">> hexadecimal hd_and ( hexadecimal, hexadecimal);
<<External="true",IsQuery="true">> hexadecimal hd_or ( hexadecimal, hexadecimal);
<<External="true",IsQuery="true">> hexadecimal hd_xor ( hexadecimal, hexadecimal);
<<External="true",IsQuery="true">> hexadecimal hd_rshift( hexadecimal, Integer);
<<External="true",IsQuery="true">> hexadecimal hd_lshift( hexadecimal, Integer);
NEWTYPE Integer
LITERALS
NAMECLASS ('0' : '9')+ or (''''((('0' or '1')*'''B') or (('0':'9') or ('A':'F'))*'''H'));
OPERATORS
...
hd_not : Integer -> Integer;
hd_and : Integer, Integer -> Integer;
hd_or : Integer, Integer -> Integer;
hd_xor : Integer, Integer -> Integer;
hd_rshift : Integer, Integer -> Integer;
hd_lshift : Integer, Integer -> Integer;
ENDNEWTYPE Integer;
SYNTYPE hexadecimal = Integer ENDSYNTYPE hexadecimal;
Agilent-alike SDL model containing context parameters should be fixed manually after import in order to get a good UML model without semantic errors. Here are the guidelines for the changes that should be done:
After import, the number of usages of active class template instantiations increases in some cases, for example, when create statements are used. And even if there is only one usage, for template instantiations with many formal parameters it is hard to read the definition where it appears. To improve the readability of imported model and remove duplicate usages of the same template instantiation, for each differing active class template instantiation create additional active class inheriting from that template instantiation, and then reference this new class from all the places where original template instantiation was used. For example:
Imported UML model:
template <signal sig( hexadecimal)>
active public class tap_type : ::test::test::b_T::com4 {
...
}
part tap_type<ss(hexadecimal)> [0 .. 8] tap / 0;
tap.append(new tap_type<ss(hexadecimal)>());
Fixed UML model (fixed parts are bold):
template <signal sig( hexadecimal)>
active public class tap_type : ::test::test::b_T::com4 {
...
}
active class tap_T : tap_type<ss(hexadecimal)> {
}
part tap_T [0 .. 8] tap / 0;
tap.append(new tap_T());
Original SDL model:
process type tap_type <signal sig atleast s> inherits com4; signalset sig;
…
endprocess type;
process type scp_type<process tap atleast com4>;
…
create tap;
…
endprocess type;
process tap (0,8) : tap_type<ss>;
process scp : scp_type<tap>;
Imported UML model (assuming that transformation 1 has already been applied):
template <signal sig( hexadecimal)>
active public class tap_type : ::test::test::b_T::com4 {
...
}
template <class tap atleast com4>
active public class scp_type {
...
tap.append(new com4());
...
}
active public class tap_T : tap_type<ss(hexadecimal)> {
}
part tap_T [0 .. 8] tap / 0;
active public class scp_T : scp_type<tap> {
}
part scp_T scp;
It contains the following problems:
· the name tap used in tap.append is the name of an attribute, it conflicts with the name of class template parameter --- rename template parameter tap to tap_T
· attribute tap used in tap.append inside template is not defined --- add this attribute typed with tap_T template parameter
· the type in tap.append statement is not correct --- change the type to tap_T (the name of class template parameter)
· attribute tap (part tap_T [0 .. 8] tap / 0;) is passed to template instantiation scp_type<tap>, but a class is required --- change it to tap_T class
Fixed UML model (fixed parts are bold):
template <signal sig( hexadecimal)>
active public class tap_type : ::cdd920003::cdd920003::b_T::com4 {
…
}
template <class tap_T atleast com4>
active public class scp_type {
…
tap.append(new tap_T());
…
part tap_T [*] tap;
}
active public class tap_T : tap_type<ss(hexadecimal)> {
}
part tap_T [0 .. 8] tap / 0;
active public class scp_T : scp_type<tap_T> {
}
part scp_T scp;
This kind of mapping for process context parameters contains two drawbacks:
· This manual fix could result in process creation succeeding the maximum allowed number of process instances (8 for this example). If 8 of 8 tap processes are already created, the UML implementation will not catch this when scp tries to create another one. In UML, there is no way to limit the number of instances of a given class, but the number of process instances can be controlled by another manual fix --- add a dummy active class tap_counter_T and an attribute of this class with the same maximum number of process instances as for tap. Create an instance of tap_counter in start transition of tap_T, then executing model will be able to report an error when maximum number of 8 tap processes is exceeded.
Fixed UML model (fixed parts are bold):
template <signal sig( hexadecimal)>
active public class tap_type : ::cdd920003::cdd920003::b_T::com4 {
virtual statemachine tap_type {
virtual start {
…
}
}
}
active public class tap_T : tap_type<ss(hexadecimal)> {
virtual statemachine tap_T {
virtual start {
tap_counter.append( new tap_counter_T() );
…
}
}
}
part tap_T [0 .. 8] tap / 0;
active class tap_counter_T {
statemachine tap_counter_T {
start {
nextstate hang;
}
state hang;
}
}
part tap_counter_T [0 .. 8] tap_counter / 0;
· In fixed UML model, attribute part tap_T [*] tap; is used to store tap_T instances created by the tap.append statement, but in the original model create statement is called for the context parameter, i.e. it is always called for the same global tap attribute. So, compared with the original model, imported UML model will work in a different way – instances will be appended to a different attribute, to part tap_T [*] tap; defined inside template, and not to part tap_T [0 .. 8] tap / 0; passed as context parameter. So, manual transformation for process context parameters is suitable only if it is OK to use different instance "storage" for process type instances. But it seems that it is really OK, because used process types allow multiple instances and the model is surely not relying on implicit signal routing. This is certainly true within the 1xevdo model, where the PIDs of processes created within the scp_type are stored in the PDB, so they can be later used for explicit signaling.
set agent [u2::FindByGuid $U2 "@ConvertOldHexadecimal"]
set oldHexadecimal $selection
set params {}
u2::InvokeAgent $U2 $agent $oldHexadecimal params
· Make sure that old hexadecimal type is selected in Model View
· Run the Tcl script
· Do CheckAll of the model
LabelTransition Error TSC0266: When generating C code, a start transition should not lead directly or indirectly to a history or deep history nextstate statement
For example, such error is reported
for the statemachine "sessionconfigurationprotocol:
start {
switch (initial_type_in_use) {
case == true :
default :
{
goto in_config;
}
}
}
in_config : {
switch (err) {
case == no_error :
default :
{
goto err;
}
}
}
err :
{
switch (signalling_loopback_mode) {
case == true :
default :
{
nextstate -;
}
}
}
Thus there is an indirect way from start transition to history state. This is not allowed with C code generation and should be corrected manually. Label transition with label 'err' should be replaced with state with name 'err', or dash nextstate should be replaced with goto statement. These errors were probably introduced manually when customer was editing the model, because otherwise the model could not be imported from OG.