Popular software modelling notations visualize implementation minutia but fail to scale, to capture design abstractions, and to deliver effective tool support. Tailored to overcome these limitations, Codecharts can elegantly model roadmaps and blueprints for Java, C++, and C# programs of any size clearly, precisely, and at any level of abstraction. More practically, significant productivity gains for programmers using tools supporting Codecharts have been demonstrated in controlled experiments.
This book includes two main parts:
- Practice (Part I) offers experienced programmers, software designers and software engineering students practical tools for representing and communicating object-oriented design. It demonstrates how to model programs, patterns, libraries, and frameworks using examples from JDK, Java 3D, JUnit, JDOM, Enterprise JavaBeans, and the Composite, Iterator, Factory Method, Abstract Factory and the Proxy design patterns.
- Theory (Part II) offers a mathematical foundation for Codecharts to graduate students and researchers studying software design, modelling, specification and verification. We define a formal semantics and a satisfies relation for design verification, and use them to reason about the relations between patterns and programs (e.g., “ java.awt implements Composite” and “FactoryMethod is an abstraction of Iterator“).