Dirk Riehle: Framework Design: A Role Modeling Approach (Dissertation Nr. 13509, ETH Zürich, 2000)
1. Referent: Prof. Dr. Thomas R. Gross, ETH Zürich
2. Referent: Prof. Dr. Douglas C. Schmidt, University of Washington at St. Louis
Datum der Prüfung: 26. Januar 2000
Zusammenfassung: Role modeling for framework design, as developed in this dissertation, makes designing, learning, and using object- oriented frameworks easier than possible with traditional class-based approaches.
Object-oriented frameworks promise higher productivity and shorter time-to-market for the development of object-
oriented applications. These goals are achieved through design and code reuse. While many projects show that these
promises can be met, failed projects also show that they are not always easy to reach. This dissertation addresses three
pertinent technical problems of designing, learning, and using
oriented frameworks: complexity of classes, com- plexity of object collaboration, and lack of clarity of requirements put upon use-clients of a framework. Role modeling for framework design is an evolutionary extension of class-based modeling of frameworks. The method enhances class-based modeling with role modeling concepts. In this method, objects play roles that are described by role types. An object typically plays several roles, so that the class of an object composes several role types. Moreover, ob- jects collaborate for several different purposes, each of which is called an object collaboration task. Such a task is de- scribed by a role model. A class model composes all relevant role models to describe how instances of its classes col- laborate. Describing classes as compositions of role types and class models as compositions of role models reduces class and object collaboration complexity.
Going one step further, role modeling for framework design defines frameworks as explicit design and implementation artifacts with well-defined boundaries. A framework defines how to use it with the help of so-called free role types of free role models. A free role model provides free role types for roles that clients of a framework have to play to make proper use of the framework. Free role types are key to defining the requirements put upon use-clients of a framework. Only by acting according to free role types from a free role model may use-clients make use of framework objects. The dissertation shows how these concepts are used to design, use, and layer object-oriented frameworks.
Role modeling for framework design represents a significant improvement over current practice regarding the initially stated problems of framework design. This thesis is validated with the help of three case studies that show how role modeling for framework design works in practice. Each of the case studies compares a traditional class-based frame- work design with a framework design based on role modeling. However, each case study does so from a different angle. The first case study on the Geo Object framework compares a traditional design with an enhanced role modeling design. The second case study on the KMU Desktop Tools framework shows how role modeling helps in the redesign of an ex- isting framework and how the redesigned version compares to the old version. The third case study on the JHotDraw framework for drawing editors shows how an existing well-designed framework design can be described even better using role modeling. Finally, all three case studies reflect on the experiences made while carrying them out.
For its validation, the thesis is split up into nine sub-theses, each of which has a problem and an activity dimension. The addressed problems are class complexity, object collaboration complexity, and lack of clarity of requirements put upon use-clients. The activities are designing and redesigning a framework, learning a framework, and using a framework. For each problem/activity pair an argument is made based on the case studies. The overall validation of the thesis becomes the validation of all nine problem/activity pairs.
Role modeling for framework design combines the strengths of role modeling with those of class-based modeling while
leaving out their weaknesses. It is therefore an evolutionary extension of current methods that preserves existing invest-
ments. Finally, role modeling for framework design is the first comprehensive method to make frameworks explicit de-
sign artifacts and to introduce modeling concepts for directly expressing their unique properties.
Verfügbar vom ETH Dissertationsserver:
oder über Dirk Riehle's Homepage: