Methodological Aspects


There are at present no well-established methodologies for framework design and development and methodological issues remain an active area of research.

Framework design is hard because frameworks are complex constructs. Framework complexity has two aspects. Quantitatively, complexity stems from the sheer size of typical frameworks that may encompass hundreds of constructs - design patterns, abstract interfaces, components -  embedded in an often tangled web of interconnections and semantic relationships. Qualitatively, it arises from their high level of abstraction, itself a consequence of their attempt to model whole application domains rather than just individual applications.

In parallel to the AOCS Framework project, a project was carried out to develop a design methodology for software frameworks based on the concepts of framelets and implementation cases that address both aspects of framework complexity (see the project home page).

Frameworks are built upon a set of domain-specific abstract interfaces and design patterns. A framelet gathers together a small set of logically related design patterns and interfaces. Framelets therefore are to frameworks what subsystems are to individual applications. Just subsystems partition the space of objects and classes in an application, framelets partition the space of design patterns and abstract interfaces and just as an application is assembled by integrating its subsystems, so is a framework obtained by combining its framelets.

Implementation cases are introduced as ways to continuously monitor the adequacy of an evolving framework design. They describe an aspect of the framework instantiation process by specifying how an architectural feature for an application can be implemented using the constructs offered by the framework.  Implementation cases narrow the abstraction gap between frameworks and application by forcing designers to think about the reification of the abstractions they are creating while at the same time giving them the opportunity to test the adequacy of these abstractions. Implementation cases can also be used to specify a framework or as cookbook-style recipes to document its usage.

The proposed methodology was tested in the AOCS Framework Project.

Back to Aocs Framework Project Home


Last updated on Feb. 5-th 2002 by Alessandro Pasetti