Supporting the Evolution of Software
TOM Home
TOM Tasks

Download TOM
TOM Software
Bug Database
Mailing Lists

tiggr at

Short Cuts:

all of 'em
tom [an error occurred while processing this directive]
tesla [an error occurred while processing this directive]
mu [an error occurred while processing this directive]
tomgtk [an error occurred while processing this directive]

all of 'em
tom 1.1.1
tomgtk 0.11
tesla 0.91
gp 0.5
mu 1.0

GIF free NOW!

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 time.

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 different.

Up: TOM Publications
Copyright © 1997-2002 Programmers Without Deadlines