A cookbook for using the model-view controller user interface paradigm in Smalltalk-80
Journal of Object-Oriented Programming
Contracts: specifying behavioral compositions in object-oriented systems
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
Documenting frameworks using patterns
OOPSLA '92 conference proceedings on Object-oriented programming systems, languages, and applications
Ensuring semantic integrity of reusable objects (panel)
OOPSLA '92 conference proceedings on Object-oriented programming systems, languages, and applications
Issues in the design and specification of class libraries
OOPSLA '92 conference proceedings on Object-oriented programming systems, languages, and applications
Typing the specialization interface
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Design patterns for object-oriented software development
Design patterns for object-oriented software development
A behavioral notion of subtyping
ACM Transactions on Programming Languages and Systems (TOPLAS)
Modular reasoning in the presence of subclassing
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
Object-oriented software composition
Object-oriented software composition
MFC internals: inside the Microsoft foundation class architecture
MFC internals: inside the Microsoft foundation class architecture
Reuse contracts: managing the evolution of reusable assets
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Hooking into object-oriented application frameworks
ICSE '97 Proceedings of the 19th international conference on Software engineering
Components, frameworks, patterns
Proceedings of the 1997 symposium on Software reusability
Object-oriented application frameworks
Communications of the ACM
Object-oriented framework-based software development: problems and experiences
ACM Computing Surveys (CSUR)
Towards agent-oriented assistance for framework instantiation
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Computer
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
Hi-index | 0.00 |
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.