Aggregation represents the is part of or is subpart of relationship set, which is quite common. It declares that any object in the aggregate class is composed of other objects from the subpart classes.

For example, the aggregate class building could be decomposed into the subpart classes basement, first floor, and second floor.

The aggregation relationship set is represented in an ORM by a solid triangle with a line between one of its vertices and the aggregate class, and a line between the opposite base and each of the subpart classes. For example:

This relationship set is read "basement is a subpart of building and first floor is a subpart of building and second floor is a subpart of building."

Aggregation relationship sets have participation constraints. The constraint near each subpart class specifies how many objects in the aggregate class each object from the subpart class may be related to. The constraints near the solid triangle specify how many objects from a subpart class can be related to an object in the aggregate class, as shown above.

Not all subparts of a aggregate class must be represented using the same black triangle. Therefore, an object class may be connected to more than one solid triangle, but the additional triangles have no special meaning -- just that there are additional subparts.

Here is a short quiz so you can test your understanding of aggregation.

Go to the OSA Tutorial ORM

Go to Roles Association

 OSM Home Page CS Dept Home Page  BYU Home Page

Created Thurs Sep 15 16:28:10 1994 ...
Updated Thurs Sep 29 13:25:12 1994
by Sean Rohead (