Framework-Based Applications: From Incremental Development to Incremental Reasoning

  • Neelam Soundarajan
  • Stephen Fridella
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1844)


Object-oriented frameworks provide a powerful technique for developing groups of related applications. The framework includes one or more template methods that at appropriate points call various hook methods. Each application built on a framework reuses the template methods provided by the framework; the application developer provides definitions, tailored to the needs of the particular application, for only the hook methods. Our goal is to develop a technique for reasoning in which we reason about the framework behavior just once; whenever a new application A is developed, we arrive at its behavior by composing the behavior of hook methods defined in A with the behavior of the framework. Just as the template methods allow the application developers to reuse the code of the framework, our technique allows them to reuse the effort involved in reasoning about the framework in understanding each application built on the framework.

We illustrate the technique by applying it to a simple example, and contrast our approach with a more standard approach based on behavioral subtyping.


Base Class Application Developer Application Designer Template Method Framework Designer 
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.
    Alagic, S., Arbib, M.: The design of well-structured and correct programs. Springer, Heidelberg (1978)zbMATHGoogle Scholar
  2. 2.
    Buhr, R.: Use case maps as architectural entities for complex systems. IEEE Trans. on Software Eng. 24, 1131–1155 (1998)CrossRefGoogle Scholar
  3. 3.
    Campbell, R.H., Islam, N.: A technique for documenting the framework of an object-oriented system. Computing Systems 6, 363–389 (1993)Google Scholar
  4. 4.
    Dhara, K.K., Leavens, G.T.: Forcing behavioral subtyping through specification inheritance. In: Proc. of 18th Int. Conf. on Softw. Eng., pp. 258–267. IEEE Computer Soc., Los Alamitos (1996)CrossRefGoogle Scholar
  5. 5.
    Fayad, M.E., Schmidt, D.C.: Special issue on object oriented application frameworks. CACM 40 (October 1997)Google Scholar
  6. 6.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design patterns: Elements of reusable OO software. Addison-Wesley, Reading (1995)Google Scholar
  7. 7.
    Jones, C.: Systematic Software Development Using VDM. Prentice-Hall, Englewood Cliffs (1990)zbMATHGoogle Scholar
  8. 8.
    Lano, K.: Formal Object-Oriented Development. Springer, Heidelberg (1995)Google Scholar
  9. 9.
    Liskov, B.: Data abstraction and hierarchy. In: OOPSLA 1987, Addendum to the proceedings, pp. 17–34. ACM Press, New York (1987)Google Scholar
  10. 10.
    Liskov, B., Wing, J.: A behavioral notion of subtyping. ACM TOPLAS 16, 1811–1841 (1994)CrossRefGoogle Scholar
  11. 11.
    Meyer, B.: Object-Oriented Software Construction. Prentice Hall, Englewood Cliffs (1997)zbMATHGoogle Scholar
  12. 12.
    Foote, B., Johnson, R.: Desigining reusable classes. Journal of OOP 1, 26–49 (1988)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2000

Authors and Affiliations

  • Neelam Soundarajan
    • 1
  • Stephen Fridella
    • 1
  1. 1.Computer and Information ScienceThe Ohio State UniversityColumbusUSA

Personalised recommendations