In object-oriented design and languages, abstractness of classes is a concept whose relationship to other concepts is not yet fully understood and agreed upon. This paper clarifies the concept of abstractness and examines the relationship between abstractness and inheritance. It does this by discussing several aspects of the so-called abstract superclass rule, a design rule for object-oriented programming which requires that all superclasses be abstract. In the course of this discussion, we evaluate in which situations this rule should be considered beneficial.
Reorganisation and evolution of class hierarchies is important for object-oriented system development and has received considerable attention in the literature. The contributions of this paper are: (1) a formal study of a set of extension relations and transformations on class hierarchies; (2) a presentation of a small set of primitive transformations which form a minimal and complete basis for the extension relations; and (3) an analysis of the impact of these transformations at the object level.
The study leads to a better understanding of evolution and reuse of object-oriented software and class hierarchies. It also provides a terminology and a means of classification for design reuse. The theory presented in this paper is based on the Demeter data model, which gives a concise mathematical foundation for classes and their inheritance and part-of relationships. Parts of the theory have been implemented in the Demeter System
TM
C++, a CASE tool for object-oriented design and programming.
An algorithm is presented that abstracts out the "largest" common substructure of two given objectoriented class structures. This abstraction algorithm is based on two concepts: (1) a mathematical formulation of extension for class structures containing part-of and inheritance relationships, and (2) a definition of similarity on the class level. The algorithm shows how class structures can be optimized with respect to the extension relation, and how it can be used to abstract out a candidate parameterized class structure. The algorithm has been implemented as a schema transformation and design tool in the Demeter System.
A seamless approach to the incremental design and reuse of object-oriented methods and query specifications is presented. We argue for avoiding or minimizing the effort required for manually reprogramming methods and queries due to schema modifications, and demonstrate how the role of polymorphic reuse mechanisms is exploited for enhancing the adaptiveness of database programs against schema evolution in an object-oriented database. The salient features of our approach are the use of propagation patterns and a mechanism for propagation pattern refinement. Propagation patterns are employed as an interesting specification formalism for modeling operational requirements. They encourage the reuse of operational specifications against the structural modification of an object-oriented schema. Propagation pattern refinement is suited for the specification of reusable operational modules. It promotes the reusability of propagation patterns toward the operational requirement changes. This approach has a formal basis and emphasizes structural derivation of specifications. The main innovations are in raising the level of abstraction for behavioral schema design, and for making possible the derivation of operational semantics from structural specifications. As a result, both the modularity and reusability of object-oriented schemas are increased.
A polymorphic approach to the incremental design and reuse of object-oriented methods and query specifications is presented. llsing this approach, the effort required for manually reprogramming methods and queries due t o schema modifications can be avoided OT minimized. The salient features of our approach are the use of propagation patterns and a mechanism for propagation pattern refinement. Propagation patterns can be employed as an interesting specification formalism for modeling operational requirements in object-oriented database systems. They encourage the reuse of operational specifications against the structural modification of an object-oriented schema. Propagation pattern refinement is suited for the specification of reusable operational modules, and for achieving reusability of propagation patterns towards the operational requirement changes.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.