Some Important Concepts
Association:
- If two classes in a model need to communicate with each other, there must be a link between them, and that can be represented by an association

- Example 1 : A single student can associate with multiple teachers.
- Example 2 : Every Instructor has one or more Students.
- Aggregation and Composition are subsets of association
Aggregation:
- Aggregation is a subset of Association.

- Aggregation implies a relationship where the child can exist independently of the parent.
- Example: Class (parent) and Student (child). Delete the Class and the Students still exist.
Composition:
- Composition is a subset of Association.

- Composition implies a relationship where the child cannot exist independent of the parent.
- Example: House (parent) and Room (child). Rooms don't exist separate to a House.
Generalization:
- Generalization is a mechanism for combining similar classes of objects into a single, more general class.
- Generalization is the term that we use to denote abstraction of common properties into a base class in UML.
- The UML diagram's Generalization association is also known as Inheritance.
- When we implement Generalization in a programming language, it is often called Inheritance instead. Generalization and inheritance are the same.
- The terminology just differs depending on the context where it is being used.
Specialization:
- Specialization is the reverse process of Generalization means creating new sub-classes from an existing class.