Chapter 5

Historical Notes

The subject of this book has occupied me from my first encounter with design patterns in the summer of 1994.1 My experience as a professional software designer led me to recognize almost immediately that design patterns stand to become an important step in the advancement of software design.2 Given their prominence in the literature on software design, I've chosen the problems of modelling design patterns and of providing tools supporting their implementation as the subject of my Ph.D. research.

At the time I knew of some formal languages, of logic languages, and of commercial object notations. So I expected to find that at least one of these languages offers mechanisms for representing patterns by means that are at once as well-defined as logic sentences and intuitive—preferably visual—not unlike the Object Modelling Technique [Rumbaugh et al. 1990] and the other modelling languages that were popular at the time. I was wrong. So I started with doodling little pictures with triangles for class hierarchies and ellipses for methods. That turned into the first version of LePUS, which became the subject of the second part of my Ph.D. dissertation [Eden 2000].

Through the years that followed I've learned of the many shortcomings of LePUS. It is unsuitable for modelling programs, only design patterns, which led to the distinction between constants and variables. The definitions of the language's constructs in higher order logic (HOL) were at once too much and ...

Get Codecharts: Roadmaps and blueprints for object-oriented programs now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.