1. Class representation
- Visibility: public "+" / private "-"
- Parameter direction: input "in" / in&out "inout" / output param "out"
- Type of members: static method is underlined / pure virtual function italics
- Association ------------>
- maybe aggregation
- maybe composition
- maybe dependency
- Dependency - - - - - - ->
- class X { void foo(Y y){}; }
- A dependency is very much implied by an association.
- Aggregation <>--------->
- X weakly contains Y
- class X { Y* y; }
- Composition <+>------->
- X strongly contains Y
- class X { Y y; }
- Generalization ------------|>
- inheritance
- Class template
- two class representation overlay
- generic programming
- Multiplicity in a relationship
- "0..1" none or one
- "1" exactly one
- "*" zero or more
- "1..*" at least one