|
A systematic approach for framework development
Marcus Fontoura
Object-oriented frameworks and product line architectures have become
popular in the software industry during the 1990s. A vast number of
frameworks has been developed in the industry for various domains,
including graphical user interfaces (e.g. Java's Swing, Microsoft's
MFC), graph-based editors (HotDraw, Stingray's Objective Views),
business applications (IBM's San Francisco), electronic commerce
(Sun/IBM), network servers (Java's Jeeves), just to mention few.
A framework is a collection of several fully or partially realized
components with predefined cooperation patterns between them. A
framework implements the software architecture for a family of
applications, to be specialized by application-specific code. Hence,
some of these components, which are the variation points or hot-spots,
are designed to be replaceable. Applications built on top of a framework
not only reuse its source code but also its architecture design. This
amounts to a standardization of the application structure and implies a
significant reduction in the size and complexity of the source code that
has to be written by the programmer who adapts a framework.
This work proposes extensions to UML to enhance its ability to represent
object-oriented frameworks. The extensions represent framework variation
points and their instantiation process as first-class citizens and are
defined using the UML extensibility mechanisms: stereotypes, tagged
values, and constraints. An analysis of the extensions is presented
through case studies.
|