Guide to the Reader
Let us clarify the charter and intended audience of this book.
This book shows using the language of Codecharts, called LePUS3, to capture and convey structural and organizational aspects of object-oriented programs at any level of abstraction. LePUS3 is a visual, formal design description language for representing (automatically verifiable) statements about programs encoded in languages such as Java, C++, C#, Smalltalk, Eiffel, Ada 95, CLOS, and Ruby. In particular, Codecharts are tailored to deliver roadmaps to large object-oriented programs, libraries, and frameworks as well as blueprints that articulate in precise terms nonfunctional specifications and design decisions such as design patterns. Codecharts are therefore committed to the building blocks of object-oriented design, which are, in essence, inheritance class hierarchies, sets of dynamically bound methods, and correlations amongst them. In addition, the language of Codecharts was tailored to meet a stringent set of guiding principles (described in Chapter 3), such as abstraction, scalability, rigor, and automated verifiability, while placing an emphasis on elegance and minimality.
The first part of this book demonstrates in detail how Codecharts can be used for documenting a program's structure and organization, for representing the properties of various components and how they relate to each other, and for representing design decisions of programs that are yet to be implemented, including ...