Managing class evolution in object-oriented systems

Software components developed with an object-oriented language undergo considerable reprogramming before they become reusable for a wide range of applications or domains. Tools and methodologies are therefore needed to cope with the complexity of designing, updating and reorganizing class collections. We present a typology of techniques for controlling change in object-oriented systems, illustrate their functionality with selected examples and discuss their advantages and limitations.

[1]  Kevin Wilkinson,et al.  Overview of the Iris DBMS , 1989, Research Foundations in Object-Oriented and Semantic Database Systems.

[2]  Jacob Stein,et al.  Class modification in the GemStone object-oriented DBMS , 1987, OOPSLA 1987.

[3]  Alexander Borgida,et al.  Modeling class hierarchies with contradictions , 1988, SIGMOD '88.

[4]  Won Kim,et al.  A Unifying Framework for Version Control in a CAD Environment , 1986, VLDB.

[5]  Alexander Borgida,et al.  Accommodating Exceptions in Databases, and Refining the Schema by Learning from them , 1985, VLDB.

[6]  Jay Banerjee,et al.  Semantics and implementation of schema evolution in object-oriented databases , 1987, SIGMOD '87.

[7]  Stanley B. Zdonik,et al.  The management of changing types in an object-oriented database , 1986, OOPSLA 1986.

[8]  Christer Hulten,et al.  Version Control in an Object-Oriented Architecture , 1989, Object-Oriented Concepts, Databases, and Applications.

[9]  Roberto Zicari,et al.  A framework for schema updates in an object-oriented database system , 1991, [1991] Proceedings. Seventh International Conference on Data Engineering.

[10]  Shamkant B. Navathe,et al.  Conceptual Design for Non-Database Experts with an Interactive Schema Tailoring Tool , 1990, International Conference on Conceptual Modeling.

[11]  William F. Opdyke,et al.  Refactoring object-oriented frameworks , 1992 .

[12]  Ian M. Holland,et al.  Object-oriented programming: an objective sense of style , 1988, OOPSLA 1988.

[13]  Markku Sakkinen,et al.  Comments on “the law of demeter” and C++ , 1988, SIGP.

[14]  William R. Cook Interfaces and specifications for the Smalltalk-80 collection classes , 1992, OOPSLA 1992.

[15]  Emmanuel Waller,et al.  Schema Updates and Consistency , 1991, DOOD.

[16]  Paul L. Bergstein,et al.  Maintaining Behavioral Consistency during Schema Evolution , 1993, ISOTAS.

[17]  Stewart M. Clamen,et al.  Type Evolution and Instance Adaptation , 1992 .

[18]  Gilles Falquet,et al.  F2: An Evolution Oriented Database System , 1993 .

[19]  Roberto V. Zicari,et al.  Overview and Progress Report of the ESSE Project: Supporting Object-Oriented Database Schema Analysis and Evolution , 1993, TOOLS.

[20]  David Beech,et al.  Generalized version control in an object-oriented database , 1988, Proceedings. Fourth International Conference on Data Engineering.

[21]  Dave Thomas,et al.  Orwell—a configuration management system for team programming , 1988, OOPSLA 1988.

[22]  Anders Björnerstedt,et al.  AVANCE: an object management system , 1988, OOPSLA 1988.

[23]  Sonya E. Keene,et al.  Object-oriented programming in COMMON LISP - a programmer's guide to CLOS , 1989 .

[24]  Ralph E. Johnson,et al.  Refactoring and Aggregation , 1993, ISOTAS.

[25]  Karl J. Lieberherr,et al.  From objects to classes: algorithms for optimal object-oriented design , 1991, Softw. Eng. J..

[26]  Franz Weber Getting Class Correctness and System Correctness Equivalent (How to get covariance right) , 1992, TOOLS.

[27]  Eduardo Casais,et al.  An Incremental Class Reorganization Approach , 1992, ECOOP.

[28]  A. Nico Habermann,et al.  Beyond schema evolution to database reorganization , 1990, OOPSLA/ECOOP '90.