Results 1 -
9 of
9
Object-Preserving Class Transformations
- IN OBJECT-ORIENTED PROGRAMMING SYSTEMS, LANGUAGES AND APPLICATIONS CONFERENCE, IN SPECIAL ISSUE OF SIGPLAN NOTICES
, 1991
"... Reorganization of classes for object-oriented programming and object-oriented database design has recently received considerable attention in the literature. In this paper a small set of primitive transformations is presented which forms an orthogonal basis for object-preserving class reorganization ..."
Abstract
-
Cited by 45 (2 self)
- Add to MetaCart
Reorganization of classes for object-oriented programming and object-oriented database design has recently received considerable attention in the literature. In this paper a small set of primitive transformations is presented which forms an orthogonal basis for object-preserving class reorganizations. This set is proven to be correct, complete, and minimal. The primitive transformations help form a theoretical basis for class organization and are a powerful tool for reasoning about particular organizations.
Design of class hierarchies based on concept (Galois) lattices
, 1998
"... Building and maintaining the class hierarchy has been recognized as an important but one of the most difficult activities of object-oriented design. Concept (or Galois) lattices and related structures are presented as a framework for dealing with the design and maintenance of class hierarchies. Beca ..."
Abstract
-
Cited by 26 (1 self)
- Add to MetaCart
Building and maintaining the class hierarchy has been recognized as an important but one of the most difficult activities of object-oriented design. Concept (or Galois) lattices and related structures are presented as a framework for dealing with the design and maintenance of class hierarchies. Because the design of class hierarchies is inherently an iterative and incremental process, we designed incremental algorithms that update existing Galois lattices as the result of adding, removing, or modifying class specifications. A prototype tool incorporating this and other algorithms has been developed as part of the IGLOO project, which is a large object-oriented software engineering joint research project involving academic and industrial partners. The tool can generate either the concept lattice or several variant structures incrementally by incorporating new classes one by one. The resulting hierarchies can be interactively explored and refined using a graphical browser. In addition, s...
Incremental Class Dictionary Learning and Optimization
- IN EUROPEAN CONFERENCE ON OBJECT-ORIENTED PROGRAMMING
, 1991
"... We have previously shown how the discovery of classes from objects can be automated, and how the resulting class organization can be efficiently optimized in the case where the optimum is a single inheritance class hierarchy. This paper extends our previous work by showing how an optimal class dict ..."
Abstract
-
Cited by 22 (13 self)
- Add to MetaCart
We have previously shown how the discovery of classes from objects can be automated, and how the resulting class organization can be efficiently optimized in the case where the optimum is a single inheritance class hierarchy. This paper extends our previous work by showing how an optimal class dictionary can be learned incrementally. The ability to expand a class organization incrementally as new object examples are presented is an important consideration in software engineering.
From objects to classes: Algorithms for optimal object-oriented design
- Software Engineering Journal
, 1993
"... The contributions of this paper are two-fold: First we introduce a novel, axiomatically defined, object-oriented data model, called the Demeter kernel model, and second we present abstraction and optimization algorithms and their relationships for designing classes from objects in the kernel mode ..."
Abstract
-
Cited by 22 (2 self)
- Add to MetaCart
The contributions of this paper are two-fold: First we introduce a novel, axiomatically defined, object-oriented data model, called the Demeter kernel model, and second we present abstraction and optimization algorithms and their relationships for designing classes from objects in the kernel model. We analyze several computational problems underlying the class design process which is divided into two phases: a learning phase and an optimization phase. This study focuses on approximation algorithms for the optimization phase and leads to a better understanding and a partial automation of the object-oriented design process. The algorithms and the theory presented in this paper have been implemented in the C++ Demeter System TM , a CASE tool for object-oriented design and programming. Keywords: Object-oriented programming and design, reverse engineering, formal software engineering techniques, class hierarchy optimization. Acknowledgements: Preliminary versions of this paper ...
A Flexible Approach for Instance Adaptation during Class Versioning
- Proceedings of ECOOP 2000 OODB Symposium (in
, 2000
"... One of the consequences of evolution can be the inability to access objects created using the older schema definition under the new definition and vice versa. Instance adaptation is the conversion of objects to a compatible definition or making objects exhibit a compatible interface. Existing evolut ..."
Abstract
-
Cited by 15 (14 self)
- Add to MetaCart
One of the consequences of evolution can be the inability to access objects created using the older schema definition under the new definition and vice versa. Instance adaptation is the conversion of objects to a compatible definition or making objects exhibit a compatible interface. Existing evolution approaches are committed to a particular instance adaptation strategy. This is because changes to the instance adaptation strategy or an attempt to adopt an entirely different strategy would be very costly. This paper proposes a flexible instance adaptation approach for systems employing class versioning to manage evolution. Flexibility is achieved by encapsulating the instance adaptation code in aspects - abstractions introduced by aspect-oriented programming to localise cross-cutting concerns. This makes it possible to make cost-effective changes to the instance adaptation strategy. The flexibility of the approach is demonstrated by using two instance adaptation strategies: error handlers and update/backdate methods.
Managing the Evolution of Object-Oriented Systems
, 1994
"... ii Class organizations (schemas) evolve over the life cycle of object-oriented systems for avariety of reasons. This issue has recently been a subject of increasing attention in the literature of both object-oriented languages and object-oriented database systems. One of the most common forms of evo ..."
Abstract
-
Cited by 14 (1 self)
- Add to MetaCart
ii Class organizations (schemas) evolve over the life cycle of object-oriented systems for avariety of reasons. This issue has recently been a subject of increasing attention in the literature of both object-oriented languages and object-oriented database systems. One of the most common forms of evolution involves the extension of an existing system by addition of new classes of objects or the addition of attributes to the original objects. Sometimes class structures are reorganized even when the set of objects is unchanged. In this case the reorganization might represent an optimization of the system, or just a change in the users ' perspective. At the other extreme, a class reorganization might re ect not only the extension and reclassi cation of existing objects, but also structural changes (other than addition of attributes) in the original objects. This work provides a mathematical treatment of a calculus of class transformations. Three kinds of transformations that commonly occur in the evolution of class structures are considered: object-extending, object-preserving, and language-preserving. For each kind of transformation, methods for automating the maintenance of systems based on the evolving class structure are discussed. The language-preserving transformations are a special case of transformations that change the structure of existing objects. If an object schema is decorated with concrete syntax, it de nes not only a class structure, but also a language for describing the objects. When two schemas de ne the same language but di erent classes, the language may be used to guide the discovery of analogies between the classes. The resulting analogies may then be used to transport functionality between domains. iii Acknowledgments Iwould like to thank my advisor, Karl Lieberherr, for his generous support, guidance, and feedback. I would also like to thank my wife, Vickie, for her constant encouragement and understanding without which thiswork would not have been possible. iv
Techniques for Reverse-Engineering and Re-Engineering into the Object-Oriented Paradigm
, 1994
"... In order to design and develop object-oriented programs, one must experience what is known as a "paradigm shift". This shift requires that one do not think in terms of the procedures that a software system must perform, but rather in terms of the entities or objects that participate in the system. A ..."
Abstract
-
Cited by 9 (1 self)
- Add to MetaCart
In order to design and develop object-oriented programs, one must experience what is known as a "paradigm shift". This shift requires that one do not think in terms of the procedures that a software system must perform, but rather in terms of the entities or objects that participate in the system. As programmers experience a paradigm shift, so must existing software systems somehow be transformed into object-orientation if they are to benefit from object-oriented features.
Facilitating Virtual Representation of CAD Data through a Learning Based Approach to Conceptual Database Evolution Employing Direct Instance Sharing
- Proceedings of DEXA ’98, LNCS 1460
"... This paper presents a framework for a learning based approach to dynamically evolve the conceptual structure of a database in order to facilitate virtual representation of data in a CAD environment. A generic object model is presented which spans applications from a wide range of engineering desi ..."
Abstract
-
Cited by 8 (8 self)
- Add to MetaCart
This paper presents a framework for a learning based approach to dynamically evolve the conceptual structure of a database in order to facilitate virtual representation of data in a CAD environment. A generic object model is presented which spans applications from a wide range of engineering design domains. The object model is complemented with a schema model. The object model and the schema model are justified through several sample cases depicting the mapping from the object model to the schema model.
Advanced Conceptual Clustering and Associated Querying Facilities in Object-Oriented Databases
"... Conventional object-oriented database (OODB) systems follow a class-based approach to model real world entities and their relationships, which imposes several difficulties when more advanced "dynamic functions" are needed by the applications. One of such dynamic functions is conceptual clustering -- ..."
Abstract
- Add to MetaCart
Conventional object-oriented database (OODB) systems follow a class-based approach to model real world entities and their relationships, which imposes several difficulties when more advanced "dynamic functions" are needed by the applications. One of such dynamic functions is conceptual clustering -- the ability to dynamically group a set of existing objects together as a higher-level abstract object (called a "cluster"). The conceptual clustering model (CCM) that we have defined is an extension to current object-oriented models, which facilitates the modeling of dynamic, evolving, and/or ad hoc object clusters through a well-devised clustering mechanism that incorporates "roles". This paper presents the advanced features of CCM, along with its associated query language facilities devised for supporting general definition and access of clusters (and roles). An experimental prototype of the CCM has been constructed on top of a persistent object storage manager, running on a Sun4 workstat...

