Abstract
Object-oriented frameworks are often hard to learn and use (J. Bosch et al., In: ACM Computing Survey's Symposia on Object Oriented Application Frameworks, 1998; M. Fayad and D.C. Schmidt, Communication of the ACM, Special Issue on Object-Oriented Application Frameworks 1997;40(10)). As a result, software cost rises and quality suffers. Thus the capability to automatically detect errors occurring at the boundary between frameworks and applications is considered crucial to mitigate the problem. This paper introduces the notion of framework, constraints and a specification language, FCL (Framework Constraints Language), to formally specify them. Framework constraints are rules that frameworks impose on the code of framework-based applications. The semantics of FCL is primarily based on first order predicate logic and set theory though the evolving syntax is designed to resemble that of programming languages as much as possible. We take examples from the MFC (Microsoft Foundation Classes) framework (G. Shepherd and S. Wingo, MFC Internals: Inside the Microsoft Foundation Classes Architecture. Reading, MA: Addison Wesley, 1996) demonstrating both the nature of framework constraints and the semantics of FCL. Essentially, framework constraints can be regarded as framework-specific typing rules conveyed by the specification language FCL, and thus can be enforced by techniques analogous to those of conventional type checking.
Similar content being viewed by others
References
Biggerstaff TJ, Perlis AJ, eds. Software Reusability, vol. 2. ACM Press, 1989:57-71.
Bosch J, Molin P, Mattsson M, Bengtsson P. Obstacles in objectoriented framework-based software development. In: ACM Computing Survey’s Symposia on Object-Oriented Application Frameworks, 1998.
Fayad M, Schmidt DC. Object-oriented application frameworks. Communication of the ACM, Special Issue on Object-Oriented Application Frameworks 1997;40(10).
Fontoura MF, Braga C, Moura L, Lucena CJ. Using domain specific languages to instantiate object-oriented frameworks. IEE Proceedings-Software 2000;147(4).
Froehlich G, Hoover HJ, Liu L, Sorenson PG. Hooking into object-oriented application frameworks. In: Proceedings of the 1997 International Conference on Software Engineering, Boston, United States, 1997.
Gamma E, Helm R, Johnson RE, Vlissides JO. Design Patterns-Elements of Reusable Object-Oriented Software. Reading, MA: Addison Wesley, 1994.
Helm R, Holland IM, Gangopadhyay D. Contracts: Specifying behavioral compositions in object-oriented systems. In: Proceedings of ECOOP/OOPSLA 90, Ottawa, Canada, 1990.
Johnson RE. Documenting frameworks with patterns. In Proceedings of OOPSLA 92, Vancouver, Canada, 1992.
Johnson RE. Components, frameworks, patterns. In: Proceedings of the 1997 Symposium on Software Reusability, Boston, United States, 1997:10-17.
Kiczales G, Lamping J. Issues in the design and specification of class libraries. In: Proceedings of OOPSLA 92, Vancouver, Canada, 1992:435-451.
Krasner GE, Pope ST. A cookbook for using the model-viewcontroller user interface paradigm in smalltalk-80. Journal of Object Oriented Programming 1988;1(3).
Lamping J. Typing the specialization interface. In: Proceedings of OOPSLA 93, 1993:201-215.
Liskov BH, Wing JM. A behavioral notion of subtyping. ACM Transactions on Programming Languages and Systems, 1994.
Meyer B, Applying design by contract. IEEE Computer, 1992.
Nierstrasz O, Tsichritzis D, eds. Object-Oriented Software Composition. Englewood cliffs, NJ: Prentice Hall, 1995:99-121.
Ortigosa A, Campo M, Moriyon R. Towards agent-oriented assistance for framework instantiation. In: Proceedings of OOPSLA 2000, Minneapolis, MN, USA, 2000.
Pree W. Design Patterns for Object-Oriented SoftwareDevelopment. Reading, MA: Addison Wesley, 1995.
Pree W, Pomberger G, Schappert A, Sommerlad P. Active guidance of framework development. Software-Concepts and Tools, 1995.
Shepherd G, Wingo S. MFC Internals: Inside the Microsoft Foundation Classes Architecture. Reading, MA: Addison Wesley, 1996.
Stacy W, Helm R, Kaiser GE, Meyer B. Panel: Ensuring semantic integrity of reusable objects. In: Proceedings of OOPSLA 92, Vancouver, Canada, 1992.
Stata R, Guttag J. Modular reasoning in the presence of subclassing. In: Proceedings of OOPSLA 95, 1995:200-214.
Steyaert P, Lucas C, Mens K, D’Hondt T. Reuse contracts: Managing the evolution of reusable assets. In: Proceedings of OOPSLA 96, 1995:268-285.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Hou, D., Hoover, H.J. Towards Specifying Constraints for Object-Oriented Frameworks. Information Systems Frontiers 4, 393–407 (2002). https://doi.org/10.1023/A:1020887726404
Issue Date:
DOI: https://doi.org/10.1023/A:1020887726404