Objects, Associations and Subsystems: a hierarchical approach to encapsulation
Abstract:
The combination of data encapsulation through the aggregation of related attributes, and instance identity to distinguish separate occurrences of that encapsulated data is a powerful feature of the object oriented design paradigm. Objects provide a convenient way to encapsulate related attributes. Object Identifiers give an implicit indirection which distinguishes attributes which are themselves objects, reference attributes, from attributes which are pure values, value attributes. Value attributes are considered to be part of the object itself, whereas reference attributes are given via associations between objects. Opinions differ as to whether associations should themselves be objects with their own object identities, whether associations are a separate primitive concept which should have identities, or whether associations should be pure constructions without identities. More generally, the same issues arise when we collect objects together in larger aggregations. In [9], we propose the concept of "subsystem " as a means to provide coarse grained modularity in OO design. Subsystems can be defined using the class-instance approach as for objects, they can be managed by coordinating objects and they can be units of encapsulation in the same way as objects. Subsystems can provide a structure in which properties of collections of objects can be defined at the appropriate level without complete globalisation. If subsystems are considered to be first class objects, then they yield the possibility of developing a nested hierarchy of levels of granularity and hence a compositional approach to vertical structuring, essential if large designs are not to be subject to an exponential increase in complexity. The ideas presented here have arisen out of our formalisation of the "Syntropy"[20] and "UML"[70] approaches
Citations
No citations identified.

