An incremental class reorganization approach

  • Eduardo Casais
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 615)


Software components developed with an object-oriented language require frequent reorganizations before they become stable, reusable classes. We propose a new algorithm that analyses the redefinitions carried out on inherited properties when a class is added to a hierarchy, and restructures the hierarchy to discover missing abstractions and to enforce programming style guidelines. We illustrate our automatic restructuring approach with simple examples, describe formally the algorithm and the object model it is based on, and discuss its suitability for object-oriented software engineering. The results of applying the algorithm to the Eiffel library are examined.


Class Library Code Sharing Class Interface Schema Update Class Collection 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    B. Anderson, S. Gossain: Hierarchy Evolution and the Software Lifecycle. In: J. Bézivin, B. Meyer, J.-M. Nerson (eds.): Proc. 2nd TOOLS Conference. Paris, 1990, pp. 41–50Google Scholar
  2. 2.
    J. Banerjee, W. Kim, H.-J. Kim, H. F. Korth: Semantics and Implementation of Schema Evolution in Object-Oriented Databases. In: SIGMOD Record (special issue on SIGMOD '87) 16(3), 311–322 (December 1987)CrossRefGoogle Scholar
  3. 3.
    A. Björnerstedt, C. Hultén: Version Control in an Object-Oriented Architecture. In: W. Kim, F. H. Lochovsky (eds.): Object-Oriented Concepts, Databases, and Applications. Frontier Series. Addison-Wesley/ACM Press, 1989, pp. 451–485Google Scholar
  4. 4.
    D. C. Halbert, P. D. O'Brien: Using Types and Inheritance in Object-Oriented Programming. IEEE Software, 71–79 (September 1987)Google Scholar
  5. 5.
    R. E. Johnson, B. Foote: Designing Reusable Classes. Journal of Object-Oriented Programming, 22–35 (June–July 1988)Google Scholar
  6. 6.
    K. J. Lieberherr, P. Bergstein, I. Silva-Lepe: Abstraction of Object-Oriented Data Models. In: H. Kangassalo (ed.): Proc. 9th Entity-Relationship Conference. Lausanne: 8–10 October 1990, pp. 81–94Google Scholar
  7. 7.
    K. Lieberherr, I. Holland, A. Riel: Object-Oriented Programming: an Objective Sense of Style. SIGPLAN Notices (special issue on OOPSLA '88) 23(11), 323–334 (November 1988)CrossRefGoogle Scholar
  8. 8.
    B. Meyer: Tools for the New Culture: Lessons from the Design of the Eiffel Libraries. CACM 33(9), 68–88 (September 1990)Google Scholar
  9. 9.
    D. J. Penney, J. Stein: Class Modification in the GemStone Object-Oriented DBMS. SIGPLAN Notices (special issue on OOPSLA '87) 22(12), 111–117 (December 1987)CrossRefGoogle Scholar
  10. 10.
    W. W. Pun: A Design Method for Object-Oriented Programming. PhD thesis. Department of Computer Science, University College London. London: 1990Google Scholar
  11. 11.
    E. Waller: Schema Updates and Consistency. In: C. Delobel, M. Kifer, Y. Yasunaga (eds.): DOOD '91 Proceedings. Lecture Notes in Computer Science 566. Springer December 1991, pp. 167–188Google Scholar
  12. 12.
    R. Zicari: Schema Updates in the O2 Object-Oriented Database System. Technical report 89-057. Politecnico di Milano, Dipartimento di Elettronica. Milano: 31 October 1989Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1992

Authors and Affiliations

  • Eduardo Casais
    • 1
  1. 1.Forschungszentrum InformatikKarlsruhe 1Germany

Personalised recommendations