# **Relationship types** **A) association:** when class A uses class B as an attribute or the opposite **(represented as a line, or line with directions)** _direction of the association indicates that the destination does not know the source_ **self-association:** when a class uses an object from its self **association divided into two types** - **Composition:** object instantiate (the New operators exist) inside the class **(represented as filled diamond-shaped at the start of association line)** - **Aggregation:** object instantiate passed from outside **(via constructor or setters)** **--------------** **B) Dependency:** class A used class B inside its methods **(represented as a dashed line, or dashed line with directions).** **--------------** **C) Generalization:** connects a subclass to its superclass **(represented as a line end with a triangle)** **--------------** **D) Realization:** connects a class with an interface that supplies its behavior specification **(represented as a dashed line end with a triangle)**