Fog Creek Software
Discussion Board

Association, Aggregation, Composition, "Uses"

Could anyone please explain these terms in the simplest words possible? Please do not point me to search google or any book (I've tried, I'm looking for these in SIMPLEST terms).

Rumble Jumble
Monday, July 12, 2004

here goes

Association is a relationship between classes. In practice it means that one or both classes will have a field of the other class as type(depending on the navigability of the assocaition). The field could also be an array/collection of the other class as type.(depending on the multilicity of the association)

You can make the association 'stronger' by stating that the field of type other class means whole/part by reference (aggregation) or value (composition), but do not bother.

Dependence between classes means that one class has method which take parms or returns value of type second class.

Associations between uses cases (use cases are classes) can be specialized by saying the one use case includes the steps of the other use case in its flow _ALWAYS_. Term changed between uses and includes between versions of UML. <<extends>> is an optional include.

Monday, July 12, 2004

Why do you say do not bother with aggregation?

John Topley (
Tuesday, July 13, 2004

It could open the composition vs aggregation hair-splitting.

I have only recently understood the ordered vs sorted distinction on roles. Sorted is a refinement of ordered (like aggregation refines association) which means that the order is not fixed but determined by the state of the associated objects.

Lots of these small debates hidden in UML.

Wednesday, July 14, 2004

*  Recent Topics

*  Fog Creek Home