Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Alagic, S., Arbib, M.: The design of well-structured and correct programs. Springer, Heidelberg (1978)
Buhr, R.: Use case maps as architectural entities for complex systems. IEEE Trans. on Software Eng. 24, 1131–1155 (1998)
Campbell, R.H., Islam, N.: A technique for documenting the framework of an object-oriented system. Computing Systems 6, 363–389 (1993)
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)
Fayad, M.E., Schmidt, D.C.: Special issue on object oriented application frameworks. CACMÂ 40 (October 1997)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design patterns: Elements of reusable OO software. Addison-Wesley, Reading (1995)
Jones, C.: Systematic Software Development Using VDM. Prentice-Hall, Englewood Cliffs (1990)
Lano, K.: Formal Object-Oriented Development. Springer, Heidelberg (1995)
Liskov, B.: Data abstraction and hierarchy. In: OOPSLA 1987, Addendum to the proceedings, pp. 17–34. ACM Press, New York (1987)
Liskov, B., Wing, J.: A behavioral notion of subtyping. ACM TOPLAS 16, 1811–1841 (1994)
Meyer, B.: Object-Oriented Software Construction. Prentice Hall, Englewood Cliffs (1997)
Foote, B., Johnson, R.: Desigining reusable classes. Journal of OOP 1, 26–49 (1988)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2000 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Soundarajan, N., Fridella, S. (2000). Framework-Based Applications: From Incremental Development to Incremental Reasoning. In: Frakes, W.B. (eds) Software Reuse: Advances in Software Reusability. ICSR 2000. Lecture Notes in Computer Science, vol 1844. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-44995-9_7
Download citation
DOI: https://doi.org/10.1007/978-3-540-44995-9_7
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-67696-6
Online ISBN: 978-3-540-44995-9
eBook Packages: Springer Book Archive