Institut für Informatik

Technical Report No. 170 - Abstract

Ulf Schuenemann
Abstract Data and System Design: from Bits to Component Objects

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 with differing in flexibility have been proposed. They work by controling the references which expose the object's representation (alias control).

Report No. 170 (PostScript)