This book is another title in the growing field of software design books. The stated purpose of the book is to enable software architects to become more efficient in directing the course of large-scale projects. This is achieved by providing advice on which UML diagram should be used in which part of the project. One thing I noticed straight away was the comprehensive recommended reading section at the end of each chapter.
The book starts by defining software architecture and the role of a software architect. The next chapter details the role of a software architect in more detail and explains how this role may sit within a large management structure. A chapter on software architecture and the development process follows. These first three chapters offer a useful primer on the role of a software architect.
The book then moves onto using the UML to describe various aspects of a project. Each project phase of a project is split into a number of viewpoints. Each viewpoint employs a part of the UML to illustrate both software architecture and interactions within a project. Each view is detailed in a separate chapter and provides a detailed description of how the authors have used the UML to model distinct parts of a project cycle. A banking system is used to illustrate each phase of the project and corresponding viewpoint.
An initial chapter describes which UML diagrams are to be used and how the authors have developed them, to improve the clarity, by augmenting the diagrams with tabular data and some minor customisations of each diagram.
Different stages of the project then employ a model view to describe various aspects of the design. For example, component instance, state chart and activity diagrams are used in the section on component modelling.
This is a welcome addition to the growing literature on software design and the UML. It takes the UML, adapts it slightly and offers the reader the benefit of the authors' experience. This book will not teach you UML, but it will show you how effective it can be in planning a project. Recommended if you need to use the UML for a large project and are unsure of how to employ it to full effect.