. Since the early eighties, object-oriented frameworks have demonstrated that one can encapsulate a reusable, tailorable software architecture as a collection of collaborating, extensible object classes. Such frameworks are particularly important for the development of open systems, where not only functionality, but also architecture must be reused across a family of related applications. Unfortunately, the design of frameworks remains an art rather than a science, because of the inherent conflict between flexibility --- packaging software components that can be reused in as many contexts as possible --- and tailorability --- designing software architectures that are easy to adapt to targeted requirements. To cope with this conflict, well-designed object-oriented frameworks must provide a clean conceptual framework that clearly identifies so-called hot spots where flexibility is necessary and desirable, and specifies framework contracts that formalize in exactly what way the...
No takes yet. Share an insight, caveat, or question.
Demeyer et al. (1997) studied this question.
Synapse has enriched 5 related papers. Consider them for comparative context: