This page contains an archived post to the Design Forum (formerly called the Flexible Java Forum) made prior to February 25, 2002.
If you wish to participate in discussions, please visit the new
Composition, Aggregation, Membership, Assembly, . . .
Posted by Lois Goldthwaite on 03 Dec 1998, 7:55 AM
For a short discussion on this topic that packs in more than you ever
wanted to know about it, look at an article by Brian
Hendersen-Sellers in JOOP, the Nov-Dec. 97 issue.
I heard Brian make a talk on the OPEN methodology and modeling
language, where he
distinguished between aggregation/composition (a whole made up
of two or more parts in some configuration
where the relationships are important -- e.g. you have to put the parts
of a sailboat together in the right order for it to be useful),
membership (a whole made up of one or more parts but in no particular
relationship to each other -- e.g. a club of people), and containment (I
suppose here there is even less connection between the parts, as
with a bus filled with passengers).
The OPEN notation includes symbols for each of the above. The one for
aggregation/composition is a circle with a plus sign in it, intended
to resemble a Phillips-head screw used to assemble things together.
UML's open and filled diamonds don't get much respect in OPEN circles.
The above-mentioned article also discusses relationships like
stuff-object (a bicycle is partly steel, cappuccino is partly
milk), portion-object (a slice of bread is the same substance as
the entire loaf), place-area (Austin is part of Texas), member-bunch
(a tree is part of a forest), member-partnership (an invariant
form of the previous category; Ginger and Fred are a dance couple).
The bibliography for the article lists sources for further reading,
including one called "A Taxonomy of Part-Whole Relations."