Re: aggregation and states



Date view Thread view Subject view Author view Attachment view

From: Ulf Schuenemann (ulf@cs.mun.ca)
Date: Thu 13 Jun 2002 - 17:54:57 BST


Les wrote:
> If I state in an object model that an engine has no meaning
> outside of the car in which it resides, i.e. the engine cannot
> exist before o[r] after the car, it is part of a car.

How one models is of course in the always just the pragmatical matter
of what one *wants* to have modeled.

But one has to be clear that a (wanted) lifetime dependeny alone does
not justify a part relationship.  Cf Henderson-Sellers & Barbier who
propose whole-part => existential depedency, but not the other way
around.  Existential dependency can also be the consequence of non-0
cardinalities. To take an example from the UML metamodel:

  [Method]----------1[Operation]

means that a Method cannot exist without an Operation, its
specification, but the Method is not a part of its specification.

"Having no meaning outside" (ie. different abstraction levels) and
"being composed into" (design step, ie., different model levels) are
better criteria and have been related to composition, eg, by Rumbaugh,
but not to (non-composition) aggregation, ``which is a meaningful
relationship between things at the same semantic level'' [Virtual
worlds: Modeling at different levels of abstraction; JOOP 6(8) 1994]

Concerning aggregation, I prefer a flexible, pragmatic use. As in
language, whenever I *want* it, ie., without preconditions, I should
be able

- to consider several objects (eg. WinstonChurchill, PlanetMars,
  aUnicorn) in together (in language: a plural phrase "Winston
  Churchill, planet Mars, and a unicorn"), and

- reify this in the model by an aggregate object X (in language: a
  singularized plural phrase "the set of Winston Churchill, planet
  Mars, and a unicorn"),

- so that I can express statements about them (as in "some X are
  politicians")
- communicate them as one (as in printer.print(X)),
- and link the whole of them, not the single objects (as in

      [printerSpooler]--------> [X]
                    `---------> [y] [z] ...

  so that the printouts of W.C., Mars, and a unicorn will be together
  and not mixed up with y and z.

Even aggregate objects that are mere mereologic sums with little
``wholeness'' (as Henderson-Sellers & Barbier are demanding)
are still an essential tool of expression/modelling.

My $.02

Ulf

Date view Thread view Subject view Author view Attachment view