1, some definitions:
- A framework is a reusable design of all or part of a system that is represented by a set of abstract classes and the way their instance interact.
- A framework is a skeleton of an application that can be customized by an application developer.
2, how frameworks compare to other oo reuse techinques? (Component, class libraries, patterns)
- Vs. component: framework are generally consisted of more components, are more customizable and more complex interface than components.
- Vs. class libraries: framework provide reuse at a high level of isolation.
- Vs. patterns: patterns are more abstract than frameworks.
3, problems:
- Design, reusing and combination of framework are hard.
- A framework becomes a large and tightly coupled collection of classes that breaks sound moduliarization principles and is difficult to combine with other similar frameworks;
4, Framelet: are small frameworks which have a clearly defined simple interface, do not assume main control of an application and are easier manage, understand and specialize. it might be a pragmatic compromise between design patterns and application frameworks.
5, history:
- The first widely used one, write in Simula in the 1960's.
- Smalltalk, MVC
- MacApp
- Et ++
- CommonPoint, HotDraw, ACE, JAWS, MFC, OWL,
- COM/DCOM, CORBA, EJB/RMI,. NET
- Frameworks in Java:
6. Classifications:
- By Johnson and Foote [1, 1988]: Whitebox framework and Blackbox framework.
- Fayad, SChmidt and Johnson [1999]: Graybox framework, grassbox framework
- Application framework (GUI, database etc), domain framework (banking, insurance? Etc )? And support frameworks (utilities: distribute computing, file access? Etc ).
- Fayad and Schmidt [1997]: javasgem infrastructure framework, middleware integragtion frameworks and enterprise applecation frameworks.
A, Extensibility, whitebox, blackbox, graybox, glassbox
B, Scope, system infrastucture, middleware integration, domain, enterprise and business collaboration frameworks
C, Approach: Object oriented, component oriented, service oriented and aspect oriented