Designing a framework by stepwise generalization

  • Kai Koskimies
  • Hanspeter Mössenböck
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 989)


Frameworks are class collections that capture the common aspects of applications in a certain problem domain. It is argued that conventional object-oriented design methods do not suit well to frameworks. As an alternative, we suggest a two-phase design method. The first phase is a stepwise generalization of a problem to its most general form. The second phase proceeds in the opposite direction, giving an implementation for every generalization level. The implementation of a certain level can be regarded as a framework for implementing the next more specific level. The main advantage of our method is that it enhances the generality (and therefore reusability) of the framework architecture, and explains the design decisions in the simplest possible context. As a case study, we describe a framework supporting the analysis of formal languages.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [App89]
    Apple Computer: MacAppII Programmer's Guide. Apple Computer Inc., Cupertino, CA, 1989.Google Scholar
  2. [BeJ94]
    Beck K., Johnson R.: Patterns Generate Architectures. In: ECOOP '94, LNCS 821, 139–149.Google Scholar
  3. [Cox87]
    Cox B.J.: Object Oriented Programming — An Evolutionary Approach. Addison-Wesley 1987.Google Scholar
  4. [FKP93]
    Fukunaga A., Kimura T., Pree W.: Object-Oriented Development of a Data Flow Visual Language System. In: Proc. of IEEE Visual Language Symposium '93, Bergen, Norway (August 1993), 134–141.Google Scholar
  5. [Gam95]
    Gamma E., Helm R., Johnson R., Vlissides J.: Design Patterns: Elements of Object-Oriented Software Architecture. Addison-Wesley 1995.Google Scholar
  6. [Gra92]
    Graver J.O.: The Evolution of an Object-Oriented Compiler Framework. Software Practice & Experience 22(7), July 1992, 519–535.Google Scholar
  7. [Joh92]
    Johnson R.E.: Documenting Frameworks with Patterns. In: OOPSLA '92, Sigplan Notices 27(10), October 1992, 63–76.Google Scholar
  8. [Kos90]
    Koskimies K.: Object-orientation in attribute grammars. In: Attribute Grammars, Applications and Systems, Lecture Notes in Computer Science 545 (eds. H. Alblas and B. Melichar), Springer-Verlag 1991, 297–329.Google Scholar
  9. [KoM95]
    Koskimies K., Mössenböck H.: Designing an Object-Oriented Framework for Language Implementation. Report 2, Department of Systems Software, University of Linz, 1995.Google Scholar
  10. [JKN95]
    Järnvall E., Koskimies K., Niittymäki M.: Object-Oriented Language Engineering with TaLE. Manuscript, to appear in Object-Oriented Systems.Google Scholar
  11. [KrP88]
    Krasner G.E., Pope S.T.: A Cookbook for Using the Model-View-Controller User Interface Paradigm in Smalltalk-80. JOOP 1(3), August/sept 1988, 26–49.Google Scholar
  12. [Mös93]
    Mössenböck H.: Object-Oriented Programming in Oberon-2. Springer-Verlag 1993.Google Scholar
  13. [MöW91]
    Mössenböck H., Wirth N.: The Programming Language Oberon-2. Structured Programming 12,4 (1991), 179–195.Google Scholar
  14. [Pre95]
    Pree W.: Design Patterns for Object-Oriented Software Development. Addison-Wesley 1995.Google Scholar
  15. [Rum91]
    Rumbaugh J., Blaha M., Premerlani W., Eddy F., Lorensen W.: Object-Oriented Modelling and Design. Prentice-Hall, 1991.Google Scholar
  16. [WGM88]
    Weinand A., Gamma E., Marty R.: ET++ — An Object-Oriented Application Framework in C++. In: OOPSLA '88, Sigplan Notices 23(11), October 1988, 46–57.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1995

Authors and Affiliations

  1. 1.Institute of Computer ScienceJohannes Kepler University LinzLinzAustria

Personalised recommendations