Rational Rose 98 UNIX


Rational Rose 98 for UNIX
Version 98.2 (4.5.8303)
October 1998


Release Notes Table of Contents

Untitled

Chapter 1 Welcome to Rational Rose 98 for UNIX

Introduction
To Obtain Information Via the World Wide Web
Configurations Supported by Rose 98
General Limitations
Fixed Defects
Fixed Defects in Rose Version 98.1
Fixed Defects in Rose Version 98.2

Chapter 2 Rational Rose 98

Changes and Enhancements in Rose
Component Modeling
Multiple Language Support and Other Add-Ins
Stereotypes
Namespaces
Class Name Completion Support
Extend Scope of the Rose Extensibility Interface (REI)
Color Capability
Integrated Documentation
Visual Differencing and Merge Tool
More Features
Upgrading from Rose 4.0 or earlier versions
Licensing
Path Map Conversion
Model Conversion
Known Model Issue When Updating From Rose 4.0
IDL Conversion
Attributes and Has Relationships
Rose Configurations
Known Rose Problems and Limitations
Known Defects
Fixed Defects
Fixed Defects in Rose Version 98.1
Fixed Defects in Rose Version 98.2

Chapter 3 Rose 98 JavaTM Edition

Features in Rose Java Edition
JDK 1.1.x Support
Namespace Support
Interface Method Auto-Generation
Dynamic Import Resolution
Interface Support
Full Code-Cycle
JavaDoc Support
Enhanced Component Diagram Support
Extended Character Support
Configuring the CLASSPATH Environment Variable
Introduction
CLASSPATH Setup Procedure
Known Rose 98 Java Edition Problems and Limitations
JDK 1.1.4 Anomalies
Poorly Designed Inner Class References
Support for Java Archives
Fixed Defects in Rose 98 Java Edition

Chapter 4 Rose C++

Enhancements in Rose C++
Generic C++ Features
Upgrading from Rose C++ 4.0 or earlier versions
Known Rose C++ Problems and Limitations
Known Defects
Fixed Defects
Fixed Defects in Rose C++ Version 98.1
Fixed Defects in Rose C++ Version 98.2

Chapter 5 Apex Add-In Support

Apex Add-In Overview
Apex Compile and Control Commands
Code Generation With Apex Add-In
Properties for Apex Add-In
Converting a pre-Rose 98 model into a Rose 98 model
Known Apex Add-In Problems and Limitations
Known Defects

Chapter 6 Ada 83 and Ada 95 Add-In Support

Ada 83 and Ada 95 Add-In Overview
Enhancements in Ada 83 and Ada 95 Add-In
Known Ada 83 and Ada 95 Add-In Problems and Limitations
Known Defects
Fixed Defects in Ada 83 and Ada 95 Add-Ins

Chapter 7 Rose 98 for UNIX Overview

Installation
Path Map Conversion
Registry Setup and Customization
Automount Path
Rose 98 Extensibility
Add-Ins
Visual Diff/Merge
Java
Framework Wizard

Welcome to Rational Rose 98 for UNIX

Important Note If Upgrading From Previous Rose for UNIX Release

Rational Rose 98 for UNIX, Version 98.2 (4.5.8303)

Rational Rose 98 for UNIX, Version 98.1 (4.5.8153)

For your convenience, this Release Note contains information applicable to both Rose 98 for UNIX versions 98.1 and 98.2. Refer to the following recommended guideline to determine which specific sections of this Release Note will be important to you:


Introduction

Thank you for selecting Rational Rose®98 for Unix, hereafter referred to as Rose.

This release note describes:

Please read this release note before you install or use Rose.

Note: In some cases, you may note discrepancies between the printed documentation and the online documentation. In these cases, the online documentation is the most up-to-date and should be followed.

For release note information on any Rose 98 components, read the following sections located in this manual or online help:

If you encounter any problem while installing or running Rose, please check here first to see if it is a known problem. If a problem is not yet documented, please call Rational Technical Support so we can investigate it, provide you with a workaround, and track the problem for future action.

Contact information for Rational is in Appendix B of the Rational Rose 98 for Unix Installation Guide and in the online help supplied with Rose.


To Obtain Information Via the World Wide Web

Online support can be found on the World Wide Web at the following location:

http://www.rational.com/support/

This location includes any updates not available at the printing of this manual in relation to such documents as:

This website also includes such information as:


Configurations Supported by Rose 98

The following tables list the recommended configuration to successfully install and use Rose. See the Rational Rose 98 for Unix Installation Guide for more details about supported configurations.

The first table contains the hardware requirements for installation and use of this product. Note that the recommended amount of memory is only the suggested minimum amount. Additional memory may improve performance. Your memory requirements will also be larger if you are constructing larger models.

.

Hardware Item
Recommendation
For
Memory


32 + (32 * N) MB of RAM (where N is the number of users running Rose simultaneously on a given workstation)


Use


Server


A midrange Unix server or client Unix workstation


Use


Client


Any Unix workstation or PC capable of displaying X windows


Use


Disk space


200 MB for loading release + 1-3 MB for each Rose model


Installation, Use


CD-ROM


Mounted as a UNIX file system


Installation


Display


Color display


Use


The next table contains the software requirements for installation and use of this product. Note that this is also only a suggested amount of swap space. Your requirements may be larger if you expect to construct very large models. If all of your models are small, you may need less than the amount shown here.

Software Item
Requirement
For
Operating system


AIX 4.1.4, 4.2
Solaris 2.5, 2.6
HP-UX 10.20, 11.0
Digital Unix 4.0B, 4.0D
SGI Irix 6.2, 6.3, 6.4, 6.5


Use


C++ Compiler #include files


AIX 3.1.3

Solaris 4.2

HP-UX (10.20)

HP aC++ B3910B A.01.07

HP aC++ B3910B A.01.01
Support Library

HP-UX (11.00)

HP aC++ B3910B A.03.04 (970930)

HP aC++ B3910B A.02.00%16
Support Library

Digital Unix 5.7

IRIX 7.1


Analyzer


Port map daemon


Must be running


Installation, Use


TCP/IP


Must be running


Installation, Use


Host names


Must be configured


Installation, Use


Page/Swap space


AIX: 100 + (50 * N) MB

Solaris: 150 + (50 * N) MB

HP-UX: 150 + (50 * N) MB

Digital Unix: 200 + (50 * N) MB

IRIX: 150 + (50 * N) MB

P>

Use


X Window System


MIT X11R5 or X11R6
Sun OpenWindows on Solaris


Use


Window Manager


OSF/Motif© 1.2,
window manager (mwm),
Sun olwm or CDE 1.1


Use



General Limitations

The following table lists the general limitations of this release.

Table 1 Known Defects
Defect
Description
126395


The Replace Properties menu option will update all active Add-In property sets with the selected property file.

To avoid this, deactivate all Add-Ins that are not to be updated before selecting the Replace Properties option.

133102


When opening a file with interface icons, the name of the icon is stacked on top of the word "interface".

The problem resolves upon clicking on the icon or adjusting its size.


140301


Wind/U Error (175): Function: MapViewOfFile, attempt to map hFile=3D18 =failed, cannot map a zero-size file

