Visual UML version 4.01 Update Release Notes

 

Version 4.01 Release (Build #536 – August 18th, 2004)

 

NOTE: Model files (*.Uml) created by Visual UML version 4.01 are NOT backwards compatible with Visual UML version 3.2 (versions 3.2 thru 3.26) or earlier. Therefore, Model files (*.Uml) created by Visual UML version 4.01 can NOT be opened by Visual UML version 3.2 (versions 3.20 thru 3.26) or earlier. Also, if you saved your version 3.x models in XML file format you will need to save them in .Uml file format in order to be able to open them using version 4.01. After you have upgraded your version 3.x models to version 4.01 format you can save them in XML file format (.Umlx file extension).

 

Also, Model files (*.Uml) created by Visual UML version 4.01 are NOT backwards compatible with Visual UML version 4.0. Therefore, Model files (*.Uml) created by Visual UML version 4.01 can NOT be opened by Visual UML version 4.0.

 

Updated Files: Visual UML4.Exe, VUML.Chm, VUML-CPP.Chm, VUML2HTML4.Dll, Rose2VUML4.Dll, VUML40LayoutDiagram.Dll, RevEngrCPP.Dll, XML Files\vuml40.dtd

 

1.       Reinstated the ability to import/merge Models and Packages in VUML (.Uml) and XML (.Umlx) file formats.

 

2.       Fixed a problem that could result in a Run-time Error #13 (Type Mismatch) when starting Visual UML 4.0 on PCs with regional setting of certain countries that use a comma for fractional numbers (for example: “1,1” - as opposed to US/English format of “1.1”). This includes French (France and Canadian), Hungarian, etc. This problem would be typically be followed by an inability to add or edit model elements due to a Run-time Error #424 (Object Required). This problem also applies to the loading of Stereotypes and Profiles.

 

3.       State Invariant nodes are no longer lost from Object Lifelines when copying or moving Sequence diagrams, either independently or as members of Packages that are being copied or moved. Plus, when undoing or redoing changes to Sequence diagrams.

 

4.       No longer get a runtime error # 438 when copying or moving a Class or Component that contains a Port that has a Provided Interface and/or a Required Interface assigned to it (the Port).

 

5.       No longer get a runtime error # 438 when copying or moving a Package that contains a Class or Component that contains a Port that has a Provided Interface and/or a Required Interface assigned to it (the Port).

 

6.       The Abstract, State and Stereotype properties of a Class or Component Port are now copied when a Class or Component containing a Port is copied, either independently or as members of Packages that are being copied or moved.

 

7.       Fixed some problems entering and accessing the values in the columns in the Parameters grid when defining the properties (Type, Pass By, Kind, etc.) for Parameters in Classes and Operations that could previously result in a run-time error under certain conditions, typically when pressing an arrow key to move though the drop-down lists of available values in the drop-down lists.

 

8.       Added several fields to the Use Case Detail Specification dialog box as follows: Level, Priority, Release, Status, Implementation Status, Assigned To, Assignment Date and Note. The Level, Priority, Status and Implementation Status fields are combo-boxes that allow selection from a list of pre-defined values. These are taken into account when publishing to HTML, generating Use Case reports, exporting & importing, etc.

 

9.       Can now add lists of Test Cases to any Model element. These are taken into account when publishing to HTML, exporting & importing models/packages, etc.

 

10.   Fixed a problem reverse-engineer VB6 Property Get Procedures with no return type. For example: Public Property Get Value()

 

11.   Better reporting of problems when loading Stereotypes (XML file format) on product startup if MSXML3 Parser is not installed.

 

12.   Better reporting of problems when importing Profile files (XML file format) if MSXML3 Parser is not installed.

 

13.   The Publish to HTML function accommodates the ability to add Test Cases to many types of Model Elements and Diagram objects.

 

14.   Fixed a problem when publishing to HTML that would result in an invalid link from a Model Element to a Diagram in a Nested Package.

 

15.   No longer get a Run-time error #5 when cancel the export of a diagram.

 

16.   Fixed problem with position of Links button in Class Properties Editor dialog box.

 

17.   Fixed problem that could cause Visual UML to fail when moving multiple selected objects on a Collaboration diagram.

 

18.   The Stereotype displayed for a Message on a Collaboration diagram or Sequence diagram is no longer derived from the corresponding Class Operation. Instead, the Stereotype, if any, applied directly to the Message (via the Stereotype field in the Message Properties Editor dialog box) is displayed.

 

19.   The (renamed) ‘Default Name of New Object to Name of Classifier it is derived from (Instance of)’ option on the Object/Interaction Diagram Types tab in the main Options dialog box now works properly.

 

20.   Fixed a problem that could result in a Run-time Error #6 (Overflow) when importing XML files from EasyStruct 4.5 that contained very large Stored Procedures, Triggers or Views.

 

21.   Added a ‘List Package External References’ command to the Tools menu. This function allows you to select a specific Package and then creates a dialog box that lists any model objects (classes, components, objects, etc.), relationships (associations, dependencies, generalizations, realizations, flows, transitions, etc.) and diagrams in the selected Package that reference model elements outside of that Package or that are not within the selected Package’s hierarchy of sub-(nested) Packages. For example: Objects derived from Classes that are in different Packages than the Package containing the Object, Components with assigned Classes that are in different Packages than the Package containing the Component, Relationships (associations, dependencies, generalizations, realizations, flows, transitions, etc.) that start and/or end in model elements that are in different Packages than the Package containing the relationship, Model elements (objects and relationships) that are linked to Diagrams that are in different Packages than the Package containing the model element, Messages that are derived from Class Operations that are in different Packages than the Package containing the Message, Diagrams that contain objects and/or relationships that are in different Packages than the Package containing the Diagram, etc. By using this function you can determine how “self-contained” a Package is (I.e. does it depend on other model elements outside of itself). This is especially useful when exporting Packages that will become stand-alone Models or that will become Model Fragments for importing into other Models or for re-importing into the current Model. For example; if a Package that you want to export has many references to other model elements outside of it (i.e. in other Packages) you may want to defer exporting the Package until after it has been reorganized to reduce or, better still, eliminate external references so that the Package is minimally or not dependent at all on any other Package.

 

22.   Assorted (minor) bug fixes.

 

C++ Code Generation:

 

23.   When generating C++ code for a Class that has an Association (incl. Aggregate and Composite) with another Class in a different Package, the proper “::” delimited notation is used for the variable type (namespace::class) reference, rather than the incorrect dot-delimited notation as was previously the case.

 

24.   When defining a Parameter in a Class Operation to be generated as a function argument in C++ and the Array option is set to on (checked), the array “[]” are now correctly placed after the argument name (i.e. “function(int array[])”) rather than incorrectly being placed after the argument type (i.e. “function(int[] array)”) as was previously the case.

 

25.   Added “Pointer” to the list of entries for the ‘Pass By’ selection list for Operation Parameters in support of C++. When a Pass By value of “Pointer” is chosen for an Operation Parameter, a “*” suffix is applied to the type of the function argument in the C++ code that is generated. Note: When a Pass By value of “Reference” is chosen for an Operation Parameter, a “&” suffix is applied to the type of the function argument in the C++ code that is generated.

 

26.   The Length field of an Operation Parameter can now be used to define the size of an array type for a function argument for C++. This can be used in conjunction with the Array option if desired.

 

27.   When generating a C++ class that is in a namespace (a VUML Package), the name of the namespace is now applied as a prefix to any of the class functions that are declared in the .CPP file. I.e. Package-Name::Class-Name::Operation-Name.

 

28.   Fixed problem with placement of “const” modifier when generating C++ code for class member functions.

 

29.   Eliminated extraneous namespace “path” prefix from class file name in #ifndef and #define statements in .H file when generating C++ code files into namespace directories.

 

30.   Eliminated extraneous namespace “path” prefix from class file name in #include statement in .CPP file when generating C++ code files into namespace directories.

 

C++ Reverse-Engineer:

 

31.   When reversing-engineering a C++ class with a constructor function, a stereotype of “Constructor” is now applied to the resulting VUML Class Operation.

 

32.   When reversing-engineering a C++ class with a constructor, a return type is no longer incorrectly applied to the resulting Operation as a result of incorrectly deriving it from the constructor’s argument type, if any.

 

33.   C++ Reverse-Engineer interface will now reverse-engineer parameters (arguments) of Template classes.

 

Help:

 

34.   Added and updated several topics in the Help system. Still a work-in-progress.

 

35.   Fixed a number of Help buttons in various dialog boxes to show the correct Help topic.

 

36.   Updated Help for C++ Interface.