Motivation

OO is a rapidly evolving field. As a consequence my book, published in 1994, may have been considered to be outdated from the start. As an example, right after its publication, patterns came into the focus of public interest. As another example, think of the Java wave that has come over us. Clearly, a revised edition is needed in which those subjects, and other subjects, are covered, or, as in the case of CORBA, are covered in more detail.

Another reason is that the field of OO itself has matured considerably. The acceptance of UML as a modeling standard is one example. The increased utilization of CORBA for business-critical applications is another sign that (distributed) object technology is being considered as sufficiently robust.

The availability of new topics in itself is not enough to justify a 2nd edition, since new books have been published in which these topics are covered. Think only of the enormous number of books on Java... A revised 2nd edition of the book is justified though, in my opinion, since the book distinguishes itself from the competition by its approach. Set up as a series of lectures, organized around so-called slides, the book covers a large number of topics, some in depth, some more casually. From an educational point of view, the advantage of this approach is the direct availability of educational material, including the slides to be presented in classroom. For the average reader, moreover, the slides provide an overview which facilitates comprehension and recall.

For the first edition, I have already made an experimental online version, in which the slides are available electronically in such a way that they can be deployed in a classroom with a beamer. (For those who read the online version, click on the caption of a slide to enter presentation mode. See also the section in which I discuss the Online version.) As I will indicate below, when discussing the conents of the book, the new topics fit well within this approach. Without the new topics, however, the book must be considered as outdated, and will hence disappear.

Finally, another more personal reason for bringing out a revised edition is that both in research and teaching my experience with OO became more extensive, and I may even dare say that my own thoughts about OO have matured to some extent. In particular, in my group we have developed a multi-paradigm OO framework, which was already introduced in ch. 12 of my book, that has been applied in for example business process reengineering and collective improvisation on the Web. Although I do not plan to treat any of this material extensively, it does provide a basis for the examples and, moreover, the material (including articles, software and examples) will be available on the accompanying CDROM.