Building a reusable framework is just a matter of reusing
previous experience in developing applications in a given
domain (e.g. manufacturing, graphical interfaces, etc.).
This is done by analysing previous applications in the
same domain, identifying recurrent data structures,
functionalities and relationships among common entities,
and generalizing them by selectively ignoring their
differences. Generalization is the process of formulating
general concepts by abstracting common properties of
A framework promotes software reuse as much as it
captures the stable elements of an application domain in
terms of reusable components and reusable patterns of
interactions among the components.
In order to enhance software stability, it is necessary to
insulate the homogeneous parts of a software product with
regard to the possible driving factors of changes.
Keep the distinction between commonalties and variability
Which elements of the application domain are more
Which standards are available?
What kind of evolution does the domain undergo?
Sun Microsystems (2000) Writing Enterprise Applications with Java 2 SDK
Enterprise Edition , http://java.sun.com/j2ee/white/j2ee.pdf.
Thai, Thuan and Lam, Hoang (2001) .NET Framework Essentials , O'Reilly.
Vinoski, S. (1997) “CORBA: Integrating Diverse Applications within Distributed
Heterogeneous Environments”, IEEE Communications Magazine , Vol. 14, No. 2,