These release notes apply to Version 8.0 (Build 823), released on 24 Aug 2007.
The following enhancements have been implemented:
Based on customer feedback, we've re-introduced Forte reverse engineering which was previously withdrawn in 7.2.
The Forte parser has been revised and improved.
Version 8.0 has been substantially enhanced to support the UML 2.1 standard.
All UML 2.1 diagram types and tools are now supported, with the exception of timing diagrams.
Version 8.0 contains two UML notation templates:
- UML.not is the old template. This is included because it's used for opening your pre-8.0 UML projects.
- UML2.1.not is the new default template. When you create a new project this template is used, unless you
change your default template in Tools:Options.
To take advantage of UML 2.1, you can convert your existing projects to use this notation. To convert, simply open the project
and choose the File:Switch To Template command. A dialog is displayed, listing the available notation templates, select UML2.1 and
press OK. Make sure you save the project before continuing.
To get a visual overview of the new features of UMLStudio 8.0 supporting UML 2.1, open the UML 2.1 Example project
supplied with the software. You'll find this project in the UMLStudio8.0/Projects/ folder of your installation folder.
Three new link tools have been added (to the UML2.1.not template):
- Nesting is a stereotype of Association and is used for showing parent/child relationships.
- Interface is a stereotype of Association and is used for matching an interface provided by one class to the interface required by another class.
- Exception is a stereotype of Transition and is used for showing the flow of control for an exception.
Six new place tools have been added (to the UML2.1.not template):
- Table is a stereotype of Class and is used for modeling database tables.
- Expansion Region is a stereotype of State and is used to model activities that execute multiple times.
- Interrupt lis a stereotype of State and is used to represent an interrupt event.
- Entry is a stereotype of Start and is used in transition/activity diagrams.
- Stop Flow is a stereotype of Stop and is used in transition/activity diagrams.
- Artifact is a stereotype of Node and is used in deployment diagrams.
Additionally, the Component, Decision, and Web modeling tools have been revised to be in line with UML 2.1 conventions.
A new visual effect has been added which causes most place objects to be drawn with a gray shadow. This enhances the visual
effectiveness of diagrams. Shadowing is produced automatically using a set of heuristics, so that you don't need to worry about
actually defining it when creating tools in a notation template. You can turn shadowing off by unticking the Draw Places as Shadowed where Appropriate
option in Tools:Options.
Icon is a new primitive type in UMLStudio 8.0. It appears as a menu in the miscellaneous toolbar and allows you to create instances of
predefined icons. These are useful on their own and for defining stereotyped tools (such as the Table tool).
Junction is a new facility in UMLStudio 8.0. It appears as a menu in the miscellaneous toolbar and allows you to attach junctions to places.
The menu provides 6 junction types:
- Port
- Provided Interface
- Required Interface
- Input/Output
- Entry
- Stop
You can use junctions as source/target for links.
To create a link from one junction to another, select the link tool, click in the source junction, drag, and click in the target junction.
Place Groups have been enhanced so that you can give them the appearance of any normal place tool. This is useful for created nested places.
To create a nested place, first create the diagram within the group. Then select the objects in the diagram and choose the Group As Place
tool from the miscellaneous toolbar. Finally, open the property sheet for the group and select the desired tool from the Kind menu.
You can also tick the Graphical check box and choose a stereotype from the Stereotype combo box if you wish.
Once created, you can add objects (even other groups) to a group by dragging them inside the group.
Similarly, you can drag objects out of a group to make them separate from the group.
The following enhancements have been implemented:
Code generation and reverse engineering support for the C# programming language has been added.
C# features that have no equivalent representation in UML are ignored.
Code generation and reverse engineering support for the PHP programming language has been added.
The following enhancements have been implemented:
A new menu (called Tasks) has been added. This menu is dynamically loaded with the set of
PragScripts located in the Scripts/Task/ folder. Each such script implements a task.
Three sample scripts are provided to illustrate how you can write scripts for your own tasks.
For example, the script Duplicate Selected Places.pgs duplicates the currently selected
places such that each has a new master (having a new unique ID).
A new option (Show Parameterized Class Arguments) has been added to the Options dialog.
It allows you to show/hide the class arguments for parameterized classes.
The following functions have been added to PragScript:
- PgSelectModel allows you to select a model and/or refresh it.
- PgDelete allows you to delete a model, drawable, or master; or an attribute, method, type, or exception
in a master.
- pathprop allows you to get the properties of a file or directory.
A new command line option (-revModel) for the batch mode is provided. You can use this to optionally
nominate the model (within the project) where the result of reverse engineering is to be added.
A new Reverse Engineering script has been added for parsing Maxim code.
Reverse engineering now outputs the number of lines of code for each parsed file, plus the overall total.
A new batch mode command line option (-scope) has been added to control the scope of code/doco generation.
The script for Ada 95 reverse engineering has been completed. You can now use this feature to produce UML diagrams
from your Ada 95 code.
A new task script has been added which allows you to expand the relationships of one or more classes (in a class model).
Simply select the classes you want expanded and choose this script from the Tasks menu.
A new Type field has been added to the property sheet of links. If you specify a type for a link, then this
type is used during code generation, rather than it being deduced from the link source/destination classes.
Types specified in the Type tab of a class are picked up by C++, IDL, and Ada code generators.
They are also populated during reverse engineering of C++, IDL, and Ada code. For reverse engineering, all such definitions
must appear inside the class, otherwise they will not be parsed.
The behavior of the License dialog and the underlying license verification has been improved to facilitate
easy switching between Standalone and Floating license modes. After installing UMLStudio on a laptop, you
can configure it to run as standalone by entering the license details. Then switch to the Floating license
mode and configure it to point to a deployed UMLServer. After a successful run in both modes, you can switch
between the two by simply going to the License dialog, selecting the desired mode, and pressing OK. None
of the fields needs to be changed or re-entered. For security, the Key Code and the Password fields will
always appear as blank. In such cases, UMLStudio will use the last saved value for these two fields.
Storage of Options dialog values in the Registry has been improved so that non-admin users
that have no prior settings receive correct default values.
The following enhancements have been implemented:
The new Batch mode allows you to run UMLStudio from command line and, using command line arguments,
execute a PragScript (e.g., to generate code or documentation) or perform reverse engineering
(for hard-coded as well as script-based languages). See Chapter 6 of the User Guide for details.
The class property sheet now contains a Types tab, which can be used to defined simple, enumeration,
and structured types within the class.
Annotated types appear inside the class (below the attributes) and are drawn in italics.
Annotated types are also displayed in the Class Annotation tab. See Chapter 8 of the User Guide
for details. Such types are currently ignored by reverse engineering and code generation scripts.
A new algorithm has been incorporated for the layout of class diagrams produced
as a result of reverse engineering. This algorithm is smarter than the previous one
and produces better results.
The reverse engineering framework has been substantially revised. In the previous framework,
the implementation of reverse engineering for each programming language had to be hard-coded into
UMLStudio. The new framework allows you to write the implementation in PragScript, so that users can
view and customize it. The old framework is still included (as it supports the existing languages
supported by UMLStudio). See Chapter 6 of the User Guide for details.
A simple script for reverse engineering Ada 95 code is included in this release.
Please note that this script is incomplete and still subject to further development.
However, it contains enough detail to illustrate how reverse engineering scripts can be written
for any language. The relative path for this script is /UmlStudio 7.0/scripts/RevEng/.
In accordance with the UML conventions, abstract and virtual methods now appear in italics,
and static attributes and methods appear underlined.
A new link symbol (stereotype) has been added to the UML notation template for class instantiation.
PragScript has been extended with a number of new functions, which further support the task of writing
scripts for reverse engineering. See Chapter 7 of the User Guide for details.
The installation script has been upgraded to be compatible with the latest version of Windows (e.g., XP).
The online help pages have been revised in a number of places to accurately reflect recent
changes.
- When double clicking a UMLStudio project file, the program starts, but the project file dose not get
loaded (fixed in Build 723).
-
If UMLStudio is started and then an existing project is loaded and then the Arg button (in class properties)
is pressed, then UMLStudio crashes (fixed in Build 723).
-
Printing on some printers causes an incorrect page size to be used (fixed in Build 723).
-
Various PragScript bug fixes (in Builds 723 and 724).
-
The readln PragScript function returns end-of-file prematurely (fixed in Build 725).
-
Print and Page Setup dialog occassionally caused failure (fixed in Build 726).
-
Reverse engineering of C++/Java arrays sometimes incorrectly identified the element type (fixed in Build 727).
-
Search rules in PgFind PragScript function relaxed (Build 728).
-
After reverse engineering, folder Reversed contains filenames with line counts in their path, such that the
files can not be opened (fixed in build 729).
-
PgLayoutModel sometimes incorrectly calculated the diagram size (fixed in build 731).
-
C++ generation outputs the name of some types as 'name' (fixed in build 741).
-
(findstr str substr) fails when substr is at the very end of str (fixed in build 742).
-
When using a floating license server without a password, UMLStudio may come up as 'unlicensed' when launched,
requiring the user to go to the license dialog and press OK again (fixed in build 742).
-
A domain name (e.g., *@test.adomain.com) specified for UMLServer (in the License dialog) may resolve
incorrectly (fixed in build 743).
-
Swimlane borders can get confused after objects are moved between lanes, undo is performed, and
a border is dragged (fixed in build 744).
-
Class method code window imposes a limit of 4k on code, after which a memory error is generated (fixed in build 745).
-
Objects pasted into a swimlane may become unmovable (fixed in build 746).
-
A circular link in a sequence diagram can only be resized horizontally (implemented vertical resizing in build 746).
-
Undo may misbehave in sequence diagrams (fixed in build 746).
-
PgDelete does not always delete a drawable (fixed in build 748).
-
Classes with very large number of attributes, methods, and types may cause failure (fixed in build 749).
- File association lookup in the registry fails for some file type (fixed in Build 750).
- In the batch mode the GUI is displayed even when the exit option is used (fixed in Build 750).
- In custom links, the geometric rendering of some primitives can be inaccurate (fixed in Build 751).
- CORBA IDL reverse engineering does not correctly handled struct and enum definitions nested in an interface (fixed in Build 752).
- Comment parsing in reverse engineering sometimes misses the first comment character (fixed in Build 780).
- The 'Keep Code' option in reverse engineering sometimes misses code (fixed in Build 782).
- Attempting to create a self call in a sequence diagram causes a crash (fixed in Build 784).
Copyright © 1997-2007 PragSoft Corporation. All Rights Reserved.