What does the creator of a dissertation aspire to? To fulfill
academic requirements for a Ph.D., for sure, but this is not the
only goal. Maybe, some want to prepare for an academic career,
and some want to impress their peers or their parents. My aspiration
is to present a dissertation that does not only make a small but
significant contribution to scientific progress, but that also
provides significant help to the practicing software developer.
This dissertation addresses crucial technical problems of object-oriented
framework design, a sub-discipline of software development whose
importance has been increasing steadily over the last 10 years.
Object-oriented software development in general, and framework-based
development in particular, is gaining mass-market momentum because
of Java, the emerging COBOL of the early next century (for better
UBS AG, a former employer of mine, has set up an aggressive
training program for its more than thousand developers to learn
Java. Naturally, these developers will work with Sun's JDK, a
large object-oriented class library parts of which are best described
as a set of frameworks. Some of these developers will face problems
of designing frameworks, and all of them will face problems of
learning and using frameworks. Three of these pertinent problems
are addressed in this dissertation. I hope that the concepts from
my dissertation will ease the lives of my former and current colleagues.
For some it already has, as one of the case studies in this dissertation
Originally, I had thought of my intended dissertation work
as a kind of ordeal. Judging from what successful colleagues had
told me, finding a worthwhile Ph.D. thesis, writing a dissertation,
and persisting in all trials is like descending to hell, being
eaten alive, and returning to the surface while trying to maintain
a normal life. Nothing of this has happened to me (including the
normal life). I managed to nail down the thesis proposal in 1997,
continue with my research and its consolidation in 1998, and finish
writing up the dissertation in 1999. One reason for this is that
I could build on my earlier research work dating back to 1994,
even though originally I had not intended to do so.
However, the most important reason for succeeding is the guidance
and support I received from my advisor, Thomas Gross. I have learned
immensely from him. He taught me how to find direction in Ph.D.
thesis work, drill down to the essentials, and make a dissertation
out of it. I am highly grateful to him for making my Ph.D. thesis
work such a smooth and rewarding experience.
Also, of importance to this work is the supportive environment
I found at Ubilab, the IT research laboratory of UBS AG, where
I worked until the end of March 1999. I appreciate my colleague's
interest in my work and their morale support, for which I would
like to thank them very much. In particular, the creative atmosphere
in the Software Engineering group, originally with Kai-Uwe Mätzel,
and later with Erica Dubach and Hans Wegener supported my ascent
to prevail on top of this dissertation. I wish to thank them all.
I have collaborated with many people over the last years, and
in one way or another, they have influenced my thinking. Of particular
importance to me are the discussions I had with Dirk Bäumer,
Daniel Megert, and Wolf Siberski. I would like to thank them very
much. In a similar vein, I would like to thank Walter Bischofberger,
Gregory Hutchinson, Birgit Rieder, Bruno Schäffer, and Heinz
The dissertation went through a number of releases ("I
released early, I released often"). Ralph Johnson commented
on the OOPSLA 1998 release, Dirk Bäumer commented on the
Christmas 1998 release, nobody commented on the February 1999
release, and Wolf Siberski commented on the May 1999 release.
Moira Norrie and Douglas Schmidt commented on the final release
through the feedback I got at my doctoral examination. Thomas
Gross commented on all of the releases. I am indebted to all of
them for their insightful comments that helped me improve this
Zurich, Switzerland. June 1999.
Mannheim, Germany, February 2000.