Ph.D. thesis by Pieter Schoenmakers,
available in various formats.
Modern design methods are based on object-oriented analysis, which amounts
to the classification and specification of objects and their interaction.
A subsequent implementation in an object-oriented programming language
encompasses the description of classes of objects. An important aspect of
these classes is their suitability for being reused, since something that
is reused does not need to be designed, implemented, and tested a second
Modern design systems and programming languages provide reuse
mechanisms like subclassing and wrapping. Unfortunately, using these
mechanisms, the choice of reusing a class is a binary one: the class is
suitable for reuse or not, in which case a new class must be designed
instead. Even minor imperfections and shortcomings imply a redesign
instead of the desired reuse.
This dissertation discusses the validity of this observation and
concludes that the usual approach to solving this problem, which
concentrates on the development of classes, does not aid in solving the
problem. The result of such an approach remains reuse following a model
of revolution: either all is fine, or everything must be different.
The lion's share of this dissertation discusses the design,
implementation, and use of the object-oriented programming language TOM.
In TOM, to reuse a class is not a binary choice: a class can be adjusted
to make it suitable for specific situations, even without availability of
its source code. This way TOM supports the evolution of classes that
adapt to the circumstances of reuse: either all is fine, or slightly
Up: TOM Publications