Skip to main content
Log in

Towards Specifying Constraints for Object-Oriented Frameworks

  • Published:
Information Systems Frontiers Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • Ortigosa A, Campo M, Moriyon R. Towards agent-oriented assistance for framework instantiation. In: Proceedings of OOPSLA 2000, Minneapolis, MN, USA, 2000.

    Google Scholar 

  • Pree W. Design Patterns for Object-Oriented SoftwareDevelopment. Reading, MA: Addison Wesley, 1995.

    Google Scholar 

  • 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.

    Google Scholar 

  • Stacy W, Helm R, Kaiser GE, Meyer B. Panel: Ensuring semantic integrity of reusable objects. In: Proceedings of OOPSLA 92, Vancouver, Canada, 1992.

    Google Scholar 

  • 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.

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Daqing Hou.

Rights and permissions

Reprints 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

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1020887726404

Navigation