Section 2.2.2.2 Aggregation


Another kind of hierarchy may also be described, based on the attributes of objects. If a given object has or contains other objects, these other objects are considered to be aggregated into the primary object. In other words, an object may be considered an assembly with components defined by other objects. Consider a house. A kitchen may be considered as an attribute of a house, or more simply, a house has a kitchen. In turn the kitchen has a sink, which has a faucet and a basin. The basin has a colour and a composition. It follows that a house has a sink, and because it does, it also has a faucet, etc. Component objects must be understood in the context of the object which directly contains them. The colour in the example pertains directly to the basin only; clearly it has nothing to do with the colour of the house. This is a notion of hierarchy dealing with component parts or aggregation. It is independent of class inheritance. Such containment hierarchies pertain to objects only, not to classes. As with the previous example, aggregation associations between objects are transitive and asymmetric; additionally, the primary object and the component objects are typically semantically similar or consistent with respect to one another.


Links to the SAIF 3.1 Specification document and the complete SAIF class list