Relationships
- Association
- Generalization
- Dependency
- Constraint Rules
Association - relationships between instances of Types.
- Name
- Role
- Label with direction
- Direction (navigability)- bi-directional or uni-directional
- Cardinality - (multiplicity)
Aggregation
- has-a or part-whole
- open diamond
Composition
- a more limited aggregation relationship
- assumes aggregate class has control over the lifetime
of the component
- exclusive ownership of component by aggregate class
- closed (black) diamond
Generalization (Specialization)
- Inheritance (class/class or interface/interface)
- Subclassing
- Realization (class/interface)
- interface-inheritance (subtyping) shown with a dashed line and
filled arrowhead
- implementation-inheritance (subclassing) shown with a solid
line and filled arrowhead
- Abstract classes and methods shown in italics
Dependency - dashed arrow with open arrowhead
Constraint Rules
UML uses { } to show contraints.
Design By Contract and assertions will be used to enforce contraints.
This is native to languages like Eiffel. We'll talk more about this
later.
Examples: p 31,33,35


