OOA Tool Read Me

Last Updated: 7 June 2010


OOA Tool is a Shlaer-Mellor OOA/RD CASE tool with Executable UML support implemented in 100% pure Java™ which includes a model editor and will include a simulator and translator. It is currently being developed in parallel with OOA10. Once development finishes, a Professional edition will be released at a competitive price, while a Standard edition will be distributed at no cost indefinitely. In the meantime, an early access Beta release is available for download.

This Read Me is for the OOA Tool Beta Build 014 release.


The only requirement to run OOA Tool is that a Java Runtime Environment (JRE) exists on your machine. OOA Tool requires Java SE 6 or later. It no longer runs on J2SE 5.0 since that platform is no longer supported.


This early access Beta release is distributed with a free software LICENSE. The source code for OOA Tool is not included in the distribution, i.e. this is not an open source project. Future Standard editions of OOA Tool will also be distributed with this free software license. Future Professional editions of OOA Tool will be distributed with a different commercial software license.

How To Install

To install OOA Tool, unzip the release into your chosen ${PROGRAM_FILES} directory.

The installed files are listed below:

        OOATool.bat     // Windows executable batch file
        OOATool.jar     // Executable jar
        OOATool.sh      // Unix executable shell script
        OOAToolW.bat    // Windows executable batch file (no console window)
        PrettyPrint.bat // Windows executable batch file for converting action, archetype,
                        // pattern, text and XML files into colour-coded HTML files
                        // (run with no arguments to print usage message)
        jlfgr-1_0.jar // From Java look and feel Graphics Repository
            elevator_r11.bak // BridgePoint 6.1D export file
                             // From Model Integration :: Download
            FullBookstoreRef.bak // BridgePoint 6.1D export file
                                 // From Executable UML [xtUML02]

To uninstall OOA Tool, simply delete the ${PROGRAM_FILES}/KavanaghConsultancy/OOATool directory.

On Windows, OOA Tool uses the registry to store various user preferences under:

My Computer\HKEY_CURRENT_USER\Software\JavaSoft\Prefs\com\ooatool
These settings can be deleted at any time using the Windows regedit tool. They can also (since Build 009) be deleted by selecting Delete Saved Preferences from the Preferences menu on the menu bar.

How To Run

To run OOA Tool, simply run:

All of the above should be run from the ${PROGRAM_FILES}/KavanaghConsultancy/OOATool/bin directory.

If your standard Java platform is older than Java SE 6 then you will need to change the batch files or shell script to reference a Java SE 6 or later java program. You can determine what your standard Java platform is by executing the command java -version on the command line. On Windows you run the cmd tool to access the command line.

If you are working with very large models and need more memory then you may need to change the batch files or shell script to specify a larger maximum memory, e.g. by adding -Xmx256M (for 256 M) to the java command line. You can determine what memory is being used within OOA Tool by selecting About OOA Tool... from the Help menu on the menu bar.


There is no user manual at present but OOA Tool is fairly intuitive to use.

We recommend new Shlaer-Mellor users buy [OOA88], [OOA91] and [Starr96]. OOA91 is by far the most important book to buy. All three books can be purchased at Amazon. The facsimile edition of OOA91 can also be purchased in the UK at Tesco using the following link: OOA91. However, if you are only going to use Executable UML notation in OOA Tool then we recommend users buy [xtUML02] and [Starr02] instead.

OOA and UML Models

OOA Tool is distributed with a number of OOA and UML models which have been used to test the tool. You can use these models to explore the capabilities of the tool.

OOA88 Appendix A

This OOA model captures the complete information model for "Management of Magnetic Tapes" given in [00A88] Appendix A.

The only significant difference between the captured model and the book is the formalization of R11 which originally used informal conditional logic. This has been replaced with formal unconditional logic using an [OOA91] composed relationship, i.e. R11 has been split into R11 and R17 = R5 + R1 + R6 within the captured model.

The associated OOA work products generated from OOA Tool are listed below:

OOA88 Appendix B

This OOA model captures the complete information model for "Data Organization for a Real-Time Process Control System" given in [00A88] Appendix B.

The associated OOA work products generated from OOA Tool are listed below:

Starr01 Elevator

This Executable UML (xtUML) model captures the platform-independent model and state machines for "Elevator" given in [Starr01]. However, the class and attribute descriptions have not been copied from the book. This model is not currently executable since OOA Tool doesn't include a simulator yet. We are hoping it will be executable before OOA Tool Standard is released.

The associated UML work products generated from OOA Tool are listed below:

BridgePoint 4.2

This OOA model captures the metamodel or "OOA of OOA" for Mentor Graphics BridgePoint® 4.2 CASE tool based on [BPAL97] and [BPAuto99]. It also defines the syntax and lexical rules for BridgePoint's action language and archetype language. This model has been used as the basis for the BridgePoint loading mechanism used in OOA Tool.

The associated OOA work products generated from OOA Tool are listed below:

OOA Tool

This OOA model captures the OOA of OOA for OOA Tool along with the additional information models necessary to formalize the OOA Interchange Format specified in OOA10. It also defines the syntax and lexical rules for OOA Tool's Pattern Language. This model is currently very much under development. Some subsystems are nearly complete, e.g. the Information Model and State Model subsystems, while others are just scratch pads at present, e.g. the Process Model and Action Language subsystems.

The associated OOA work products generated from OOA Tool are listed below:

The Information Model Report archetype template listed above is only for test purposes at present. It is not used to generate the information model reports within OOA Tool. There are a number of issues which need to be resolved before it can be used for that purpose, e.g. the archetype needs to be able to generate the graphical model included within an information model report.

Metamodel 0.01

This OOA model is version 0.01 of the official OOA of OOA for OOA10.

Online Bookstore

This Executable UML (xtUML) model is the case study given in [xtUML02] Appendix B. It is contained in a BridgePoint 6.1D export file which was downloaded from Executable UML. Since the model can be loaded into OOA Tool without any significant loss of information, it is clear that Excutable UML has not moved far from its Shlaer-Mellor origins.

Elevator 2

