You are on page 1of 1

BOOKSHELF

tracking and control, and capturing the other various process and product metrics that these models expect. WBS clarified The original Military Standard for WBS is predictably DoD-oriented. Most corporations are unfamiliar with the DoD system life cycles and acquisition phasing (although they are both quite good). Haugan’s work is a valuable contribution to WBS development. Effective Work Breakdown Structures is a concise clarification of this concept. The illustrations are excellent. You can assimilate the entire book in an evening.
Robert C. Larrabee works for ARINC Engineering.

His interests include system and software entropy reduction, parametric effort analysis, and the beauty of abstraction. Contact him at larrabeerc@navair.navy.mil.

Paring Java Patterns
Carl Vieregger Applied Java Patterns, by Stephen Stelting and Olav Maassen, Prentice Hall, Upper Saddle River, N.J., 2002, ISBN 0-1309-3538-7, 608 pp., US$44.99. In their modern classic, Design Patterns: Elements of Reusable Object-Oriented Software, the Gang of Four authors (or the GoF—Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides) first documented the use of patterns to support object-oriented programming. Today, the book is required reading for software architects and developers. By definition, patterns are languageindependent architecture models for classes, applications, and systems. Pattern abstractions are valuable to study, but they can’t be readily applied in the same way as, say, a framework can. One book that bridges the gap between abstract patterns and practical applications is Applied Java Patterns, by Stephen Stelting and Olav Maassen. As a reference, Applied Java Pat-

terns is a solid collection of the most common design patterns. It combines those already collected by the GoF with others, notably the system patterns from Object-Oriented System Development. Stelting and Maassen follow the methodology that the GoF first used, dividing their selections into four categories: creational, behavioral, structural, and systems. They introduce each pattern in the context of a sample application, with additional information provided under headings such as Applicability, Description, Benefits, and Drawbacks. Unfortunately, the authors provide minimal new information. They create a good reference and introduction, but they don’t focus enough on how the abstractions are particularly important for a Java developer. If you already own Design Patterns, or even another introduction to patterns, you won’t need Applied Java Patterns as a reference. However, the most compelling aspect of their work is the use of a single, fully working application throughout the text. As a hands-on reader, you can follow the application’s development and run the code. Whether they needed to include the complete source as an extra appendix is debatable. All the same, the sample application distinguishes this book from others that offer a new, unrelated,

The most compelling aspect of their work is the use of a single, fully working application throughout the text.

and often nonworking example for each different pattern. If you’re going to get out of this book even half of what the authors put into it, you have to work through the example. While the book includes everything you need to improve your knowledge of design patterns, the authors don’t make it easy for you. Component by component, they put the application together, but a short introduction of the example as a whole would have been helpful. Less description about each individual pattern in general should have been replaced by more code-specific annotations, and the class diagrams should have corresponded directly to the example’s specifics, not to the general pattern description. The book’s second part is basically an extended appendix, but it is still an interesting addition to the theme of applying patterns. The authors introduce a number of Java APIs and describe how the developers at Sun have applied design patterns. In many respects, Part Two— albeit only about 50 pages of more than 600—is reason enough to buy the book. If you’re ready to dig into your JDK (Java Development Kit) and work your way through the APIs, you’ll see how experienced Java developers apply patterns to solve real-world design patterns. Applied Java Patterns is a valuable contribution to the patterns literature, not least of all because it finally provides Java examples for most of the standard pattern catalog. If you want to buy only one pattern book with both a complete reference and a working example, then Stelting and Maassen’s work is a good choice. But if you already know patterns or own a copy of Design Patterns, you might want to find a book that focuses exclusively on applied Java patterns.
Carl Vieregger is a senior consultant at IBM Business Consulting Services. He is a member of the Global SAP Centre of Expertise, based in Walldorf, Germany. Contact him at carl. vieregger@computer.org.
March/April 2003
IEEE SOFTWARE

85