  This paper is about conceptual modeling of aggregates in software
engineering. An aggregate is a cluster of domain objects that can be treated as
a single unit. In UML, an aggregation is a type of association in which objects
are configured together to form a more complex object. It has been described as
one of the biggest betes noires in modeling. In spite of its widespread use,
aggregation seems a troublesome concept. It is sometimes treated as part-of;
however, the part-of relation is only one of many possible aggregation
mechanisms and is itself problematical, partly because of its diverse
semantics. The purpose of this paper is to develop a semantic assembly model
that is useful to represent relationships in the domain and achieve various
levels of interoperability among software. The paper contributes to ontological
conceptual clarity about aggregation, based on a model called a thinging
machine (TM). The TM model uses so-called thimacs (things/machines) as building
blocks for describing the domain. Thus, the notion of aggregation is extended
to behavioral aggregation, in which individual entities collectively behave as
a unit. The results point to a promising contribution to the understanding of
the notion of aggregation compared to the ontological positions that are based
on substance or relation.
