|
Abstract.
Data in computer systems is an abstraction in form of software entities at
several levels: bits, values of the programming language, instances of abstract
data implementation modules, and dynamically composed ``abstract'' objects. Each
level has a corresponding notion of data, represented by aggregations of
entities at the level below. The separation of users and implementation of data
at each level increases system modularity. Frontal breaches of abstractions by
misinterpretation and lateral breaches by access to the parts are a threat to
modularity and sound modular reasoning in terms of high level data entities.
Type systems and modular encapsulation protect values and instances of
implementation modules, but not the objects of object-oriented design, black-box
reuse and component-based software. To achieve object encapsulation, several
programming disciplines differing in flexibility have been proposed. They
work by controling the references which expose the object's representation
(alias control).
Keywords:
data abstraction, representation, modularity,
object abstraction, aggregation, composition, composite object, component object,
black box reuse, representation exposure, alias control.
|