Towards Specifying Constraints for Object-Oriented Frameworks

  • Authors:
  • Daqing Hou;H. James Hoover

  • Affiliations:
  • Department of Computing Science, 221 Athabasca Hall, University of Alberta, Edmonton, Alberta, Canada T6G 2E8. daqing@cs.ualberta.ca;Department of Computing Science, 221 Athabasca Hall, University of Alberta, Edmonton, Alberta, Canada T6G 2E8. hoover@cs.ualberta.ca

  • Venue:
  • Information Systems Frontiers
  • Year:
  • 2002
  • Practical framework constraints

    Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering

Quantified Score

Hi-index 0.00

Visualization

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.