**Composition :** 
A is composes B i.e A is creating B(Strong Association) 

**Aggregation :** collection of items 
 A is gathers B i.e B can exist without A (Weak Association)




**Another interesting word**, which comes handy to understand difference between Composition and Aggregation in software design is `part-of` and `has`. If one object is part-of another object e.g. Engine is part of Car, then association or relationship between them is Composition. On the other hand if one object just has another object e.g. Car has driver than it's Aggregation.

[Courtesy][1]


 [1]: http://javarevisited.blogspot.com/2014/02/ifference-between-association-vs-composition-vs-aggregation.html