Incremental class dictionary learning and optimization

  • Paul L. Bergstein
  • Karl J. Lieberherr
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 512)


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.


Object-oriented programming and design reverse engineering class library organization class abstraction algorithms 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [AS83]
    Dana Angluin and Carl Smith. Inductive inference: theory. ACM Computing Surveys, 15(3):237–269, September 1983.MathSciNetCrossRefGoogle Scholar
  2. [BDG*88]
    D.G. Bobrow, L.G. DeMichiel, R.P. Gabriel, S.E. Keene, G. Kiczales, and D.A. Moon. Common Lisp Object System Specification. SIGPLAN Notices, 23, September 1988.Google Scholar
  3. [Cas89]
    Eduardo Casais. Reorganizing an object system. In Dennis Tsichritzis, editor, Object Oriented Development, pages 161–189, Centre Universitaire D'Informatique, Genève, 1989.Google Scholar
  4. [Cas90]
    Eduardo Casais. Managing class evolution in object-oriented systems. In Dennis Tsichritzis, editor, Object Management, pages 133–195, Centre Universitaire D'Informatique, Genève, 1990.Google Scholar
  5. [CF82]
    Paul R. Cohen and Edward A. Feigenbaum. The Handbook of Artificial Intelligence. Volume 3, William Kaufmann, Inc., 1982.Google Scholar
  6. [GR83]
    A. Goldberg and D. Robson. Smalltalk-80: The Language and its Implementation. Addison Wesley, 1983.Google Scholar
  7. [LBS90]
    Karl J. Lieberherr, Paul Bergstein, and Ignacio Silva-Lepe. Abstraction of object-oriented data models. In Hannu Kangassalo, editor, Proceedings of International Conference on Entity-Relationship, pages 81–94, Elsevier, Lausanne, Switzerland, 1990.Google Scholar
  8. [LBS91]
    Karl J. Lieberherr, Paul Bergstein, and Ignacio Silva-Lepe. From objects to classes: algorithms for optimal object-oriented design. Software Engineering Journal, 1991. Accepted for publication.Google Scholar
  9. [LHR88]
    Karl J. Lieberherr, Ian Holland, and Arthur J. Riel. Object-oriented programming: an objective sense of style. In Object-Oriented Programming Systems, Languages and Applications Conference, in Special Issue of SIGPLAN Notices, pages 323–334, San Diego, CA., September 1988. A short version of this paper appears in IEEE Computer, June 88, Open Channel section, pages 78–79.Google Scholar
  10. [Lie88]
    Karl Lieberherr. Object-oriented programming with class dictionaries. Journal on Lisp and Symbolic Computation, 1(2):185–212, 1988.CrossRefGoogle Scholar
  11. [LM91]
    Qing Li and Dennis McLeod. Conceptual database evolution through learning. In Rajiv Gupta and Ellis Horowitz, editors, Object-oriented Databases with applications to CASE, networks and VLSI CAD, pages 62–74, Prentice Hall Series in Data and Knowledge Base Systems, 1991.Google Scholar
  12. [LR88]
    Karl J. Lieberherr and Arthur J. Riel. Demeter: a CASE study of software growth through parameterized classes. Journal of Object-Oriented Programming, 1(3):8–22, August, September 1988. A shorter version of this paper was presented at the 10th International Conference on Software Engineering, Singapore, April 1988, IEEE Press, pages 254–264.Google Scholar
  13. [Mey88]
    Bertrand Meyer. Object-Oriented Software Construction. Series in Computer Science, Prentice Hall International, 1988.Google Scholar
  14. [MM88]
    Ole Lehrmann Madsen and Birger MØller-Pedersen. What object-oriented programming may be — and what it does not have to be. In S. Gjessing and K. Nygaard, editors, European Conference on Object-Oriented Programming, pages 1–20, Springer Verlag, Oslo, Norway, 1988.Google Scholar
  15. [PBF*89]
    B. Pernici, F. Barbic, M.G. Fugini, R. Maiocchi, J.R. Rames, and C. Rolland. CTODOS: an automatic tool for office system conceptual design. ACM Transactions on Office Information Systems, 7(4):378–419, October 1989.CrossRefGoogle Scholar
  16. [Sno89]
    Richard Snodgrass. The interface description language. Computer Science Press, 1989.Google Scholar
  17. [Str86]
    B. Stroustrup. The C++ Programming Language. Addison Wesley, 1986.Google Scholar
  18. [TYF86]
    T.J. Teorey, D. Yang, and J.P. Fry. A logical design methodology for relational data bases. ACM Computing Surveys, 18(2):197–222, June 1986.MATHCrossRefGoogle Scholar
  19. [WJ90]
    Rebecca J. Wirfs-Brock and Ralph E. Johnson. A survey of current research in object-oriented design. Communications of the ACM, 33(9):104–124, September 1990. The description of the Demeter project starts on page 120.CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1991

Authors and Affiliations

  • Paul L. Bergstein
    • 1
  • Karl J. Lieberherr
    • 1
  1. 1.College of Computer ScienceNortheastern UniversityBoston

Personalised recommendations