Relationships:
- Association:
- An association is a relationship between two objects that are link or combined with each other.
- This can be a “IS-A” or “IS-Many” relationship between two objects which shows some kind of relationship between “One-to-one” or “One-to-Many” objects.
- Representation:
It is usually drawn as a Solid Line connecting two objects.
- Association can be of two types: Aggregation & Composition.
- Aggregation:
- It is a “Has-A” or “Has-Many” relationship.
- Representation:
It is represented by an Unfilled Diamond arrow, which should point towards dependency.
- Composition:
- Composition implies “Ownership”, the Lifetime of an object is dependent on another object’s existence.
- Representation:
It is represented by a Filled Diamond arrow, which should point towards dependency.
- Include:
- Include is a path in action and it’s Compulsory.
- Here Parent Class Action is dependent on Child Class Action.
- Representation:
It is represented by an Arrow and that arrow’s direction should be towards dependency.
- Extend:
- Extend means Optional – may or may not.
- Here Parent Class Action is not dependent on Child Class Action.
- Representation:
It is represented by an Arrow and that arrow’s direction should be towards dependency.
- Generalization:
- This is also an also a parent-child relationship where Parent Class doesn’t exist without none of Child Classes.
- Representation:
It is represented by an Arrow and that arrow’s direction should be towards dependency.
- There are two types of Generalization: Actor Generalization and Use Case Generalization.
Representation of Actor and Use Case Generalization:
It is represented by an Unfilled Triangle arrow, which should point towards dependency.
- Actor Generalization:
- It shows the dependency between two Primary Actors.
- Use Case Generalization:
- It shows the dependency between two or more Child use cases with a Parent Use Case.