- association - is a relationship between two objects (e.g. owners feed pets, pets please owners)
- aggregation or composition - are subsets/special-cases of association (e.g. a tail is a part of both dogs and cats)
- aggregation implies a relationship where the child CAN exist independently of the parent (e.g. Class (parent) and Student (child). Delete the Class and the Students still exist)
- composition implies a relationship where the child CANNOT exist independent of the parent (e.g. House (parent) and Room (child). Rooms don’t exist separate to a House)
- is a subset/special-case of aggregation
- generalization - uses “is-a” relationship (e.g. cat is a kind of pet)
- specialization - opposite of generalization
- realization - is a relationship between the blueprint class and the object containing its respective implementation level details