A framework is a _set of classes that embodies an abstract design for solutions to a family of related problems_ (RalphJohnson and B. Foote, Journal of Object-Oriented Programming 1(2), 1988). You can specialize and/or instantiate these classes to implement an application or subsystem. Typical issues: * Frameworks adopt an _inverse control flow_, sometimes called the _Holywood Principle_ (don't call us, we'll call you): in contrast with a library, the methods you define to use the framework get called by the framework (for example through call backs or inheritance). * Design patterns can be used to document the structure of frameworks -- for example IBM's San Francisco relies on the ModelViewControler pattern. * The interface between the framework and the application-specific parts built on top of it is realized as a set of extension points, or _hot spots_. ---- Resources * The frameworks homepage at http://www.ipd.hk-r.se/michaelm/fwpages/frameworks.html * The OOPSLA conferences * The series of three books edited by Mohammed Fayad -- see http://www.cse.unl.edu/~fayad/ published by Addison Wesley. * The Framework Editor Fred from the University of Helsinki, http://practise.cs.tut.fi/fred/ ---- A well known industrial framework is IBM's San Francisco * see http://www-4.ibm.com/software/ad/sanfrancisco/library/ * and http://www-4.ibm.com/software/ad/sanfrancisco/library/concepts.html for an introduction. ---- The relationship between frameworks and DomainSpecificLanguages is explored in: * DonRoberts and RalphJohnson. Evolve frameworks into domain-specific languages. In 3rd International Conference on Pattern Languages, Allerton Park, Ill., September 1996. -- see http://citeseer.nj.nec.com/47194.html, http://citeseer.nj.nec.com/roberts96evolving.html * ArieVanDeursen. Domain-Specific Languages versus Object-Oriented Frameworks: A Financial Engineering Case Study. In Proceedings Smalltalk and Java in Industry and Academia, pages 35-39. Ilmenau Technical University, 1997. Both are discussed in the DSLAnnotatedBibliography as well. ---- CategoryArchitecture | Contributions by ArieVanDeursen