difference between aggregation and composition uml