Telelogic Tau 4.2.0.2 Fixed problems

IBM Corporation
April 29, 2009

Problems fixed in 4.2.0.2
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.

 

Problems fixed in 4.2.0.1

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.



Problems fixed in 4.2.0.0

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.
Note, that for Agile CCG parameter evaluation order for external function calls is still 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.

 

Additional fixed problems

The following problems have been corrected in earlier versions (patches) of Tau and are now included into the standard release.

SDL Importer

(these changes will take affect only when re-importing SDL model)

  

OG Converter

(these changes will take affect only when re-importing SDL model)

sdtsan

  

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;

  

IMGen

Semantic Checker

SDL migration guidelines

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:

  1. This is an optional change.

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());

  1. Imported process context parameters will cause semantic errors after import. Process context parameters are imported to class context parameters, but attributes of class context parameters with which all operations, like create or output-to, are performed are not defined. Attributes should be defined manually. All template instantiations should be updated to pass an active class instead of an attribute as actual template parameter. Example:

  

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.

     

  1. For the models that have been imported before without hexadecimal handling update and that contain hexadecimal type defined in OGSpecificPackage, an agent for updating models containing hexadecimal type should be called. Conversion of old models should be done in the following way:

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

  1. There are error messages reported for the 1xevdo UML model that has been imported before and manually fixed by Agilent:

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::scp_type::scp_type". That statemachine has the following structure (unrelated elements have been removed):

             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.