The Concept
The highest common abstraction level among a number of similar
products or applications to be captured in terms of general
concepts and structures.
This creates a generic design that can be instantiated for
each existing product as well as for products to be developed
and marketed in the future.
Frameworks are ideally suited for capturing the commonalities
in a product family. The bulk of the functionality can be captured
in the framework, which is maintained as a single system.
Each product is an instantiation of the framework, where the
amount of unique code is proportional only the amount of specific
features in that product and not to its total complexity.
An object-oriented framework can be seen
as a class library which is built on a systematic and extensive
use of polymorphism or dynamic binding. That is easier said
than done and the established development methods offer little
support for framework design. But new method elements, such
as patterns and contracts, are beginning to appear as valuable
contributions to the evolution of OO methods.
A framework is a reusable design for
a specific category of applications, expressed as a set of cooperating
classes.
A software framework is a reusable mini-architecture
that provides the generic structure and behavior for a family
of software abstractions, along with a context of memes/metaphors
which specifies their collaboration and use within a given domain.
A framework is a set of cooperating
classes that make up a reusable design for a specific class
of software. A framework provides architectural guidance by
partitioning the design into abstract classes and defining their
responsibilities and collaborations. A developer customizes
a framework to a particular application by subclassing and composing
instances of framework classes.
|