Introduction
Association, Aggregation, and Composition are terms that represent relationships among objects. They are very basic stuff of Object Oriented Programming.
Association
Association is a relationship among the objects. Association is "*a*" relationship among objects. In Association, the relationship among the objects determines what an object instance can cause another to perform an action on its behalf. We can also say that an association defines the multiplicity among the objects. We can define a one-to-one, one-to-many, many-to-one and many-to-many relationship among objects. Association is a more general term to define a relationship among objects. Association means that an object "uses" another object.
For example Managers and Employees, multiple employees may be associated with a single manager and a single employee may be associated with multiple managers.

Aggregation
Aggregation is a special type of Association. Aggregation is "*the*" relationship among objects. We can say it is a direct association among the objects. In Aggregation, the direction specifies which object contains the other object. There are mutual dependencies among objects.
For example, departments and employees, a department has many employees but a single employee is not associated with multiple departments.
UML Representation of Aggregation (white diamond):

The UML representation of the example above (relation between employee and department):

Here, the lives of both objects are independent of each other. That means that in this Association (Aggregation) the object has their own life cycle. Employees may exist without a department. Here, department can be called an owner object and the employee can be called a child object. The owner and child objects cannot belong to a different parent object.
Composition
Composition is special type of Aggregation. It is a strong type of Aggregation. In this type of Aggregation the child object does not have their own life cycle. The child object's life depends on the parent's life cycle. Only the parent object has an independent life cycle. If we delete the parent object then the child object(s) will also be deleted. We can define the Composition as a "Part of" relationship.
For example, the company and company location, a single company has multiple locations. If we delete the company then all the company locations are automatically deleted. The company location does not have their independent life cycle, it depends on the company object's life (parent object).
UML Representation of Composition (black diamond):

UML representation of the example above (relation between Company and Company Location):




hekmatyar omarkhilPosted Jan 12, 2020, 2:35 PM
Very simple helpful information sir
Vaseem H PatelPosted Jun 20, 2018, 7:33 PM
Thank you, its very helpful