Secure Internet Programming - menu
Secure Internet Programming
Home
Projects
People
Publications
Support
Seminar
History
FAQ
Princeton University
Department of Computer Science

sip@cs.princeton.edu

Logic Hackers Seminar: November 9, 1999

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.