Home - About » Computer Science - Research - Dissertation
Computer Science
Research, Industry Work,
Community Service
Hillside Group, CHOOSE,
Stanford GSA
The Serious Side
Business School,
Learning Chinese
Humorous Takes
Switzerland, United States,
Software, Fun Photos
Travel Stories
Europe, United States, Asia
Living Places
Berlin (+ Gallery), Zürich
Boston, S.F. + Bay Area

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 object-oriented frameworks: complexity of classes, complexity 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, objects collaborate for several different purposes, each of which is called an object collaboration task. Such a task is described by a role model. A class model composes all relevant role models to describe how instances of its classes collaborate. 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 framework 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 existing 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 investments. Finally, role modeling for framework design is the first comprehensive method to make frameworks explicit design artifacts and to introduce modeling concepts for directly expressing their unique properties.

Copyright (©) 2007 Dirk Riehle. Some rights reserved. (Creative Commons License BY-NC-SA.) Original Web Location: http://www.riehle.org