Last Updated: 14 December 2009
The OOA Interchange Format defines the OOA file format used to interchange OOA10 models between OOA editors, simulators, translators, and other tools. The file format is based on the Extensible Markup Language (XML) 1.0 standard and is formalized using an XML DTD. The current OOA Interchange Format DTD is:
OOAInterchangeFormat0.04.dtd (drop the ".html" suffix for the actual DTD)
An OOA file is an XML file (with an ".ooa" suffix) conforming to this DTD which contains a single project definition. However, a project may import domains and bridges from other projects defined in other OOA files. An example OOA file using this format is given below:
OOA88AppendixA.ooaThe Information Model Report (including graphical model) generated by OOA Tool from this OOA file is:
Information Model Report for Management of Magnetic Tapes
The OOA Interchange Format uses XML attributes more heavily than is generally recommended since it maps
OOA of OOA objects to XML elements and OOA of OOA attributes to XML attributes
(except for attributes of type Description
which are mapped to XML elements instead of attributes).
This results in smaller OOA files but may annoy XML purists!
ID
and IDREF
attributes are not used at present
but an option to use these may be added in the future.
Their use would allow additional validation to occur but it may increase the size of OOA files significantly.
XML element, attribute and enumerated values within the DTD use the
CamelCase naming convention.
A comment has been added after each XML element in the DTD indicating:
whether attributes are referential (R)
or mathematically dependent (M)
,
attribute data type names, and whether attributes are conditional (1c)
.
However, this information can be found in the OOA of OOA.
Obviously, when mapping a Project
from the OOA of OOA into a hierarchical XML structure,
there are bound to be compromises as to how circular references are decoupled.
Furthermore, several service domains need to be incorporated into the OOA Interchange Format,
e.g. the Diagramming service domain.
Along with the bridges between the OOA of OOA and the service domains.
The format currently incorporates a small amount of information from a Reporting service domain.
However, this will be dropped once Information Model Reports are implemented as archetype templates.
Some elements within the format currently include Path
and RelativePath
attributes
referencing external files such as diagrams.
A new File System service domain will be defined and used in the future to formalize such information.
Version 0.01 is the first tracked version of the format. All future changes will be tracked in the change log below allowing users to manually update their models if necessary. However, OOA Tool will attempt to maintain backwards compatibility across BETA releases. The last BETA release will support the Version 1.0 format and all previous 0.x formats. It will also remain available after OOA Tool 1.0 Standard is released since non-BETA versions of OOA Tool will not maintain backwards compatibility with previous 0.x formats.
Obviously, OOA Tool supports the OOA Interchange Format as specified since it is used to validate any changes made to the format. It also supports a number of preferences which control the formatting of OOA files:
Preferences OOA Interchange Format Document Type Declaration Internal DTD External File DTD External Website DTD Include Default Values From DTD Include Derived Data Tab Size 0 1 2 3 4 5 6 7 8
Each OOA file has an XML document type declaration which can either be:
dtds
directory of your OOA Tool installation
(after all comments have been removed),dtds
directory of your OOA Tool installation,dtds
directory of the OOA Tool website.Default values as specified in the DTD can also be explicitly included in OOA files. This increases the size of OOA files significantly and makes little difference when viewing the XML using a browser such as Internet Explorer since it will automatically include default values from the DTD. The only difference being that empty description elements will also be included when this preference is selected. This preference is useful when users want to use a search and replace tool to edit an OOA file.
Derived data (e.g. mathematically dependent attributes and predefined types) can also be included in OOA files.
This preference is useful when users want to use third-party tools to access model information
that requires sophisticated logic to determine, e.g. Referential Attribute.Referential Suffix
.
This preference also increases the size of OOA files significantly.
Each OOA file can also be formatted in a more human readable format using tab indentations.
To turn tab indentations off, set the tab size to 0
.
The OOA Interchange Format currently supports the following OOA diagrams:
The structure and content of diagram elements is based on OOA Tool's Diagramming service domain (see Information Model Report for Diagramming) which defines diagrams in terms of shapes, links and points. The Diagramming service domain is currently defined in a minimum form, e.g. it defines way points for links but not end points since they can be derived automatically. The format as it stands makes lots of assumptions about the shape and link styles required in each diagram which may lead to undesirable variations in the look and feel of displayed OOA diagrams. However, the essential content and layout of OOA diagrams need not vary (unless requested by the user) even with the format as it currently stands. The Diagramming service domain will be expanded in the future to include shape and link styles along with shape and link labels. This should help eliminate any potential variation in diagram look and feel across tools. It will also define default heuristics for calculating end points and placing link labels etc.
Shape names and link IDs are diagram dependent:
bridgeID := 'B' bridgeOrder
subsystemLinkID := 'S' sourceSubsystemOrder '-' targetSubsystemOrder
Source subsystem order is always less than target subsystem order for bidirectional subsystem links.
eventDestinationLinkID := sourceDestinationID '/' targetDestinationID
Where event destination IDs are object key letters for lifecycle models,
associative object key letters with a "-A" suffix for assigner models
(if associative object exists and only has a single assigner model),
competitive relationship IDs with a "-A" suffix
for assigner models in other cases, and terminator key letters for terminators.
transitionID := "T-" stateNumber | 'T' eventNumber '-' [ stateNumber ]
Event numbers are not used in creation transition IDs
since there can only be one creation event associated with a creation state.
State numbers are not used in deletion transition IDs (Executable UML notation only) since
deletion transitions are from deletion states to final pseudostates represented by target points.All widths, heights, x coordinates and y coordinates are given in pixels. All font sizes are given in points which are roughly 1/72 of an inch. The height of a font (i.e. the distance between two lines of text) is the sum of the leading, ascent and descent heights. A given font size relates to the ascent height only (not the overall height). The OOA Interchange Format currently assumes 72 pixels per inch (Java 2D makes the same assumption even if a given screen resolution is different). This fact allows us to convert font sizes which are always given in points into approximate pixel sizes, e.g. a 12 point font has a typical ascent height of 12 pixels.
The top left-hand corner of each diagram has an origin of (0,0)
with x coordinates moving from left to right and y coordinates from top to bottom (not bottom to top).
Viewable diagram space extends from the origin at (0,0)
to (width,height)
.
Any diagram content which falls outside of this space is clipped when viewed.
However, clipped content should be preserved and in OOA Tool can be viewed by performing a select-all
(using CTRL-A
) and then moving the clipped content into the viewable diagram space.
The location of a shape is always the top left-hand corner of that shape.
The location of a point is always the center of that point.
Each diagram has an associated base font that is used for shape and link labels.
Labels within a diagram may alter the style or size of the base font,
e.g. verb phrases in Object Information Models are always shown in italics.
This font is always explicitly specified in the OOA Interchange Format
since default fonts vary from platform to platform.
The syntax for font values (based on Java's
Font.decode()
method) is given below:
font := name [ ( '-' | ' ' ) style ] [ ( '-' | ' ' ) size ] name := "Serif" | "SansSerif" | "Monospaced" | "Dialog" | "DialogInput" style := "plain" | "bold" | "italic" | "bolditalic" size := { '0'..'9' }+The font names listed above represent logical fonts which are mapped to physical fonts on each platform. A physical font name (e.g.
Ariel
) can be used instead but it may not be supported on all platforms.
Styles are case-insensitive.
The default font in OOA Tool is SansSerif-plain-12
.
Version 0.01 | Initial tracked version. Requires OOA Tool 1.0 BETA Build 009 (or later). |
Version 0.02 |
|
Version 0.03 |
|
Version 0.04 |
|
Version 0.05 |
|
Version 1.0 | Requires OOA Tool 1.0 Standard (not released yet). |