Section 2.3 SAIF/OMT Graphical Syntax


Both graphical and text based modelling approaches are practical with SAIF. Because SAIF incorporates mainstream object oriented concepts, several commercial CASE (computer aided systems engineering) or CASE-like tools are appropriate. Graphical modelling with SAIF is based on the the Object Modelling Tool (OMT) methodology as described below.

In Figure 2-3 each box represents a distinct class.

The text element in the top half of each box is the class name. The addition of {abstract} indicates an abstract superclass. (If an instance of a class must also be an instance of a subclass of that class, then the class is considered an abstract superclass.) The addition of {enum} indicates that the class is a type of Enumeration (e.g. PrimaryColor may be defined with values of red, green, blue).

A tilde (~) following the class name indicates that a more complete diagrammatic description of the class can be found elsewhere.

The text elements in the bottom half of the box may be either: (1) the names of attributes with primitive domains (e.g. age comes from the domain integer) for a given class, or (2) the values (red, green, blue) separated by spaces in the case of types of enumerations.

Lines connecting boxes indicate associations.

An open triangle represents a generalization in the direction of the triangle (e.g., Class 1 is a supertype of Class2) or a specialization (e.g., Class 2 IS-A or is a subtype of Class 1) in the opposite direction.

An open diamond represents a containment (HAS-A) or aggregation association. The class that is connected directly to the diamond 'contains' zero to n instances of the class at the opposite end of the connector. An open circle at the end of the connector denotes 'zero or one'. A closed circle indicates 'zero or more'. A integer (n) followed by a + indicates 'n or more'. An integer (n) indicates exactly 'n'. No symbol at the end of the connector indicates exactly 'one'. An 'i' immediately after the diamond indicates an inherited attribute.

A line without a diamond or a triangle represents a relationship between two objects.

In the example, Class 2 is an instantiable subclass of the abstract superclass Class 1 and inherits the Class 1 attribute. An instance of Class 1 is related to zero or more instances of Class 7 while an instance of Class 7 is related to one instance of Class 1. Class 2 'contains' one instance of the Class 3 (an enumeration), one or more instances of Class 4 (an inherited attribute), zero or one instance of Class 5 and zero or more instances of Class 6.


Links to the SAIF 3.1 Specification document and the complete SAIF class list