Frameworks offer a concrete realization of a product line. A framework
is an architecture, plus an implementation, plus documentation that capture
the intended use of the framework for building applications. A framework
provides a highly effective mechanism for software reuse within an
application domain. The framework captures the features that are common
across the product line. In return for relinquishing some design authority,
the developer can build a new application faster by hooking to the framework
just the code that is unique to the new application. The tutorial presents
methodologies for the development, application, and evolution of
object-oriented frameworks. Concepts and techniques behind modeling and
implementation of the commonality and variability within a domain are presented.
The framework maturity life cycle ranges from white-box frameworks, through
composition of component-based systems, to generative techniques using
domain-specific languages. We draw on our Know-It-All framework of database
systems to provide case study material.
Audience:
The tutorial is aimed at practictioners and researchers with experience in
object-oriented design, and interest in reuse and product lines.
Required experience:
The tutorial assumes the basic concepts: objects, polymorphism, delegation; and experience in object-oriented design. Knowledge of design patterns is beneficial.
Presenter's profile:
Dr Butler researches methodologies for framework evolution, and is
developing a framework for databases with applications to bioinformatics.
He has written over 50 technical papers, and has consulted on
object-oriented design, object-oriented technology, database technology,
and large-scale software architecture.