This book cuts straight to the point. It explains UML and UP without going overboard on the detail. Then, it goes on to explain how to use both to develop quality software efficiently. It is refreshing to find a book that doesn't waffle on about peripheral issues, or the authors petty gripes about what should or shouldn't be. It is not for novices however, but if you have had some exposure OO analysis and design, it is very easy to follow. I would also suggest having a UML tool available as you go through the book, just to experiment with and get a feel for how things fit together - try Poseiden's UML tool, which has a free version with a good example model and concise user guide.
UML and the Unified Process are related techniques for designing and developing Object Oriented software systems. They have common origins and strong areas of overlap, and so it's natural to use them together; indeed for many, proficiency in UML is a prerequisite to becoming an "UP practitioner". This book presents UML within the structure of the Unified Process. It's clearly written and well laid out, with signposts to help the novice orient themselves, and to help the expert skip introductory text and find what they're looking for. The Unified Process (UP) described is the 'classic' (non-proprietary) version, however there is a good, concise summary of how this differs from the Rational Unified Process (the most widely-used proprietary version). The book concentrates on UP's Analysis, Design and Implementation workflows. Business Modelling isn't really mentioned, and the authors explicitly say that they do not address the Testing activity. I feel there's a strong connection between Use Cases and Acceptance Test cases, but do realise that the authors had to draw a boundary somewhere! Nevertheless I dislike their explanation of fig 2.7 that "In Transition [phase] the emphasis is on implementation and test". 'Emphasis' perhaps, but continual verification of quality in EVERY iteration is one of the foundation "best practices" of UP, so readers should not leave their testing and integration to final phase! The presentation of UML notation is very clear, with a good selection of annotated diagrams and examples. As with UP, the authors stick to 'non-proprietary' UML and give warnings where CASE tool support might be restricted or non-standard. I couldn't find mention of specific UML CASE tool constraints (e.g. Rational ROSE); given the rapid evolution of those tools that's understandable, but it does mean the reader will encounter features on, say, ROSE diagrams which don't look quite like those in the book. The book does show the mapping of certain UML object features to Java, C# and C++ language features. Throughout the book, the authors tell us WHAT to do when writing UML, and also explain WHY UML is designed that way, with useful tips on best practice and common pitfalls. I'd recommend this book to any UP/UML novice. Because we only see the parts of UP that are directly relevant to UML, a good companion book (to fill in the UP gaps) would be Kruchten's "The Rational Unified Process - An Introduction - Second Edition". Practitioners who are already proficient in UML and UP might also find "UML and the UP" useful - because they still have to present their models to non-experts, and the book contains some excellent explanations which can be useful in such presentations.