Appendix 2: A Primer on the Unified Modeling Language (UML)
You don’t have to look hard to realize that designing software is a lot like designing anything else. In Chapter 1, There’s a Big Ball of Mud on Your Plate of Spaghetti, we talked about the underpinning of software patterns coming from a pioneer in the field of architecture – not software architecture, but the traditions, engineering, and design practices involved in the architecture of buildings and cities. In 1977, Christopher Alexander documented a pattern language designed to form the basis for the best practices for building towns. His book described 253 patterns that were presented as the paragon of architectural design. The book broke everything down into objects.
Object-Oriented Analysis and Design (OOAD), a practice that is adjunctive to Object-Oriented Programming (OOP), involves the design of an object structure separate from the exercise of writing code. This is usually the job of a software...