This chapter focuses on the framework development and adaptation process and presents a number of methodological concepts that are intended to assist in the design, development, and adaptation of frameworks. One objective of the chapter is to show that, although they can certainly benefit from the use of traditional concepts, frameworks have new needs that require the introduction of new methodological tools and concepts.
The chapter starts with the presentation of the cluster cycle process model (Meyer, 1990) which captures the overall flavor of framework development. Based on that model, the following steps are envisaged in developing a framework in a more systematic and efficient way:
identification of the domain area's key abstractions
definition of the flexibility requirements (variation points)
definition of the framework design
refinement of the design and its transformation into an architecture
adaptation of the framework.
The chapter then proceeds to review the concepts of class families and class teams. Although proposed almost a decade ago, we will argue that they anticipate and cover many of the needs of a framework-based development process. The argument will be illustrated with a case study from a real-life framework (designed by the authors for the European Space Agency) to model spacecraft control systems. The case study will also serve to introduce two innovative concepts framelets and implementation cases which were devised to aid the design and development of frameworks, and which complement and extend the concepts of class families and class teams. Implementation cases form the basis of what we call eXtreme design (XD).
Finally, the chapter considers the framework adaptation problem and in particular it focuses on adaptation cases and adaptation reports. Adaptation cases are an aid to the actual process of creating an individual application from a framework. Adaptation reports are a means of formalizing the experience gained from the development of individual applications and make it available to all projects using the same framework. Both augment framework cookbooks which describe the mature, standard adaptations of a framework.
Note that the presentation of the process, along with the various hints and methodological guidelines, does not take organizational and management aspects (such as team structures and incentive models) into account. These aspects are at least as important as the techniques presented in this chapter for a successful framework project. Goldberg and Rubin (1995) discuss these issues in an excellent manner by providing a project management framework instead of one-size-fits-all recommendations. They identify the various project parameters that influence the organization and management of a framework project.