SimSoup: Design

Modules: Diagram Notation

Data and Inheritance Hierarchy View Notation

The diagram below illustrates the notation used for data relationships and inheritance relationships.

I use 'crowfoot' notation for cardinality rather than the notation that places text symbols (eg '*' or '1..N') at the end of relationship lines. This is purely a matter of taste.

Notation - Data

The small circles indicate optionality. On the Association relationship shown, if the circle at the Class B end were not there, it would be mandatory for there to be at least one Class B object for each Class A object. If there were a circle by the bar at the Class A end, then it would be optional for a Class B object to have an associated Class A object.

Dependency View Notation

The diagram below illustrates the notation used for dependency relationships.

Dependency relationships are of two kinds. Dependency for implementation means that one class's implementation is dependent on another class. Dependency for interface means that the interface of one class is dependent on another class, but the class's implemention is not dependent. A dependency on interface typically arises when one class inherits from a base class; the inheriting class is dependent on the base class's interface.

Notation - Dependencies