Abstract:
|
Object-oriented design is usually driven by three main reusability
principles: step-by-step design, design for reuse and design with reuse.
However, these principles tend to be just partially applied to the
subsequent object-oriented implementation, often because they conflict
with other quality criteria (remarkably, efficiency). So, there is a gap
between design and implementation: due to these conflicts developers use
to give up design level abstractions during the implementation. In this
paper we present a framework for bridging this gap for a concrete
domain, the design and implementation of object-oriented container-like
component libraries, such as JCF, STL, Booch Components, LEDA, etc. At
the core of the framework we propose a new design pattern called
emph{Shortcut} together with its corresponding implementation. The
Shortcut pattern, introduced in a generic base class container, provides
a secure and efficient access to items in a container decoupled from the
implementation details of concrete containers. Shortcut enhances
applying the same principles that drive the design process to the
implementation process of these libraries: step-by-step implementation,
implementation with reuse and implementation for reuse without
penalising other quality criteria. Our framework not only supports the
design and implementation of new libraries but also the reengineering of
existing ones to overcome some of their drawbacks. We show by a case
study, reengineering the Booch Components in Ada95, the application and
benefits of our framework. |