UML Book Reviews

Ted Larman's book, Applying UML and Patterns, started a flood of good books on UML, Java and Object Oriented deign. Jacquie Barkers's good Java overview, Java Objects followed and then a whole deluge. Yet Larman's book is not just a survey and analysis of UML as applied to patterns but rather an overview of object design and project development in general.In fact this book, introduces OOAD-Object Oriented Analysis and Design as part and parcel of good project management.

For example, readers are introduced to agile and iterative development practices as some of the compelling reasons for OO design. Then readers are carried through a project using the Unified Process (obviously followng Rational's Process but adapted and watch as UML, OO Design and Patterns are used iteratively to arrive at better approximations to the evolving system design. What is really fascinating here is how flexible the design process can be to changing requirements. This is the bain of development - the need to respond to changing requirements yet the need to guarantee that the design is iterating towards a solution - not just cycling or spiraling out of control. Larman has some but not a definitive set of controls against such jeopardy. However the book is rich in examples of how to turn domain models and use case analysis into the fore-runners of design Then there are a variety of patterns available for assigning the resulting roles, requirements and responsibilities into design sets. It is this process and the iterative testing behind it that is at the core of Larman's book. Its sort of like a mathematical proof - QED that which is required is demonstrated. Well organized, good read.

It is amusing that Robert C. Martins book, Agile Software Development is nearly the exact reverse of Larmans. In name , Martins book is about adaptive methods and agile development projects and processes. And in the first part of the book Martin does provide a good overview of agile methods and Extremem programming - and how to use test driven design (but here Martin departs emphatically from many Extremists who have no time for using anything other than code to test a design). In contrast, Martin looks at patterns, design templates even simple simulations to inform the developing design and project. And voila - there you have it - 500 pages later informed by some amazing java and C++ coding examples you discover that you have been exposed to patterns, UML, and design principles under the guise of a exposing a project methodology. The reverse of Larman who develops and elaborates a project methodology while supposedly laying out the goods on desgn methods.

But of course the two are interelated - design and project process are intimately intertwined. As Martin points out - the design is contingent on the characteristics of the project which in turn determine the nature of the process which both in turn constrain and shape the design options. What Martin does is spell out in simple to complex case after case how requirements, principles, and tested design patterns interact to voila produce a fairly narrow set of designs to choose from. And time and again you say to yourself - isn't that right.

So both of these books areabout UML, but UML use cases, class diagramming etc as part of a larger design process and project management approach. readers will find the two authors disagreeing on the importance of certains tools and methods but essentially agreeing on the over all project design process.

 Top of Page  Open Sourcery Home Tips and Tutorials  
©Imagenation 2001-2003