This Executable UML (xtUML) model is Leon Starr's revised Elevator model (the original was given in [Starr01]). It is contained in a BridgePoint 6.1D export file which was downloaded from Model Integration :: Download. For updates, you should check Leon's website. Note that, OOA Tool now loads BridgePoint 6.x ".bak" and ".sql" export files and BridgePoint 7.0 ".xtuml" export files (all of which can be found on Leon's website!).

Executable UML Foundation

This Executable UML2 model captures the Abstract Syntax for the Executable UML Foundation (fUML) given in fUML08 Clause 7 (sections are called clauses in this specification). It will be used later as the basis for providing fUML simulation support.

The captured model differs from the UML2 model given in the reference since Executable UML2 is a subset of UML2. A summary of the differences which affect the captured model are listed below:

The associated UML work products generated from OOA Tool are listed below:

Change Log

Build 001 Initial build.
Build 002
  • The graphical model within an information model report is now scaled down to fit within a page and a link has been added to view the unscaled graphical model.
  • Dropped all Java SE 6 dependencies so that OOA Tool can be run on a Mac platform which only supports J2SE 5.0 at present.
  • Adopted UpperCamelCase naming convention within OOA XML. However, the OOA parser has been made case insensitive for the moment.
  • Composed relationships are now fully implemented, e.g. R17 in OOA88AppendixA model.
Build 003
  • Finished first pass of OOA of OOA domain within OOATool project. As a result, numerous small changes have been made to bring OOATool in sync with OOA of OOA.
  • Created BridgePoint OOA of OOA and captured Elevator model.
  • Optimized diagram repainting. Revamped diagram package, adding support for configurable fonts, multi-line labels, better layout, etc.
  • Added pattern matching mechanism based on new Pattern Language. SymbolicType can now be associated with a pattern taken from a pattern file attached to the domain.
Build 004
  • Completed another pass of the OOA of OOA domain within OOATool project.
  • Added translation mechanism using Archetype Language. The language should be backwards compatible with BridgePoint's archetype language.
  • Added color-coded editors for Pattern Language and Archetype Language.
  • Have started "InformationModelReport.archetype" which will eventually replace current report generation mechanism.
Build 005
  • All diagrams now automatically update when underlying OOA objects change. This fixed a major bug in previous builds that could result in corrupt diagram data being saved in an OOA file requiring manual fixing of the XML!
  • All diagram buttons now work correctly.
  • Users can now add temporary imported objects to object information models so that relationships can be more easily created. However, temporary imported objects are not recorded when a model is saved.
  • Added "Work Products" node to tree browser giving quick access to all diagrams.
Build 006
  • State models are now fully implemented, including polymorphic events as defined in OOA96. The Subsystem Communication Model (SCM), Object Communication Model (OCM) and State Transition Diagram (STD) have now been implemented. While the State Transition Table (STT) has been partially implemented.
  • Terminators have been implemented even though they were removed in OOA96.
Build 007
  • OOA Tool project includes a significantly revised OOA of OOA.
  • Fixed problem where diagram element labels get out of sync with model elements after they are renumbered. The problem resulted in link waypoints being lost when model reloaded.
  • Added "Renumber All Objects And Relationships" action to information model menu.
  • Saving pattern or archetype files also saves a HTML formatted version with a ".html" suffix added.
Build 008
  • Simple attributes may have an associated initial value. If this value is final then the simple attribute is a literal value attribute. Such attributes may be used to complete the mapping of a polymorphic attribute.
  • Mathematically dependent attributes may have an associated initial value. However, the semantics of such a value have not been finalized yet.
  • Referential attributes must now resolve to a single base attribute. This was not an explicit requirement in OOA91 or OOA96. It is a requirement in OOA10. Analysts might think that using the same data type for equivalent base attributes was sufficient. However, this results in incomplete identification of relationships. Referential loops are ignored during resolution of base attributes as long as at least one path to a base attribute can be determined. Referential attributes can be associated with an explicit manual data type ensuring an error will be flagged if the resolved base attribute's data type is incompatible. Referential attributes can also have a final value indicating that the referential attribute is actually a referential constraint, e.g. Associative Participant.Associative Role is a referential constaint.
  • Polymorphic attributes are now fully implemented. Polymorphic attributes are essentially mathematically dependent attributes which return a value dependent on which subtype object is associated with the supertype object containing the polymorphic attribute. Polymorphic attributes are required in some situations to ensure all referential attributes can resolve to a single base attribute, e.g. Entity.Information Model needs to be polymorphic otherwise any references to Object.Information Model or Terminator.Information Model would fail to resolve to a single base attribute. However, since subtype-supertype relationships are always complete when defined unlike inheritance associations, analysts do not need to use polymorphic attributes in all cases, e.g. Attribute.Attribute Category is not currently defined as polymorphic but it could be.
  • Attributes have an associated conditionality indicating whether they always have an associated value. All attributes can be made conditional by setting manual conditional status. Referential attributes will also be conditional if their associated base attribute is conditional or if all navigation paths to the base attribute are conditional. Polymorphic attributes will also be conditional if any associated true attribute is conditional. Conditional attributes are shown with a "(1c)" suffix in the tree browser. Formalized attribute conditionality is new to OOA10. However, Executable UML defines attribute conditionality using a multiplicity of "0..1".
  • Associative participants now have conditionality allowing an analyst to specify that an associative object can exist independently of the associative relationship. It is required to determine navigation conditionality across associative relationships. This capability is new to OOA10.
  • All uniqueness tests involving names and key letters are now case insensitive, e.g. you can't define the objects "Cat" and "CAT" in the same information model.
  • Automated entity (object and terminator) key lettering using first letter of each word in name while allowing user to specify custom letters if required. All entities are now required to have unique key letters. Subsystem prefix letters if defined always prefix assigned object key letters. Only custom letters are stored in OOA files now.
  • Automated object and relationship numbering using ordering within information model or ordering within subsystem offset by subsystem lowest number while allowing user to specify manual number if required. All objects and relationships are now numbered. Manual numbers may be specified outside of subsystem number ranges but these will be shown in orange as a warning. Only manual numbers are stored in OOA files now.
  • Tree browser labels are now colour coded. Derived information is shown in grey. References are shown in blue. Warnings are indicated by showing part of a label in orange. Errors are indicated by showing part of a label in red. Overridden values are shown in red with a line thru them, followed by overriding values in grey. Prominent objects are shown in bold. Literal labels or literal value attributes are shown in italics. Comments are shown in green.
  • Fixed tree browser so that when model elements are added the browser doesn't close previously opened tree nodes.
  • Added drag and drop mechanism to tree browser allowing ordered elements to be reordered.
  • Added tab selection history so that the previously selected tab is reselected when a tab is closed.
  • Added look and feel menu to preferences menu on the menu bar. This allows users to switch between Metal, CDE/Motif, native and Liquid/Mac look and feels. The Liquid/Mac look and feel which works on Windows is courtesy of Miroslav Lazarevic and Erik Vickroy (see liquidlnf: Project Home Page).
  • Domain, Subsystem and Object shapes now reduce visible content if there is not enough room. Domain shapes only show subsystems and/or prominent objects if enough room. Subsystem shapes only show prominent objects if enough room. Object shapes only show attributes if enough room.
  • Preferences for Beta releases are now build specific.
  • Fixed bug causing internal and external events to be deleted when a model is loaded. The Elevator model has also be fixed up after being damaged by this bug.
Build 009
  • OOA files now always contain a project rather than a project or information model.
  • OOA Interchange Format DTD updated and fixed. DTD renamed from ooafile0.1.dtd to OOAInterchangeFormat0.01.dtd. All models distributed with OOA Tool now include embedded DTD and have been fully validated. Fixed numerous issues with XML being generated. XML element and attribute names are now closely aligned with OOA of OOA object and attribute names. All changes to OOA Interchange Format will be tracked from now on.
  • First and second participants are now associated with the verb phrase in which they are the source participant rather than the target participant.
  • Reimplemented polymorphic event logic to match polymorphic attribute logic. Polymorphic and true events are now shown on OCM and SCM.
  • Various actions have been added to Preferences menu:
    • OOA Interchange Format menu containing format actions (see OOA Interchange Format),
    • Save Preferences (saves preferences to registry on Windows),
    • Delete Saved Preferences (deletes registry entries on Windows),
    • Save Preferences on Exit (toggles save on exit setting).
  • Participant nodes in tree browser now have a new look.
  • Saving pattern or archetype files no longer generates a colour-coded HTML file. However, the Pretty Print Java program which is now distributed with OOA Tool performs the same task.
  • Undefined pattern rule names are now shown in orange within Pattern Language editor.
  • OOATool project now saves information model reports for OOA of OOA domain within an OOAofOOA subdirectory. "PatternLanguage.pattern" has been moving into Pattern Language service domain.
  • An "ExtensibleMarkupLanguage.pattern" has been created and added to Extensible Markup Language service domain in OOATool project. However, this domain has not been modelled yet.
  • Fixed arrow display problem in tree browser when using Liquid/Mac look and feel.
  • Fixed multi-line HTML display problem in tree browser when using CDE/Motif, Windows and Liquid/Mac look and feels.
  • J2SE 5.0 menus containing icons are now better aligned (problem completely fixed in Java SE 6).
  • Character patterns within ".pattern" files can now correctly include Java integer literals.
  • Token rules can now reference other token rules without returning duplicate tokens. Only the enclosing token will be returned from the lexical parser.
Build 010
  • BridgePoint 6.x ".bak" and ".sql" exports and BridgePoint 7.0 ".xtuml" exports can now be loaded into OOA Tool with minimal loss of information. Some diagram layout information is currently lost and OOA Tool needs to provide zoom support to better handle BridgePoint diagrams which are typically laid out within an 8000 by 6000 pixel space. Obviously, synchronous services and processes (bridges and transformers in BridgePoint) are also lost at present since OOA Tool doesn't support them yet. Once a BridgePoint export is loaded it can only be saved as an ".ooa" file.
  • Added browser icons to indicate active objects, competitive relationships and polymorphic subtype-supertype relationships.
  • Competitive relationships can't be composed or mathematically dependent relationships and this constraint is now enforced within OOA Tool.
  • Diagram editors now centre their view on a preferred model element when opened. For domain charts this is the first application domain or first domain if no application domain. For subsystem models this is simply the first subsystem. For object information models this is the lowest numbered prominent object or lowest numbered object if no prominent objects. For object communication models this is the highest state model on the OCM which should be the most knowledgeable and powerful. For state transition diagrams this is the lowest numbered creation state or lowest numbered state if no creation states.
  • State actions are now only shown on state transition diagrams if 10 lines or less. This is a temporary fix.
Build 011
  • Saves OOA files using OOA Interchange Format Version 0.02. However, Version 0.01 OOA files from previous builds can still be loaded.
  • Supplemental data items now include a description attribute.
  • Domain chart diagrams now represent bridges using double curved lines with 1 or 2 way points (cubic or quad curves in Java 2D).
  • All diagrams now include the following zoom actions:
    • Zoom To Fit Window which increases or decreases diagram scale to fit within the current window,
    • Zoom To Actual Size which restores diagram scale to use the default font size,
    • Zoom In which increases diagram scale by 1 font size,
    • and Zoom Out which decreases diagram scale by 1 font size.
    These actions have been added to all diagram toolbars and popup menus.
  • All diagram shapes now include a Preferred Size Usage attribute which takes one of the following values:
    • None enabling the user to resize a shape freely,
    • Use As Size disabling the user's ability to manually resize a shape (default value),
    • Use As Minimum Size enabling the user to increase a shape's size but not decrease it below the preferred size,
    • and Use As Maximum Size enabling the user to decrease a shape's size but not increase it beyond the preferred size (useful for shrinking imported objects to exclude attributes).
    The preferred size of a shape changes whenever the shape's content changes. Depending on what the preferred size usage is for a given shape, the shape's size may be automatically increased or decreased in line with the preferred size whenever the parent diagram is viewed or edited. However, any automatic size changes must still be applied manually by the user. The preferred size usage for a shape may be changed using the shape's popup menu.
  • Rectilinear link management has been significantly improved:
    • way point creation and deletion is better,
    • spur point determination is better,
    • and moving a way point (or target point) will automatically move the previous or next way point so that a vertex move operation becomes an edge move operation.
  • Diagrams are automatically resized to make all shapes and links visible when a diagram editor is opened. However, this automatic resize can be undone by pressing the Reset button.
  • Added Select All action and Resize menu containing various resize actions to all diagram popup menus. Users can still type CTRL-A to select all model elements and use the diagram details form (accessed from diagram popup menu) to resize diagrams.
  • Added CTRL-UP, CTRL-DOWN, CTRL-LEFT and CTRL-RIGHT keys to all diagrams for moving selected elements by 2 pixels.
  • Fixed a corrupt participant mapping bug causing save project to fail. This bug would occur whenever a supertype object was changed on an existing subtype-supertype relationship containing any participant mappings.
  • Fixed a problem with the referential attribute resolution algorithm which was not always resolving referential attributes involved in circular references. The final pass of the algorithm needs to be iterative rather than a single step (see Technical Note - Referential Attributes).
  • Fixed a scaleability issue caused by Java Swing timers which don't scale in J2SE 5.0 or Java SE 6, e.g. using 100 or more timers causes popup submenus to take several seconds to appear. This was becoming a major problem since OOA Tool makes heavy use of timers to update derived values.
  • Fixed a tab selection bug which occurs in J2SE 5.0 when any first tab is removed.
  • Fixed a focus problem on diagram editor which meant that ESCAPE could not always be used to cancel a move or resize operation.
  • Selection and deselection of multiple elements is now performed as a single visible action, i.e. CTRL-A now selects all elements instantly.
Build 012
  • Saves OOA files using OOA Interchange Format Version 0.03. However, Version 0.01 to 0.02 OOA files from previous builds can still be loaded.
  • Added Executable UML support:
    • Added the concept of notation to a project and separately to all diagrams. Notation can be either:
      • Shlaer-Mellor,
      • Executable UML (xtUML)
      • or Executable UML2.
      The notation of all diagrams can be changed automatically when project notation is changed. However, if diagram notation is changed on an individual basis the user is given an option of horizontally and/or vertically scaling a diagram during the conversion. This is especially useful when converting tightly packed OIMs into Class Diagrams. It is also possible to selectively choose between UML1 and UML2 diagrams while sticking with UML1 as the project notation.
    • The notation used in the different diagrams supported by OOA Tool is specified in the following technical notes: The technical notes for OCMs and STDs will be published before the next build is released since some minor bits associated with these diagrams isn't finished yet.
    • Diagram notation controls the actual diagram notation used along with the following displayed diagram type names:
      Shlaer-MellorExecutable UML
      Domain ChartDomain Chart
      Subsystem Relationship Model Subsystem Relationship Diagram
      Subsystem Communication Model Subsystem Collaboration DiagramUML1
      Subsystem Communication DiagramUML2
      Subsystem Access ModelSubsystem Access Diagram
      Object Information ModelClass Diagram
      Object Communication Model Collaboration DiagramUML1
      Communication DiagramUML2
      Object Access ModelAccess Diagram
      State Transition Diagram Statechart DiagramUML1
      State Machine DiagramUML2
      Action Data Flow DiagramActivity Diagram
      Thread of Control ChartSequence Diagram
      N/AUse Case Diagram
      Executable UML names in italics were not explicited named in xtUML. Executable UML names with a UML2 suffix are used when Executable UML2 notation is selected. Obviously, Action Data Flow Diagrams and Thread of Control Charts are not currently supported since process models are not fully implemented yet and neither is the OOA simulator.
    • Project notation controls the initial notation of new diagrams along with the following displayed names and phrases:
      Shlaer-MellorExecutable UML
      Information ModelPlatform-Independent Model
      Unassigned ObjectUnassigned Class
      Assigned ObjectAssigned Class
      Mathematically Dependent AttributeDerived Attribute
      Binary RelationshipBinary Association
      Simple RelationshipSimple Association
      Associative RelationshipAssociation Class Association
      Composed RelationshipEqual Set Constrained Association
      Mathematically Dependent RelationshipDerived Association
      Loop Dependent RelationshipLoop Dependent Association
      Loop Independent RelationshipLoop Independent Association
      Subtype-Supertype RelationshipGeneralization
      ParticipantRelationship End
      First ParticipantFirst Class End
      Second ParticipantSecond Class End
      Associative ParticipantAssociation Class End
      Supertype ParticipantSuperclass End
      Subtype ParticipantSubclass End
      Participant MappingRelationship End Mapping
      Associative To First MappingAssociation To First Mapping
      Associative To Second MappingAssociation To Second Mapping
      Subtype To Supertype MappingSubclass To Superclass Mapping
      State ModelState Machine
      Lifecycle ModelLifecycle Machine
      Assigner ModelAssigner Machine
      Single Assigner ModelSingle Assigner Machine
      Multiple Assigner ModelMultiple Assigner Machine
      Subtype EventSubclass Event
      Internal EventInternal Signal
      External EventExternal Signal
      Supplemental Data ItemEvent Parameter
      Carried Data ItemCarried Parameter
      Received Data ItemReceived Parameter
      Simple ActionSimple Procedure
      Process ModelAction Model
    • Added Default Notation preference which controls the initial notation of all new projects.
    • Added Notation attribute to Project element and all diagram elements within OOA Interchange Format.
    • Added new Executable UML icons.
    • Added new Executable UML tree browser node label formatting.
  • Updated all name formatting in line with new naming conventions (see Technical Note - Naming).
  • Added the concept of a loop dependent relationship which defines a dependent loop using a set of loop traversal mappings (see Technical Note - Loop Dependent Relationships). A composed relationship is now a loop dependent relationship with loop traversal mappings rather than component participants so ComponentParticipant elements are now replaced by LoopTraversalMapping elements. A constrained relationship (first mentioned in OOA96) is a simple, associative or mathematically dependent relationship with loop traversal mappings. The Constraints attribute on all attribute elements has now been removed since loop constraints should now be documented in loop dependent relationship descriptions.
  • Changed the naming of assigner models from "Rn Assigner" to "associtiveObject Assigner" when the associative object only has a single assigner model. However, the competitive relationship name format is still used when there is no associative object or when the associative object participates in many competitive relationships. The label prefix used for assigner models has also been changed in the same way, e.g. R21 Assigner (R21-A) in Starr01Elevator model is now Transfer Assigner (XFER-A).
  • Clicking on an action node within OOA Tool now opens an Action Language colour-coded editor. Furthermore, STDs now show action language code using the same colour coding.
  • State elements now include a SimpleAction element containing a StatementBlock rather than an Action element containing a Description. SimpleAction elements also define a MaximumVisibleLOC attribute for controlling the maximum number of code lines displayed below a state on an STD.
  • Fixed a participant mapping validation bug. Participant mappings were sometimes not being removed when a participant object was changed.
  • Fixed a diagram editor update bug. Attribute information was not always being updated immediately after a change occurred.
  • Circular link way points are now correctly updated when diagram border is changed.
  • Selected way points now stay selected when zooming in.
  • A dialog with a sensible initial number is now presented to the analyst when adding a manually numbered relationship.
  • Simple unary links (e.g. creation event links) now have their target point reset if target point overlaps source shape.
  • Creation event link way points are now associated with creation state rather than creation event. This stops the analyst accidentally deleting a creation event when they think they are deleting a creation event transition.
  • Non-creation states are now highlighted in orange in the model element browser when new state transitions into the state have incompatible signatures. This mirrors the behaviour of creation states when their creation events have incompatible signatures. As part of this change, a new TransitionEventsCompatible attribute has been added to the Non-Creation State object in the OOA of OOA.
  • Diagram labels (which are drawn above shapes and links) now have half transparent backgrounds so that links drawn beneath labels are greyed out making the label more readable.
  • Link edges (i.e. connector points) are now immediately recalculated after way points are automatically removed.
  • Link labels on simple vertical links are now always centered making allowance for shape labels, e.g. event signatures on simple vertical transition links are now always centered making allowance for state actions.
  • Link elements now have a LinkID attribute instead of a Label attribute in OOA Interchange Format.
  • BinaryLink element now has a LabelAnchorFlipped flag which can be set in diagram editors to flip the location of various link labels, e.g. event signature on STDs can be flipped left/right or up/down.
Build 013
  • Saves OOA files using OOA Interchange Format Version 0.04. However, Version 0.01 to 0.03 OOA files from previous builds can still be loaded.
  • Added support for arbitrary ID attributes and data types. This topic will be discussed in an upcoming technical note.
  • Finished all data type forms including: Boolean Type forms, Enumerated Type forms, Symbolic Type forms, Numeric Type forms and Arbitrary ID Type forms.
  • Added object and relationship instance data support. Model Populations of instance data can now be added to projects. Model populations covering an entire project are partitioned into domain populations which are further partitioned into object and relationship instance tables with one table per object and relationship. Their primary role is to define the initial population of instance data used to intialize a simulation or translation.
  • Added version controlled OOA of OOA instance data support. Metamodel Populations of OOA of OOA instance data can now be added to projects. This instance data is automatically generated from the current model whenever the user selects Populate Metamodel... from the metamodel population's menu. However, it is never saved in OOA files since it is massively redundant! This instance data will be used in the new translator to generate reports and code. It will also be accessable in action language code during simulations.
  • Added basic Project Matrix [ProjMatx84] support including concepts of task and activity. Tasks can now be defined on projects. Activities can now be defined on domains (if no subsystems) and subsystems. There are no predefined tasks covering the Shlaer-Mellor Method at present. Although the Project Matrix table editor only views tasks and activities, it does allow you to create/edit tasks and activities via model element popup menus. Tasks and activities have also been added to the OOA Tool and official metamodel Recursive Design subsystems.
  • A new Executable UML2 model for the Executable UML Foundation (fUML) has been added to the distribution. It will be used later as the basis for providing fUML simulation support.
  • Identifier form no longer allows identifiers to be created with identifying attributes matching an existing identifier.
  • Version format attribute on projects replaced with location format attribute, e.g. version format of "0.04" replaced with location format of "OOA Interchange Format 0.04".
  • Can now capture server requirements on bridge form.
  • Domain form now shows all server requirements from bridges (only editable on bridge form) and all client assumptions to bridges (editable on domain and bridge form).
  • Made a small improvement to the referential attribute resolution algorithm. When navigating from a subtype object to a supertype object (via a referential attribute mapping) and back again across the same subtype-supertype relationship (via a polymorphic attribute mapping) then the only true attributes that are checked as part of the resolution are those associated with the source object since any true attributes associated with the other subtype objects are not reachable.
  • Added Swap First And Second Roles action to binary relationship menu. This makes the first participant become the second participant and vice-versa. It also swaps the actual roles associated with the first and second participants. This can be useful when defining connector phrases or participant roles.
  • Fixed numerous minor bugs.
Build 014
  • This build was a major rewrite with many new features but not all features were completed. After considerable thought, the architecture used here has since been abandoned. Work is already well underway on a completely new architecture which will be released in a future build. However, the new architecture is being modelled using this build of OOA Tool.
  • Saves OOA files using OOA Interchange Format Version 0.05 but this format is not complete. Version 0.01 to 0.04 OOA files from previous builds generally still load. However, backwards compatibility has not been fully tested. Anyone with a model that doesn't load should email support for assistance.
  • OOA Tool now supports the following new data types:
    • user defined External Types which are associated with an external entity and which may also have an associated literal type allowing default values,
    • a single predefined Enumerated Subtype Type for every subtype-supertype relationship,
    • a single predefined Enumerated State Type for every state model,
    • a single predefined Object Instance Type for every object,
    • a single predefined Event Instance Type for every event,
    • a single predefined Return Coordinate Type for every synchronous service,
    • a single predefined generic Transfer Vector Type,
    • and a single predefined Transfer Vector Type for every asynchronous return process.
    More details can be found in the Data Type subsystem of the OOA of OOA.
  • A distinction is now made between population independent types (boolean type, enumerated type, symbolic type, numeric type and arbitrary ID type) which all allow default values and population dependent types (object instance type, event instance type, return coordinate type, transfer vector type) which all require a population as a context for any associated data values. External types are not classified as either.
  • In the previous build, users had to explicitly add core types to a project and all data types appeared directly below their parent information model node in the tree browser. In this build, all predefined types (including core types) are automatically added to every project but are not visible in the tree browser until they are referenced from within the project. Obviously, they are visible within data type selection widgets. Furthermore, not all data types appear directly below their parent information model node now, instead:
    • user defined types (excluding object specific arbitrary ID types), core types and the generic transfer vector type are below parent information model node,
    • object specific arbitrary ID types and object instance types are below associated object node,
    • enumerated subtype types are below associated subtype-supertype relationship node,
    • enumerated state types are below associated state model node,
    • external types are below associated external entity node,
    • event instance types are below associated event node,
    • return coordinate types are below associated synchronous service node,
    • and transfer vector types (excluding generic transfer vector type) are below associated asynchronous return process node.
  • Core types can be overridden by defining a user defined type with the same basic name while still allowing the original core type to be used. However, the core type should be referenced using a "<>" suffix in that case. For example, core type Integer could be overridden with user defined type Integer while core type Integer could still be accessed using the qualified name Integer<>. Core type names are now shown in italics rather than bold navy.
  • All data types now have derived Data Type ID and Reference Count attributes. Data type IDs are used within operator labels since using name would be too verbose.
  • Arbitrary ID types may now have an associated default value. They are also labelled as sequential if Unallocated Percentage Before Reallocation is zero and Minimum Unallocated Before Reallocation is one. Most ordinal ID types will be sequential while most non-ordinal ID types will not.
  • Only user defined types are saved when a project is saved unless the Include Derived Data preference is selected in which case all data types are saved. However, all predefined types are ignored after being parsed when a project is loaded.
  • Added workaround for a serious bug in J2SE 1.5 which occurs when a very large panel is opened, e.g. opening a Subsystem editor panel when there are more than 512 Objects and Relationships causes continuous exceptions making OOA Tool almost impossible to interact with. The workaround logs a single warning and recommends Java SE 6 be used instead, then displays a blank panel.
  • Added a workaround for a Java SE 6 infinite loop bug (see Java Bug ID 6606443) which sometimes occurs after replacing text in any of the colour-coded text editors.
  • Not all changes or bug fixes are listed here.
Build 015 Next build.

Known Issues


To contact us with regard to bugs or other support issues please e-mail:

Copyright © 2007-2010 by Kavanagh Consultancy Limited. All rights reserved.