Fundamental Work, a Must for Java Programmers
Clever pattern-based division of class responsibilities, filled with business component class collections, lucid but terse.
ORIGINAL DRAFT
Without question, this is an important book with a strong promise. It’s difficult to gauge effectively because absorbing the material is not straight forward. Unlike a typical book, "Java Modeling in Color with UML" is about the principles of a process and a presentation of useful insights that should help you become a better designer and software architect. Unfortunately, much of the information is implied and subject to proper interpretation of the diagrams. Without applying the ideas within, it’s not clear what the benefits are, though I can say from experience that the concepts are fundamentally useful and lead to better design processes. It’s not as easy to get there as it should have been.
This book is about patterns the authors have frequently seen in large scale project development. By distilling repeated observations into a distinction between four types of classes, the authors present a model for more effective UML modeling. Objects are expected to fall within or outside four categories and the relationships between them are explored. The four types - PartyPlaceThing, Description, Role and MomentInterval - are assigned colors to distinguish them easily in complex diagrams. Getting to know how to use these, the authors propose, can help you see class organization patterns more readily and use them in your own designs more effectively.
While the book proposes a practical theory that can easily be applied, the bulk of its content is a set of compound class diagrams that, together, form effective business components. So ubiquitous are the patterns that they will inevitably surface under scrutiny when you take a serious look at common business processes in your own environment. In fact, I suspect these could easily form the basis for a solid business framework should the time be spent refining a flexible implementation. In any case, the material is important and everyone will take something meaningful away after reading it, though its not clear to me whether any two people will interpret things in exactly the same way.
Like all strong paradigm books, this one brings fundamental ideas together into an elegant model, converging UML, Java, Patterns, experience designing large scale systems and working with people and long-term projects into a brilliant thesis. At the very least, it will force you to consider these concepts and the work you do in a new light. At best, it may flare in your mind, like a nascent star hitting critical mass and send you off evangelizing the new view. For the money, you can hardly ask for anything more important. In execution, I would have liked more explanatory material in the patterns, but I’m willing to pay that price for the benefits unfolding in these pages.