This error may occur when performing a drag and drop, while running Rose from a Solaris 2.5.1 machine (configured as an autoclient using `cachefs' file system).

Contact Rational Technical Support if you encounter this problem.

Workaround: Place a NULL character in the pertinent /var/tmp/windu*OLE* file.


142169


Unable to change the default editor by setting "SourceViewer" in .rose.ini or by setting the SOURCEVIEWER environment variable.

Use the following instructions to change the default viewer from "vi":

    Rose 98 for Unix displays a source viewer by executing the rational_dir/releases/rose.4.5.K/bin/shellexecute script.

    The default source viewer is "vi".

    The "EDITOR" environment variable and "shellexecute" script may be changed to define the appropriate default source viewer(s), applicable to your environment.

To define the default xterm viewer:

    The EDITOR environment variable may be set to define a default xterm viewer. The shellexecute script will invoke xterm and fork $EDITOR. (If EDITOR is not set, the shellexecute script will fork "vi".)

To define the default X-window viewer:

    If you wish to bring up an X viewer (like Frame), you will not want `xterm' invoked - so, it would be advisable to edit the shellexecute script by setting the "prefix" value from:

      prefix="xterm -e $default_viewer"

    to

      prefix="$default_viewer"

    after $default_viewer has been defined in the script or after setting the EDITOR environment variable.


142170


Known defects exist in relation to HP Printer Devices

It is recommended that you use the "Apple LaserWriter" Printer Device (the default Unix printer device). Known defects exist in relation to HP Printer Devices and they are not recommended at this time.

Instructions To Change Default Printer in Rose:

  1. Make sure the `PRINTER' environment variable is set to the printer you wish to use:
    • setenv PRINTER hp1

    In the example below, the printer is named `hp1'.

  2. Select File:Print Setup....
  3. From the Print Setup dialog box, select Properties.
  4. Once the additional Printer Setup dialog box comes up, select Install....
  5. From the Printer Installation dialog box, select Add Printer....
  6. From the Add Printer dialog box, select the Apple LaserWriter Printer Device in the left hand side. Then, select lp:=cat|lpr from the Current Port Definitions.
    (You would need to add a new port if your `PRINTER' environment variable was not set up.)
    Select Add Selected and then Dismiss.
  7. Dismiss the Printer Installation dialog box.
  8. From the Printer Setup dialog box, select Options....
  9. From the Options dialog box, go to the arrow pulldown in the first Printer Name line and select the last option which should be Apple Laserwriter on lp:.
    After selecting your option, select OK.
  10. The Printer Setup dialog box should now show the printer to be Apple LaserWriter on lp:.
    Select Save.
  11. You will see the Print Setup dialog box, select OK.
142174


Warning: "Failed To Get 16 Colors. Color Features Will Not Function Properly"

This message will be displayed (prior to displaying Rose or the Analyzer), whenever the "windu_clientd*" daemon is unable to start. The windu_clientd* daemon will only run if the following two conditions are true:

  • Displaying Rose on an 8-bit pseudo-color display (typical Unix display)
  • Enough color resources available (have enough free system color cells and able to allocate 16 static colors for specific locations)

If you see this warning you may experience `techni-color' effects (colors flash or change when changing focus between windows), but Rose should otherwise operate correctly.

Displays greater than 8-bit pseudo-color (i.e. 24-bit displays) do not require the windu_clientd* to start and should not present the techni-color problem, hence you will not see this warning on these displays.

Workaround:

If you are using an 8-bit pseudo-color display, you may prevent the warning in either one of the following ways:

  • Exit Rose and any applications that may be color intensive, start Rose and then start the remaining applications after starting Rose
  • Place the windu-client startup command in your start-up file (i.e: ".cshrc"):
  • setenv WUHOME rational_dir/releases/rose.4.5.K/arch

    $WUHOME/bin/windu_client start


142182


Segmentation Fault During Registration When Starting Rose.

When starting Rose for the first time, you will see registry entries, for example:

    Registry Editor: Information in ada83.reg has been successfully entered into the registry.

    Registry Editor: Information in apex.reg has been successfully entered into the registry.

    .. ..

In some cases a segmentation fault occurs during these registrations.

Workaround:

  • Exit Rose
  • kill -TERM any of your windu processes
  • rm ~/.windu.*/rose_reg_check
  • Restart Rose



Fixed Defects

The following section lists defects that have been fixed in each version.

Fixed Defects in Rose Version 98.1

Table 2 Fixed Defects in Rose, V98.1
Defect
Description
128914, 129782, 132201


Unable to dynamically resize the Browser Window.

The workaround was to change the Browser Window settings in the .rose.ini file.

131102


Setting change to "Visibility as Icons" option under Tools:Options:Notation Tab had no affect in next session, even when SaveSettings on Exit was checked.
133249


While working in Rose, the mouse pointer transforms into a "move" pointer (four pointed arrows) and is trapped in the diagram area.

In some cases pressing the "F1" key would help workaround the problem (reinstating the mouse pointer).

Fixed Defects in Rose Version 98.2

Table 3 Fixed Defects in Rose, V98.2
Defect
Description
131675


Crash when left mouse click or right mouse click while editing text.


131959


Label size and placement distorted when not saving diagrams at 100%.


133304


Copy button remains active when nothing is selected.


133535


Undo (right click menu selection) not functioning correctly in the Documentation window.


141122


Subsequent context help commands fail (first succeeds).


141123


Unwanted undocking of the toolbars.

Unintended toolbar docking can occur upon clicking on toolbar buttons.


142171


Wind/U Warning (270): Individual setting of locale environment variables unsupported(LC_*); set LANG instead.

This error occurs if the following environment variables are set:

  • LC_CTYPE
  • LC_NUMERIC
  • LC_TIME
  • LC_ALL

Rose 4.0.16 can crash if these environment variables are set.

The "rose" script will unset these environment variables prior to invoking Rose.

In the future it will be possible to leave these environment variables set when running, without producing warnings or errors.


142186 Attempting to print specifications on classes that contain multiline comments causes Rose to hang.

The problem occurs whenever the class comments (documentation) includes acarriage return.

142229 The Help:About... box for Rose shows version# of the addins, but it does notshow Rose version#.

Rational Rose 98

Thank you for selecting Rational Rose 98.

This release note describes known problems and any changes in Rose. Please read this release note before you install or use the product.

Additional information on these related topics can be found in the following sections:

If you encounter any problem while installing or running Rose, please check here to see if it is a known problem. If a problem is not yet documented here, please call Rational Technical Support so we can investigate it, provide you with a workaround, and track the problem for future action.

Contact information for Rational is in Appendix B of the Rational Rose 98 for Unix Installation Guide, and in the online help supplied with Rose.


Changes and Enhancements in Rose

Rose 98 for Unix provides the following major enhancements over Rose 4.0:

Component Modeling

Rose supports the interface notation adopted in UML as well as in "standard" COM modeling. By stereotyping a class to <Interface>, the interface can be displayed as a lollipop in component diagrams. It will show up as a lollipop in the browser, and it is also possible to include the class on component diagrams to express how components offer and use interfaces.

In addition to the current support of assigning classes to components representing source files, classes can now also be allocated to these new binary components. A class can now be assigned to multiple components. Each component is of a certain language, like C++, JavaTM, etc. This language will control what language tabs are displayed for classes and other assigned model elements. For example, if a component is Java, only the Java tab will be displayed for a class. The language will also control what primitive types are available for that class.

Multiple Language Support and Other Add-Ins

Rose can now host multiple, independent Add-Ins. All of our languages are independent Add-Ins and hence are able to work together in one instance of Rose.

The Add-Ins will be managed through the new Rose Add-In Manager, hosted on the new Add-Ins menu. This menu is also where we expect most Add-Ins to be visible.

Independent Add-Ins will also allow us to move to a simpler update and distribution model. As Add-Ins will be licensed to work only with the appropriate tier of a Rose product, we plan to post new Add-Ins on our public web site.

Stereotypes

The support for stereotypes has been enhanced in accordance with UML. More items, including packages, use cases, components, and operations can now all be stereotyped. In addition, the icon attached for a stereotype can be placed on the toolbar to simplify the creation of stereotyped elements. Furthermore, the browser will display the appropriate stereotype icon for an element.

Namespaces

Rational Rose now supports namespaces following the UML definition; each package will form a namespace so that classes in different packages can have the same name. This will allow users to develop multi-lingual applications where classes with the same name can be deployed in different languages.

Class Name Completion Support

To aid in the development of large-scale models, the class name completion feature will help the developer to localize and reference the correct class, or create new classes of the same name (in a different name space). When a user types in a class name, a drop down list will display all classes that match what has been typed so far. This will also resolve the class to the right namespace. You can then either just pick the class from the list, or continue typing to create a new class.

Extend Scope of the Rose Extensibility Interface (REI)

The Rose Extensibility Interface has been extended to cover all diagrams and all elements in Rose. In addition, a number of new events have been exposed to trigger scripts including event parameters.

Color Capability

You can now color your Rose models. Classes, associations, packages, etc., can now all be colored. Both fill colors as well as border colors are supported.

Integrated Documentation

Rose 4.0 introduced the ability to connect files and URL's to use cases. This capability has been extended to other types of elements like classes, packages, diagrams, and so forth. In addition, we've made it easier to access these by now showing the files/URL's in the browser. You can also drag and drop these files right into the Rose browser to reference them.

Visual Differencing and Merge Tool

The Visual Differencing and Merge tool allows you to visually compare two Rose models. This can be used to compare two different versions of a Rose model, or part of a Rose model. The tool will show you visually what the differences are between the two versions. It will also allow you to merge the two versions.

For important additional information, refer to the "Visual Diff/Merge" section in Chapter 7.

More Features

The sequence diagram editor has been enhanced to cope with large diagrams. As you scroll down a diagram, the names of the objects will remain at the top of the diagram you're scrolling. This will make it easier to recognize exactly what object you manipulate. Printing of large diagrams will also allow you to show the object headers on each printed page.

Since the new version of Rose supports a new model format, you will be able to save your models as 4.0 models.

Also a number of anomaly resolutions have made their way into this release.


Upgrading from Rose 4.0 or earlier versions

The following are affected when you upgrade from Rose 4.0 or from a Rose release previous to 4.0:

Licensing

License Manager Version

The FLEXlm license manager was updated for Rose 98. Rose 98 uses FLEXlm 6.0i. Upgrades from versions 4.0.16 or earlier of Rose require installation of a new license server.

Feature Names in the License File

The feature names for Rose have changed from those used in previous releases. Feature names are in the form rose.product.unix. You must obtain new licenses from Rational Technical Support. Licenses issued for Rose 4.0 will not work for this release.

The product is:

(The path to the license file is specified by the environment variable ROSE_LICENSE_FILE, which is set by the config.csh and config.sh scripts in the Rose directory. The config.sh script is called by the rose and analyzer scripts in the Rose bin directory.)

Path Map Conversion

The path map variables have been moved from the .rose.ini file into the registry for the Rose release. For more information, refer to "Path Map Conversion", in Chapter 7.

Model Conversion

When Rose 98 reads in a Rose 4.0 model file, it will identify the language associated with the model file and give classes and components in that model that default language assignment. The Converting Model to Rose 98 Format dialog box will be displayed indicating the language that Rose detected. If this language is incorrect, you can change it. Clicking on OK will cause default language assignments for classes and components to be made. You can later change the language of an individual component via the component specification.

If the model properties for the model file are stored in a controlled unit, Rose will not be able to determine the default language. In this case, simply choose the language of your choice in the dialog box and click OK.

Warning: In most cases it will not be necessary to change the language that Rose detects. Do not use this dialog to change the language of your model, as no language conversion will take place. If your model was written using Rose C++, you should not change the language to Java, for example.

To convert Rose 98 models imported from Rose 4.0 (when assigning a class name to more than one module)

Known Model Issue When Updating From Rose 4.0


 
Table 4 Known Model Issue
Defect  Description 
131810 
 
 
"Warning: This model has multiple objects with the same unique id." 

Some users have had trouble importing certain Rose 4.0 models that contain objects with duplicate unique IDs. These models were corrupted either by Rose 4.0 or by manual editing or copying of Rose model (.mdl or .cat) files. The UID's can be reset during a load by adding the .rose.ini setting "FixDuplicateIds = Yes" in the [Rational Rose] section. Users need to keep the following in mind when using this feature: 

  1. If any internal reference is ambiguous based on names, there is potential for some references to get resolved to the wrong model. 
  2. UID's are used by many code generators (stored in the source code), so changing UID's could have a negative impact. 
  3. All units should be writable. 
  4. If a unit is shared among models, make sure all models are updated. 
  5. Units are not marked as modified when a UID is fixed, so the user will have to touch affected units to get the new UID's written out. 
  6. Users should turn off this setting as soon as the model is fixed. 
 

IDL Conversion

In order for IDL code generation to work properly in Rose, you must first run a conversion script on 4.0 IDL models.

Before running the conversion script, load all units in the model that have IDL model properties. Next, invoke the IDL conversion script which can be found as the Tools:IDL:Convert Rose 4.0 IDL to Rose98 IDL menu item. The script will look for those model properties corresponding to IDL and perform the required conversion.

Attributes and Has Relationships

Rose 2.7 and older did not distinguish has relationships from attributes. Attributes were modeled as has relationships. (Even when you created a new "attribute" by double clicking on <new> in the class specification, in actuality, a has relationship was created). Rose 4.0 and Rose 98 recognize attributes and has relationships as distinct entities.

When reading a model from a previous release, Rose 4.0 and Rose 98 will identify all attributes and has relationships as has relationships (because that is, in actuality, what they were in the previous release). Items which appeared in the Attribute/Has Relation listbox will now appear in the Relationships listbox.

This does not affect code generation, but if you prefer, you can change any of your existing has relationships into new-style attributes as follows:

  1. Open the class specification. 
  2. Select the has relationship(s) that you want to change into attributes.

  3. To make selection a little easier, if you select all the relationships in the listbox, all the has relationships will be changed. Other relationships, such as inheritance, will not be changed even though they are selected. 
  4. Choose Edit:Change Into:Attribute
When changing has relationships into attributes, note that: To see the new has relationships in a diagram, choose Expand Selected Elements or Filter Relationships from the Query menu.


Rose Configurations

To modify your .rose.ini file to disable smart word wrap of item names:

  1. Go to your $HOME directory. 
  2. Insert or change the WordBreakProc setting to No. The side effect of this is that smart word wrap of item names on diagrams is disabled.

Known Rose Problems and Limitations

Known Defects


 
Table 5 Known Defects in Rose
Defect  Description 
120285 


 
 

Specifying a link to a class in the property sheet does not cause the link to be drawn. 

To have the link drawn, add the link using the link icon on the toolbar. 

129708 
 
 
Unable to access association constraints via RoseScript. 
 
 
129496, 129531, 129563 
 
 
Visual Diff/Merge doesn't find differences. 

Does not display data flow arrows or dependency relations between components. 

A connection between a Device and Processor lacks data in specification list: Name, Stereotype, and Characteristics. 

133306 
 
 
Switching to OMT or Booch in the View menu may display text errors in the xterm, such as: 

Server Error, Message reported is: Bad Match (invalid parameter attributes) 

In addition, icons in the browser window may turn inappropriate colors (for example, black). 
 
 

141567 
 
 
visdiff will not run on Digital Unix version 4.0D. 

Attempting to run visdiff on Digital Unix 4.0D will produce an error message such as: 

    "..cannot connect to Rose server.." 
Contact Rational Technical Support if you encounter this problem. 
 
 
142176 
 
 
Error: prepare for _ichnlproc4_r_1: RPC_PROG_NOT_REGISTERED 

This error may occur when exiting the Visual Differencer. This error may be ignored. 
 
 

 

Fixed Defects

The following section lists defects that have been fixed in each version.

Fixed Defects in Rose Version 98.1


 
Table 6 Fixed Defects in Rose V98.1
Defect  Description 
131653 
 
 
Components not shown in Class Specification component list. 

Unable to assign classes to components from a class specification. The component drop-down list only displayed the entry <unspecified>. 
 
 

132034 
 
 
Unable to manipulate models between NT/PC and Unix systems. 

Was unable to share models between platforms (for example, once model file saved on NT/PC unable to open the file on Unix file system). 

Note: Users of Rose 98 on Windows NT & 95 will need to download and install Rose 98 Windows Service Pack 1 for their Windows product before they will be able to transfer models back and forth seamlessly between platforms. Rose 98 Windows Service Pack 1 is available for download from http://www.rational.com/support/downloadcenter/upgrades/rose98i_download.jsp
 
 

132058, 132140 
 
 
Virtual Pathmap errors when attempting to load controlled units. 

Rose was unable to resolve "\\" as a path separator. The "\\" path separator may have occurred when a model was loaded on both Windows and Unix. 

Workaround was to grep through the *.mdl and *.cat files, changing "\\" to "//". 

Virtual Pathmap variables were not correctly expanded due to a functionality change of the "ufile:" menu command. 

Rose now correctly resolves both path separators "\\" and "//", and expands Virtual Pathmap variables. 
 
 

132348 
 
 
Using accelerators (for example, "Control-G") could cause Rose to crash. 
 
 
132494 
 
 
Upon exiting Rose, core file could be produced. 
 
 
132705 
 
 
The Class Specification 'Detail' tab not updated when class assigned to a component. 

Upon creating a class in the Logical View, creating a Subprogram Spec and Body in the Component View, assigning the class to the named Subprogram Spec -- the Component field was left blank (not updated) in the Class Specification Detail tab. 
 
 

132826 
 
 
Deleting/Editing Association/Class (as shown in the following steps) could cause Rose to crash
  1. Deleted an association with rolenames from the model. 
  2. Deleted the class it was associated with from the diagram (not from model). 
  3. Crash occurred after trying to edit another class from the diagram. 
133249 
 
 
While working in Rose, the mouse pointer transforms into a "move" pointer (four pointed arrows) and is trapped in the diagram area. 

In some cases pressing the "F1" key would help workaround the problem (reinstating the mouse pointer). 
 
 

 

Fixed Defects in Rose Version 98.2


 
Table 7 Fixed Defects in Rose V98.2 
Defect  Description 
131841 
 
 
Class names do not resolve correctly in controlled units. 
 
 
131902 
 
 
DDL Property: CheckConstraint - no space between attrib name and value. 
  • Create a class with an attribute 
  • Go to attribute specifications, DDL tab 
  • Add a value for CheckConstraint, for example "Range > 10" 
  • Code generated: 
  • CHECK(nameRANGE > 10) 

    instead of 

    CHECK(name RANGE > 10) 

 
132129 
 
 
Problem generating DDL with Rose 98. 

DDL scripts using pre Rose 98 method of getting path map variables and property values. 
 
 

132194 
 
 
Loss of objects in sequence diagrams with duplicate ids. 

Warning messages regarding duplicate ids appear when opening a model in relation to some of the objects on sequence diagrams. These objects appear to be missing. 
 
 

132292 
 
 
IDL: Sequence typedefs automatically generated are erroneous. 

Generated IDL for typedefs appeared as: 

    type sequence <... 
Instead of: 
    typedef sequence<... 
 
132503 
 
 
Crash updating .mdl with a .red containing package name equal to a class name already in .mdl. 

If a user has a model containing Class "A", then imports a *.red that contains a package called "A", a crash occurs during update when the load hits the package "A", due a problem with name resolution. 
 
 

132622 
 
 
DDL generation updated to include Directory project property. 

DDL script is placed into the installed directory which creates problems due to virtual path map symbols. 

There is now a new project property Directory which defaults to AUTO GENERATE. This property controls where the generated DDL script will be placed. 
 
 

132911 
 
 
Link messages, reverse link messages, data flows and reverse data flows overlap in collaboration diagrams. 

After adjusting the diagram so these items do not overlap and saving in Rose then exiting - problem reappears upon starting Rose again. 
 
 

132996 
 
 
Same identity is given to identical named roles of reflexive association. 
  • Create class "NewClass" 
  • Create reflexive association 
  • Right click both roles and add default role name "theNewClass" 
Both roles have same identity, for example changes of one role are also made in the other role (role name, containment, etc.). 
 
 
133049 
 
 
Precondition, Postcondition, and Semantics are not displayed. 

After writing a description in the Precondition, Postcondition and/or Semantics tab, the descriptions disappear after moving to the other tabs. 
 
 

133195 
 
 
Rose doesn't convert entire model to Rose 98 format. 

When reading in a 4.0 model with units and then saving, Rose will only automatically save the units in Rose 98 format if they have been modified. 
 
 

133536 
 
 
Undo (right click menu selection) not appearing active in the Class Specification / Operation and Attribute. 
 
 
133735 
 
 
Project Properties not being converted when using "Tools:IDL:Convert Rose 4.0 IDL to Rose98 IDL". 
 
 
141124 
 
 
Memory leak when using visdiff. 
 
 
141161 
 
 
Unable to start visdiff if rose not run prior to running visdiff. 

When attempting to start visdiff (stand-alone), prior to starting Rose a message appears indicating unable to connect to server. It Rose was not started prior to starting visdiff (stand-alone), proper registration would not occur. 
 
 

141164 
 
 
Includes workaround to automatically increase process shell "descriptors" limit when running release, if set to less than 256 descriptors (for Visual Differencer and Analyzer) 

The following error message appears, upon attempting to start the Visual Differencer if the descriptors set to less than 256: 

Wind/U Error (247): Failed to connect to the registry on server "server_name" 

Workaround: 

Clean Up Rose Environment (if visdiff has crashed): 

  • Make sure you have no Rose or Wind/U processes running: 
    • ps -ef | grep -i user_id 

      kill -TERM any of your windu or rose processes 

  • rm -f /var/tmp/windu* 
  • mv $HOME/.rose.ini $HOME/.rose.ini.bak 
  • rm $HOME/.rose* 
  • mv $HOME/.WindU $HOME/.WindU.bak 
  • Save a backup of $HOME/.windu* directory then remove the directory: 
    • rm -r $HOME/.windu* 
Reset the "descriptors" limit: 
    % limit descriptors 256 

    Refer to 'man limit' or the 'man csh' for more information regarding the limit command. 

Run Visual Differencer or Analyzer. 
 
 
141166 
 
 
Fixed various problems in the merge function of the Visual Differencer (only necessary on SGI & Digital Unix). 

The Visual Differencer problems are characterized by either a crash or an exception dialog with "null" exception info fields. 
 
 

142186 
 
 
Attempting to print specifications on classes that contain multiline comments causes Rose to hang. 

The problem occurs whenever the class comments (documentation) includes a carriage return. 
 
 

 

Rose 98 JavaTM Edition

Thank you for selecting Rose® JavaTM Edition.

This release note describes known problems and any changes in Rose Java Edition or its documentation. Please read this release note before you install or use the product.

Additional information on these topics can be found in the following sections:

If you encounter any problem while installing or running Rose, please check here to see if it is a known problem. If a problem is not yet documented here, please call Rational Technical Support so we can investigate it, provide you with a workaround, and track the problem for future action.

Contact information for Rational is in Appendix B of the Rational Rose 98 for Unix Installation Guide, and in the online help supplied with Rose.


Features in Rose Java Edition

JDK 1.1.x Support

The Rose Java Edition supports the round-trip engineering of applications based on either JDK 1.0.2 or JDK 1.1.x libraries. This support includes reverse engineering and forward generation of inner classes as Rose nested classes.

Namespace Support

The Rose Java Edition takes advantage of Rose support for namespaces on a package-by-package basis. For more information about namespaces, refer to the Rose section.

Interface Method Auto-Generation

The Rose Java Edition will automatically generate function stubs for all unimplemented methods of interfaces that a class implements. For systems that rely on interface realization, this results in enhanced developer productivity, and fewer compilation errors.

Dynamic Import Resolution

Rose Java Edition dynamically resolves Java* import statements by using the CLASSPATH setting to determine the locations of classes or interfaces that a class uses. This resulted in more accurate round trip engineering and namespace conflict resolution.

Interface Support

Rose Java Edition takes advantage of Rose's support for interfaces stereotypes by including the capability to indicate interfaces as stereotypes. Reverse engineering automatically applies the <<Interface>> stereotype to Java interfaces.

Full Code-Cycle

A legacy Java application can be reverse engineered and forward engineered (without any methods being dropped). This makes it possible to introduce round-trip engineering at any point of a project.

JavaDoc Support

JavaDoc comments are generated and reverse engineered.

Enhanced Component Diagram Support

Rose Java Edition uses the component diagram for its code generation. In order to use the component diagram, Rose UML-Java language mappings have been standardized. New features available on the component diagram, such as interfaces, and package level dependencies are supported.

Extended Character Support

Rose Java extends RTE support for class names with enhanced characters.


Configuring the CLASSPATH Environment Variable

Introduction

Reverse engineering counts on executing in a valid Java Edition environment. In order to reverse engineer source or byte-code, the CLASSPATH environment variable must be set up correctly.

You should not reverse engineer any Java code which does not exist in relation to the CLASSPATH. This is because the Java Add-In depends on the CLASSPATH setting to correctly resolve all class dependencies (i.e. import statements).

This is especially critical in a namespace-enabled environment. Moving code to a different directory than where it is compiled and reverse engineering it could result in broken dependencies between classes.

Note: Because Rose Java Edition does not yet support Java archives (*.zip, *.jar, *.cab), you may have to unzip any archives that your classpath references in order for Rose Java Edition to function correctly.

Support for Java archives will be added in a subsequent service pack.

CLASSPATH Setup Procedure

Be sure that Rose Java Edition is installed.

Set the CLASSPATH environment variable to point to IDE libraries and .java source files.

For additional information, refer to "Java" in the "Add-Ins" section of Chapter 7.

Additional Steps Required Before Forward or Reverse Engineering

The current documentation does not explain how to set up your project with the appropriate CLASSPATH before forward or reverse engineering. Use the following procedure to do so:

  1. To setup your project directory select Options from the Tools menu and then select the Java tab.
  2. Select Project as the type.
  3. In the same window, change the setting for the Directory property from Auto Generate to the same directory name used as the .java source file parent directory in the CLASSPATH environment variable. Click Apply and then OK to apply the change.
  4. For each package from which you will be generating code, create a subdirectory in which to place generated code. Do this by creating a subdirectory off of the source code parent directory (see CLASSPATH Setup Procedure).


Known Rose 98 Java Edition Problems and Limitations

JDK 1.1.4 Anomalies

There are a number of anomalies in the JDK 1.1.4 release which, although passed or ignored by the Sun parser, are not supported in the Java grammar.

Poorly Designed Inner Class References

The javac compiler accepts references to inner classes by object other than the owner object. For example,

While legal, this is not encapsulated design. It is more appropriate in this case to implement myA as a separate class. References to this sort of design are not currently supported in Reverse Engineering.

Support for Java Archives

Rose Java Edition does not yet support Java archives (*.zip, *.jar, *.cab). Support for Java archives will be added in a subsequent service pack.

Important: Backup Code Before Round Trip Engineering

It is important to back up all code before round trip engineering it, as Rose will sometimes overwrite the code (the ~.jav file may not contain the original code).


Fixed Defects in Rose 98 Java Edition

The following table lists defects fixed in Rose 98 Java Edition V98.2.

Table 8 Fixed Defects in Rose 98 Java Edition, V98.2
Defect
Description
131718


Rose Java will not reverse engineer code that contains "\\" as part of a string.


132308


Loss of code on FE with multiple overloaded methods throwing exceptions.

(Fixed in Java Add-In v1.1.)

Rose does not correctly generate methods for an abstract class when there are a combination of abstract and non abstract functions.

(Fixed in Java Add-In v1.1.)


130361


Java parser not recognizing abstract method.

Symptom: abstract method gets wrong implementation.




Rose C++

Thank you for selecting Rose C++.

This release note describes known problems and any changes in Rose C++. Please read this release note before you install or use the product.

Additional information on these topics can be found in the following sections:

If you encounter any problem while installing or running Rose, please check here to see if it is a known problem. If a problem is not yet documented here, please call Rational Technical Support so we can investigate it, provide you with a workaround, and track the problem for future action.

Contact information for Rational is in Appendix B of the Rational Rose 98 for Unix Installation Guide, and in the online help supplied with Rose.


Enhancements in Rose C++

Rose C++ provides enhancements and bug fixes applicable for all C++ compilers.

Generic C++ Features

The Rose C++ Analyzer now supports the following features of standard C++: You can control the access of these new features by changing the setting in the .rose.ini file.

These settings are explained in the Roundtrip Engineering With Rose C++ manual.

In addition, a number of new code generation properties and Analyzer options have been added or enhanced to support:

The analyzer now also has a dialog for specifying how container classes should be mapped into associations and attributes in the Rose model.

Upgrading from Rose C++ 4.0 or earlier versions

Rose has a new file format to support enhancements of the new release. Rose will read old model files, and when you save them, they will be saved in the new file format.

Rose will now support model files with mixed languages. When you read in an old model file, Rose will bring up a dialog verifying that the language found will be set as the default language. You can choose to change this selection if you wish to.

Rose C++ introduces some new code generation properties to the models. To update your model with the new properties, load your model into Rose and invoke Tools:Model Properties:Update and then select the rosecpp.pty file found in the C++ directory (rational_dir/releases/rose.I.J.K/addins/c++).


Known Rose C++ Problems and Limitations

Known Defects

Table 9 Defects in Rose C++ 
Defect  Description 
126216  The Analyzer does not handle most template specializations. 

How they should map to a UML model has not been determined. They probably should be put in protected regions by Action:CodeCycle, but they are not. 

126217  Argument, parameter, and result type specifications are textual even when they are references to elements in the model. 

This gives the user the impression that they will change as the elements referenced are changed (like other fields in the model). Because they are just text, they do not change. 

132721  Reverse engineering classes containing 'const' members results in the following illegal C++ syntax: 
    const const <type> <attribute name>; 
 
133104  No fill color in icons returned from the Analyzer's First Look option. 

When an *.mdl file comes back to Rose from the Analyzer, using the First Look option, there is no fill color in the icons. 

 

Fixed Defects

The following known defects have been fixed.

Fixed Defects in Rose C++ Version 98.1

Table 10 Fixed Defects in Rose C++, V98.1 
Defect  Description 
119677  The Analyzer did not recognize the "<>" form of #include statements. 

The Analyzer now implements the appropriate semantics on such statements. 

129156  Using Control-G to generate C++ code caused Rose to crash. 
 

Fixed Defects in Rose C++ Version 98.2

Table 11 Fixed Defects in Rose C++, V98.2 
Defect  Description 
117512  Analyzer does not pick up comments after a template header. 

The same occurs with enumerations and typedefs. The Analyzer only picks comments before the enumeration or typedef. 

125556  The code generation does not allow a class utility to inherit from another class utility. 
125052  Crash can occur if NameIfUnlabeled set to (blank). 

Changing NameIfUnlabeled (default properties of has relationships) from the _$supplier to (blank); code generation crashes when trying to generate code for a class with a has relationship that is unlabeled. 

125125  Codegen crash if codegen attribute set to "" (empty string). 
126386  Analyzer no longer focuses on file, after changing file type. 
  • Start Analyzer 
  • Open a project 
  • Select a Type 1 file 
  • Type Ctrl+2 to change the file type 
Analyzer no longer focuses on the file 

Workaround: 

Get focus back (on the file) by selecting the file. 

130975  Kanji class name is corrupted after C++ reverse engineering. 
131962  Anonymous instantiations are generated incorrectly in friend declarations. 

Generating a template class X, then creating an instantiated class by anonymous instantiation (for example: instantiated class with name (X<int>). Rose generates code correctly, and does not generate any definition for the instantiated class. 

Class Y is created, which has an association with instantiated X<int> specifying that class X<int> is to be a friend of Y. 

The code generator does not generate the name of the anonymous instantiation correctly, where it is referenced. 

132030  Analyzer can crash during export if 'Export Scope' set to '#include closure'. 

Setting the 'Export Scope' option to 'Selected Files and #include' before executing the Export ultimately produces the crash. 

132274  Rose codegen (C++) truncates contents of protected regions over 255 characters. 
132620  Mapper Defect: C++ codegen corrupts contents of protected regions after large protected region. 
132660  Script Defect: the class definition will be generated in both the header and the .cpp file. 
132738  Infinite loop generating C++ on model (based on 'get' and 'set' attributes). 
132770  In Rose 4.0 classes were assigned only to specification (.h) components. 

The C++ generator looked for matching body (.cpp) component and generated the appropriate code in the body. In Rose 98, the C++ generator only generates bodies for classes that are explicitly assigned. A script is available from Rational to adjust Rose 98 models imported from Rose/C++ 4.0 models, so classes-body assignments are added for corresponding class-spec assignments. 

Refer to "Model Conversion" under "Upgrading from Rose 4.0 or earlier versions" in Chapter 2 of these Release Notes for information in relation to converting Rose 98 models imported from Rose 4.0. 

133211  The C++ Analyzer cannot handle Japanese comments correctly. 

Japanese comments cannot be analyzed correctly if they include DB characters ended by '\' when they are used for class names, attribute names, etc. 

133215  The C++ Analyzer does not retrieve a string with the last character ended by a DB. 

When retrieving a string ended by a DB character whose second byte is '\', the selected line can be incorrect. 

133218  C++ Analyzer does not save the comment in the subsystems dialog box. 

The C++ analyzer's project file contents have changed slightly such that the analyzers of Rose releases prior to 98.2 will not correctly read subsystem names from a project file written with the Rose 98.2 analyzer. The Rose 98.2 analyzer will still read the project files of Rose releases prior to 98.2. The change is the addition of the subsystem comment field to the project file. 

133248  Unable to select category (package) and invoke code generation command (Ctrl-G) and have the code for all classes contained within the category hierarchy generated. 
133711  Crash occurs when changing the case of the first character in the attribute. ${attribute:f}. 
133806  Rose hangs when attempting C++ code generation on two components with a dependency between them. 

The hang occurs when trying to assign the components to C++: 

  • Place two components on a component diagram and draw a dependency between them 
  • Choose Edit:Select All 
  • Choose Tools:C++:Code Generation 
  • Click on the Assign button when the Assign dialog box appears 
 
133872  Code generation causes Rose to crash when it tries to produce code for a class in an unloaded package. 
133902  Expanded symbol $supplier is not resolved for link attributes for an association. 
140314  Analyzer causes a segmentation fault if windu_clientd* daemon does not start (if unable to allocate 16 colors on display). 

In some cases, the analyzer dies silently (without a segmentation fault). 

140526  Analyzing functions with default parameters cause Illegal Sienna Op message: 

Error: "*** Illegal Sienna Op: Set_xxx -- Tn_Init_Expression" 

140664  C++ generation of read-only units displays the wrong error message. 
  • Make a *.cat or *.mdl file read-only 
  • Attempt to generate code for a class that is in the locked item 
You will encounter an error message which indicates "None of the selected classes are in C++" instead of a warning which more accurately describes situation. 

A warning will now be generated and will appear in the LOG window. 

140714  Pressing "Cancel" after getting "Name Must Exist" dialog causes Rose to hang. 

Upon entering a pathway (that does not exist) in the Directories dialog box a message dialog indicating "Name Must Exist" appears. At this point, hitting return or pressing "Cancel" will cause Rose to hang. 

141022  Unable to locate Analyzer, Rose Ada 83 or Rose Ada 95 help (*.hlp) files. 

The following error message appears upon selecting Help from the Analyzer: 

    Cannot open file ../releases/rose.4.5.K/../analyzer.hlp 
Workaround: 
  • cd Release_Area/help; ln -s rosecpp.hlp analyzer.hlp 
  • cd Release_Area/arch/bin; ln -s ../help/rosecpp.hlp analyzer.hlp 
  • cd Release_Area/addins/c++/arch ; ln -s ../../../help/rosecpp.hlp analyzer.hlp 

The following error message appears upon selecting Ada 95 help topic: 

    Cannot open file .../releases/rose.4.5.K/help/roseada95.hlp 
Workaround: 
  • cd Release_Area/help 
  • ln -s roseada.hlp roseada95.hlp 
  • ln -s roseada.hlp roseada83.hlp (same true for Rose Ada 83) 
 
141164  Includes workaround to automatically increase process shell "descriptors" limit when running release, if set to less than 256 descriptors (for Visual Differencer and Analyzer) 

The following error message appears, upon attempting to start the Visual Differencer if the descriptors set to less than 256: 

    Wind/U Error (247): Failed to connect to the registry on server "server_name" 
Workaround: 

Clean Up Rose Environment (if visdiff has crashed) 

  • rm -f /var/tmp/windu* 
  • Make sure you have no Rose or Wind/U processes running: 
    • ps -ef | grep -i user_id 
  • kill -TERM any of your windu or rose processes 
  • mv $HOME/.rose.ini $HOME/.rose.ini.bak 
  • mv $HOME/.WindU $HOME/.WindU.bak 
  • Save a backup of $HOME/.winud* directory then remove the directory: 
    • rm -r $HOME/.windu* 
Reset the "descriptors" limit: 
    % limit descriptors 256 

    Refer to 'man limit' or the 'man csh' for more information regarding the limit command. 

Run Visual Differencer or Analyzer. 
142157  The help button in many of the Analyzer's dialog boxes unnecessarily bringsup a context sensitive help pointer. 

When this occurs, clicking in the dialog box, presents a a help file for the entire dialog box. 

142230  The Help:About... box for the Analyzer does not show version# of the Analyzer. 
142253  Help button of Container Types dialog does not work. 
  • Create a new project or open an existing project 
  • Click on Edit:Container Types ... to bring up the dialog 
  • Click on the Help button in the dialog 
Should bring up the help entry for the dialog but no response noted. 
 

Untitled

Apex Add-In Support

Apex Add-In Overview

The Apex Add-In of Rose 98 provides direct access to the Compile and Control commands in Apex. It also works with language add-ins for Rose 98, including Rose C++, Java, and IDL Add-Ins, to create Apex subsystems and views during the code generation from the model to the source files of the specified language.

The following information is also located in your Apex Add-In online documentation.


Apex Compile and Control Commands

The Compile and Control commands of Apex are directly accessible from Rose 98 through the Apex submenu of the Tools menu. The Compile commands compile and link the source files, generated into Apex views via Apex Add-In, that correspond to the selected items in the diagram. The Control commands perform Apex source code control operations on the source files generated in the same way.

To use these commands, click Apex on the Tools menu, and select Compile or Control to get to the list of commands, respectively.

For the descriptions on these Apex commands, please consult the online help in the Apex windows.


Code Generation With Apex Add-In

In general, the code generation operation for a regular language Add-In is based on a directory structure where top-level packages, nested packages, and classes (or modules) are mapped, respectively, into directories, subdirectories, and source files in a hierarchical way. The operation can create such directories or subdirectories if they do not already exist, and then generate source files into these (sub)directories. This works with the regular source code control system and build management.

Apex has a different style of source code control and build management. An Apex project has a set of subsystems which contain the source files and subdirectories of source files for development. Each developer has his own views, one for each subsystem, which collectively reflect the source base the developer uses for the project. For this reason, Apex-style code generation is different from the regular style. From a Rose model, the top level packages will be mapped into subsystems and the associated views for the developers; the packages nested inside another package will be mapped into the subdirectories inside an Apex view, or a subdirectory already enclosed by a view; the classes (or modules) will be mapped into the source files inside the views or the subdirectories.

The Apex Add-In provides a mechanism for the user to select which of the two code generation styles to use. When the property CreateApexSubsystemAndView of the Apex tool set is set to "Yes", the code generation command for a language add-in will automatically create Apex subsystems and views for the top-level packages selected in the model, followed by the generation of subdirectories and source files into the views. If the property is not set to "Yes", the code generation command does the regular style of code generation.

The language add-ins that work with Apex Add-In include C++, Java, IDL, Ada 95, and Ada 83.


Properties for Apex Add-In

Refer to the online documentation for a list of the properties used by the Apex Add-In for Apex-style code generation. Some are properties for the project, and the others for the subsystems in the model. The code generation command will use the combination of these properties when it needs to generate code into Apex subsystems and views.

All the properties except CreateApexSubsystemAndView will take effect only when the CreateApexSubsystemAndView property is set to "Yes" and when the selected item is a top-level package. When any of these properties are specified differently from their default value, the Directory property for the top-level package should remain as the default value.


Converting a pre-Rose 98 model into a Rose 98 model

A model created by Rose 98 has all the Apex properties inside a stand alone "Apex" property set which the code generation command in Rose 98 uses to create and maintain Apex subsystems and views. However, a model created by the 4.0.16b or earlier versions of Rose Developer or Rose/Ada keeps such Apex properties built inside the "cg" property set. For such a model, the code generation command in Rose 98 will not be able to retrieve those Apex properties in order to function properly. To resolve this incompatibility, the model should be converted into a Rose 98 model before any code generation can be done with Apex Add-In.

The following steps will do the conversion:

  1. Select File:Open to load the model.
  2. Select Convert Rose 4.0 Model to Rose 98 Model of the Apex submenu of the Tools menu. (If Apex submenu is not in the Tools menu, select Add-In Manager of the Add-Ins menu to make sure the Apex Add-In is activated.)
  3. Select File:Save to save the model.

    Note: If the original model is still needed after the conversion, make a copy of the model file and the associated unit files first.


Known Apex Add-In Problems and Limitations

Known Defects

Table 12 Known Defects in Apex Add-In
Defect
Description

142181


Error: "..failed to exec the child process reverse_engineer; No such file or directory .."

The above error may occur when attempting to reverse engineer Rose/Ada code from Apex, running: Rose:Ada_Reverse Engineer

Workaround:

For Rose 98, the Ada reverse-engineering code is done on the Apex side. (It is necessary to use Apex version 3.0.0b or greater.)



Ada 83 and Ada 95 Add-In Support

The following lists the changes in the Ada 83 and Ada 95 Add-Ins (also known as Rose/Ada) since version 4.0.16.


Ada 83 and Ada 95 Add-In Overview

Rational Rose 98 for UNIX provides two add-ins that support generation of Ada 83 and Ada 95 code. The following capabilities are included:

When the Apex Add-In is also installed and enabled, the Ada add-ins are able to generate Apex views and subsystems which simulate the structure of UML packages in the model. When the Apex Add-In is not installed (or deactivated), the Ada Add-In generates a directory structure which simulates the structure of UML packages in the model; this makes it possible to use the Ada add-ins in conjunction with third-party Ada compilers.

Note: The Ada 83 and Ada 95 Add-Ins of Rational Rose 98 for Unix do not provide reverse-engineering of Ada code. This capability is now delivered as part of Rational Apex/Ada, starting with version 3.0.0b of this product. The capabilities of the reverse-engineering tool are essentially identical to those provided with Rose/Ada 4.0.16.


Enhancements in Ada 83 and Ada 95 Add-In

The project property CommentWidth has been added. It specifies the maximum number of characters per line in generated comments. Lines in the model that are longer that this are split at word boundaries into multiple lines. The default CommentWidth is 60. This enhancement has the side-effect of fixing defect 133429.


Known Ada 83 and Ada 95 Add-In Problems and Limitations

After creating a new model, you must first execute the Tools:Options command to bring up the Options dialog box. Then, select the Notation tab and choose the default language to be either Ada 83 or Ada 95. If the default language is not set, Ada code generation will not work properly.

Known Defects


 
Table 13 Known Defects in Ada 83 and Ada 95 Add-Ins 
Defect  Description 
142181 
 
 
Error: "..failed to exec the child process reverse_engineer; No such file or directory .." 

The above error may occur when attempting to reverse engineer Rose/Ada code from Apex, running: Rose:Ada_Reverse Engineer 

Workaround: 

For Rose 98, the Ada reverse-engineering code is done on the Apex side. (It is necessary to use Apex version 3.0.0b or greater.) 
 
 

 

Fixed Defects in Ada 83 and Ada 95 Add-Ins


 
Table 14 Fixed Defects in Ada 83 and Ada 95 Add-Ins, 
V98.2 
Defect  Description 
123157 
 
 
The reverse-engineering tool fails with an exception if it encounters a stub for which there was no corresponding subunit. 

The reverse-engineering tool now ignores missing subunits. 
 
 

123158 
 
 
Selecting a non-Ada file along with Ada units for reverse engineering causes the reverse-engineering tool to fail with an exception. 

The reverse-engineering tool now ignores Non-Ada files. 
 
 

123160 
 
 
Running the reverse-engineering tool on a directory (nested within a view) does not work: an error message is given stating that the import set for the directory can not be found. 

It is now possible to reverse-engineer the entire contents of a directory. 
 
 

129330 
 
 
When setting the model property GenerateGet and GenerateSet to True to generate the accessors for attributes, the documentation for the attributes in the class was not generated in the Ada unit. 

This has been fixed. 
 
 

129390 
 
 
Blank lines in the documentation field for operations cause blank lines to be output in the generated code (i.e., a comment delimiter was not inserted at the beginning of the line). 

This degraded the readability of the documentation; it has been fixed so that a comment delimiter is now inserted for blank lines. 
 
 

132841 
 
 
When generating code for classes having user-defined initialization, assignment or finalization, Rose/Ada creates a controlled type with a component named Contents. 

In the case where such classes where involved in deep inheritance trees, it is possible to end up with several components named Contents, which is illegal. The component name has been modified to include the name of the class it corresponds to, thereby avoiding name clashes. 
 
 

133816 
 
 
An assertion error is emitted when generating code for a class that is associated with a general-purpose component (as opposed to an Ada package or subprogram). 

A warning is now emitted stating that general-purpose components are not supported. 
 
 

133954 
 
 
Consider two classes, with an association between them. The association has a navigable role on one end and an aggregation role on the other end, with cardinality 0..*. If the code generation property ContainerImplementation of the role was set to Generic, a generic instantiation was generated, but it was incorrectly put in the wrong Ada unit. 

This has been fixed. 
 
 

141022 
 
 
Unable to locate Analyzer, Rose Ada 83 or Rose Ada 95 help (*.hlp) files. 

The following error message appears upon selecting Help from the Analyzer: 

    Cannot open file ../releases/rose.4.5.K/../analyzer.hlp 
Workaround: 
  • cd Release_Area/help; ln -s rosecpp.hlp analyzer.hlp 
  • cd Release_Area/arch/bin; ln -s ../help/rosecpp.hlp analyzer.hlp 
  • cd Release_Area/addins/c++/arch 
  • ln -s ../../../help/rosecpp.hlp analyzer.hlp 

The following error message appears upon selecting Ada 95 help topic: 

    Cannot open file .../releases/rose.4.5.K/help/roseada95.hlp 
Workaround: 
  • cd Release_Area/help 
  • ln -s roseada.hlp roseada95.hlp 
  • ln -s roseada.hlp roseada83.hlp (same true for Rose Ada 83) 
 
 

Untitled

Rose 98 for UNIX Overview

In general, we have attempted to introduce as few variations as possible between the Rose 98 product for Unix and the Rose 98 product for Windows. However, due to differences in the underlying operating systems and technologies, it is not always been possible or desirable to hide the details of the underlying execution environment. This chapter is intended to highlight these differences. It should provide a good starting point for those already familiar with Rose 98 on Windows or for individuals who intend to use Rose 98 in a multi-platform environment.


Installation

One of the first differences you will notice is the installation process. The Windows version of Rose 98 uses an installation "Wizard" which takes care of extracting the product into the desired location, setting up the required registry entries, creating shortcuts and Start Menu entries, and setting up of uninstall scripts.

The Unix version of Rose 98 has two steps to the install process. The first step is dependent on the installation media type. If you have a Rose 98 CD-ROM, the first step is to run cdinstall, which handles copying the installation scripts to the desired installation location. Otherwise, the first step is to download the rinstall script from the Rational ftp site (ftp.rational.com) and run it. The rinstall script downloads the installation image from the ftp site and copies the product to the desired installation location (referred to here as $ROSE). The second step is to run install in $ROSE/install. This script begins the installation and walks you through the final steps of licensing and post-installation. The only setup not performed by installation is registry setup. Information on setup and configuration of the Unix registry is described in Registry Setup and Customization. For additional details on installation, please see the Rational Rose 98 for UNIX Installation Guide.


Path Map Conversion

For Rose 98, the Virtual Path Map variables have been moved from the .rose.ini file into the registry. Rose 98 provides a script named pathmapconvert.ebs that will convert path map settings from an old .rose.ini file into registry settings. For additional details, see the Path Map Conversion section of the Rose 98 for Windows on-line documentation. Rose 98 for Unix also provides support for converting Virtual Path Map entries from .ini files into registry settings. However, instead of a script, it is an executable named pathmapconvert found in the bin directory of your Rose 98 for Unix installation. This tool reads up a supplied .ini file, and if it contains a Virtual Path Map section, adds each entry in the section to your registry if it does not already exist. The syntax for the pathmapconvert tool is:

pathmapconvert <ini_file>

Example:


Registry Setup and Customization

On the Windows platform, registry information is set up during installation and you can use the regedit tool to customize it. On Rose 98 for Unix, registry information is setup and configured the first time you run Rose 98 on a particular machine. For registry support, Rose 98 for Unix uses a registry daemon which manages a per-user registry in $HOME/.windu.<machine_name>. There is a regedit tool, provided with the Rose 98 for Unix product, which works with this daemon. The first time you run Rose 98 for Unix on a new machine, regedit is run with the .reg files in $ROSE/registry and $ROSE/addins/* as input. This takes care of setting up your initial Rose 98 registry environment.

There are two special registry files that allow for easy customization of your registry settings in Rose 98 for Unix. The first registry customization file, located in $ROSE/registry, is site.reg. You can edit this file to add custom registry entries on a site-wide basis. That is, all users who run the installation of Rose 98 where site.reg was modified will see the changes in their initial registry environment. The second file is for user-specific registry customization. This file is located in $HOME and is called $user.reg (where $user is the Unix username). Entries in this file are applied only to the registry for that particular user. The site.reg in $ROSE/registry contains comments with a sample registry entry. site.reg also contains information about the versioning mechanism that provides a means of forcing a reload of the file for all users when changes are made to the file.


Automount Path

The following information applies only to Rose 98 for Unix. Under Rose 98 for Unix, there is a new field in the Virtual Pathmap dialog that allows setting of an "Automounter Prefix Removal Pattern". If your site uses an automounter, this field should contain a pattern describing the prefixes the automounter adds to pathnames. When the analyzer stores a filename in a Project or data file, it strips any matching automount prefix from the path so that the stored name is portable from machine to machine on your network. For more information on this setting, consult the sections on automount in the on-line documentation.


Rose 98 Extensibility

Rose 98 provides several mechanisms that allow you to extend and customize its capabilities to meet your specific software development needs. These mechanisms include customizable menus, Rose Scripts, in-process OLE using Rose Automation objects, and OLE server extensions.

The Rose Scripting language is an extended version of the Summit BasicScript language, and is supported in both the Windows and Unix versions of Rose 98. The Rose extensions to basic scripting allow you to create, query, and manipulate Rose specific objects such as Diagrams and Classes. In addition to use of the Rose basic script extensions, Rose script supports the DECLARE statement which provides a mechanism for calling arbitrary external routines from within Rose script. For more information on Rose script and the REI, see the Rose on-line documentation.

Rose 98 for Unix can also, with a 3rd party product, be extended using in-process OLE and OLE server extensions. To obtain additional information on extending Rose 98 for Unix using in-process OLE or OLE server extensions, contact Rose Technical Support.


Add-Ins

Visual Diff/Merge

The Rose 98 Visual Diff/Merge tool, commonly referred to as visdiff, functions in essentially the same manner on Windows and Unix with one difference. Under Windows, when the visdiff tool is started from the Tools menu, it is launched as an automation server and is passed a handle to the running Rose 98 application. The result is that visdiff is started with an OLE automation connection to the running rose and its currently open model. Any changes made to this base model, such as changes resulting from a merge operation, are immediately visible in the running Rose. Even if you change the base model in visdiff but elect not to save the changes on exit from visdiff, they will still exist in the open model in Rose. You can, of course, exit Rose and specify that the changes are not to be saved if you decide you don't want the changes to be written to the saved model on disk.

Under Rose 98 for Unix, launching the visdiff tool from the Tools menu does not cause visdiff to use the existing Rose session as an automation server. If there is a model currently open in Rose, visdiff is started with the path to this model on its command line. Any unsaved changes to this model will not appear in the model in visdiff. If no model is open when visdiff is started it will prompt the user for both the base and reference model on startup. Since the running Rose application is not being used by visdiff, any changes made to the base model will not be reflected in the open Rose model. To see the changes, first save the changes from visdiff and then reload the model in Rose.

Since it does not reuse the running Rose application, the Rose 98 Visual Diff/Merge Tool on Unix always uses two Rose automation servers to read and write it's Rose models. As a result, it can consume a considerable amount of machine resources, particularly for large models. If your machine or shell environment is not configured with adequate resources, the visdiff tool can fail in sometimes strange ways.

In order to communicate with the automation servers, visdiff uses RPC. The connections established by the RPC protocol require approximately 100 file descriptors for each automation server. Since the default shell limit for file descriptors on some platforms is as low as 64, it may be necessary for you to modify your shell resource file (e.g. $HOME/.cshrc) to change the limit for descriptors in your environment. We recommend a value of at least 256. If you encounter error messages indicating that visdiff was unable to open a file or shared library on startup, the probable cause is an insufficient descriptor limit in your shell. Under Bourne Shell and C Shell, you can get and set the descriptor limit using the built-in limit command.

Another resource that can be strained by visdiff is memory. If you launch visdiff from the Tools menu in Rose, you will have three separate rose instances running. One for the Rose you launched visdiff from and two automation servers for use by visdiff. If your machine is configured with insufficient memory and/or swap space you may encounter large performance problems due to "thrashing" and possibly even out of memory errors in visdiff. The following error is indicative of an out-of-memory (insufficient available swap space) condition:

Wind/U Error (129) : Function wuInitMsgQ could not 

allocate memory

In addition to the obvious solution of configuring additional swap space on your machine, you can reduce the amount of memory being consumed by invoking visdiff directly instead of from within Rose. If you exit Rose and run visdiff from the command line, you reduce the number of running Rose processes by one, reducing the memory requirements. If you are still running into problems, you can try disabling some or all of the Rose add-ins before running visdiff. To do this, run Rose and bring up the Add-In Manager. Simply deselect all of the "checked" add-ins and then exit Rose. Then run visdiff from the command line. When you run Rose again, you can bring up the Add-In Manager and re-enable the desired Add-Ins. Keep in mind that only enabling add-ins you are actually using will remove unused menu items, and improve Rose startup time and memory requirements.

Currently visdiff will not run on Digital Unix version 4.0D.

Java

The only difference between the Java add-in under Windows and the Java add-in on Unix is with the CLASSPATH variable. On Windows, this variable is a semi-colon `;' separated list of paths set in your Windows environment (where this is actually set depends upon which "flavor" of Windows you are running: 95 or NT). On Unix, the CLASSPATH is a shell variable set to a colon `:' separated list of paths. Note that this variable must be set before running Rose. Otherwise, you will be unable to perform Reverse Engineering of Java files. There is currently no way to set this variable once Rose has been started. So, you will probably want to set this variable to an appropriate value in your shell resource file.

Framework Wizard

At present the Rose 98 Framework Wizard is available only in the Windows version of Rose 98.