UML Distilled: A Brief Guide to the Standard Object Modeling Language, Third Edition
by Martin Fowler
Unified Modeling Language User Guide, The, Second Edition
by Grady Booch; James Rumbaugh; Ivar Jacobson
Refactoring: Improving the Design of Existing Code
by Martin Fowler; Kent Beck; John Brant; William Opdyke; Don Roberts
Applying Use Case Driven Object Modeling with UML: An Annotated e-Commerce Example
by Doug Rosenberg; Kendall Scott
UML Distilled: A Brief Guide to the Standard Object Modeling Language, Third Edition
by Martin Fowler
Learning UML 2.0
by Russell Miles; Kim Hamilton
UML 2.0 in a Nutshell, 1st Edition
by Dan Pilone; Neil Pitman
Service- and Component-based Development: Using Select Perspective™ and UML
by Hedley Apperly; Ralph Hofman; Steve Latchem; Barry Maybank; Barry McGibbon; David Piper; Chris Simons
“This edition contains Larman’s usual accurate and
thoughtful writing. It is a very good book made even
better.”
—Alistair Cockburn, author, Writing Effective Use
Cases and Surviving OO Projects
“Too few people have a knack for explaining things. Fewer
still have a handle on software analysis and design. Craig Larman
has both.”
—John Vlissides, author, Design Patterns and
Pattern Hatching
“People often ask me which is the best book to introduce
them to the world of OO design. Ever since I came across it
Applying UML and Patterns has been my unreserved
choice.”
—Martin Fowler, author, UML Distilled and
Refactoring
“This book makes learning UML enjoyable and pragmatic by
incrementally introducing it as an intuitive language for
specifying the artifacts of object analysis and design. It is a
well written introduction to UML and object methods by an expert
practitioner.”
—Cris Kobryn, Chair of the UML Revision Task Force and
UML 2.0 Working Group
A brand new edition of the world’s most admired introduction to object-oriented analysis and design with UML
Fully updated for UML 2 and the latest iterative/agile practices
Includes an all-new case study illustrating many of the book’s key points
A stronger focus on helping you master OOA/D through case studies that demonstrate key OO principles and patterns, while also applying the UML
New coverage of UML 2, Agile Modeling, Test-Driven Development, and refactoring
Many new tips on combining iterative and evolutionary development with OOA/D
Updates for easier study, including new learning aids and graphics
New college educator teaching resources
Guidance on applying the UP in a light, agile spirit, complementary with other iterative methods such as XP and Scrum
Techniques for applying the UML to documenting architectures
A new chapter on evolutionary requirements, and much more
Average Amazon.com® Rating: ![]()
![]()
![]()
![]()
Based on 120 Ratings
A Legendary title - A must read for any OO Software Developer - 2009-01-22
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
Coming from a backgroud of legacy application development using procedural languages for about 6 years, I did quite a bit of research on what is the right way to get baptised in the OO world. I have read some OO language books (C# in particular). Those books seem to scratch the surface and just talk about WHAT is it and left me wanting for more details and more example oriented material when it comes to WHY and HOW to do it in the OO way. Then I came accross this book. After reading half way through it, I can fairly say that this is mother of all the books that I have read in my journey to learn the OOA/D concepts. I wish I had known about it much earlier.
The book starts from a forest view of OO software development, stresses on the role a UML should and should not play in your OOA/D, the Agile methodologies and iterative development and then slowly progresses into the finer details of GRASP patterns for OOA/D which are fundamental to any OO design and development.
I'm in no way implying that this book is for beginners getting to know the OOA/D, this book is applicable to both Novice and Experience developers alike without stressing on a specific technology.
I have heard of some books by Martin Fowler and the GoF. However, in my opinion the OO Design Patterns and Architecural ideas should be a logical next step after grasping the basic OOA/D principles.
ALL in ALL it is a legendary title and shall be there on my shelf for ever.
Great introduction to OOAD, Iterative Development, and Unified Process - 2009-03-24
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
Let me say to begin that I am a graduate student in computer engineering, without a strong OO background. Sure I knew inheritance, polymorphism, and even some UML. But how do you really use them in practice? I have been eager to learn what this OOAD is all about, and anyway it's a valuable skill to possess.
Now where to begin learning OOAD? As I scratched the surface I encountered such oft-cited works as Design Patterns by the "Gang of Four", Booch's Object-Oriented Analysis and Design with Applications, and Object-Oriented Modeling and Design by Rumbaugh et al. Obviously many books attempt to explain the OO paradigm. Specifically I want one that is: 1.) interesting, 2.) informed, and 3.) insightful.
That's why I'm glad I chose this book. It's unmistakably for serious readers, and not as easily accessible or "witty" as a few others. On the other hand, if you want to encounter *many* useful concepts and suggestions from an authoritative source, then I can't imagine a better choice than Applying UML and Patterns. I've read it cover-to-cover once, and have already begun referring back to it for my own purposes.
Sometimes it's useful to understand the author's perspective, to know if you will learn anything useful from their books. Craig Larman is obviously a proponent of agile risk-driven software development, OOAD, and using the UML sparsely as a communicative tool ("sketching" vs. "blueprinting").
Larman makes a very strong case for his perspective, too. After all, everyone knows requirements evolve and change over time, as does design. So why not adopt a process that accomodates this? Similarly, the UML is potentially a complicated language, but why get caught up on notation? The point is to communicate something of value, especially during design, when collaborative decisions must be made - leave the rest to CASE tools. Don't be scared of the Unified Process either, as it provides a great context in which to discuss business processes and risk-driven software development, even if you never explicitly use it.
By the time you finish this book you will: have a good overview of iterative and agile software development, know aspects of the unified process, know the basics of the OO paradigm, know how to assign responsibilities to objects, have been exposed to the most common design patterns, have encountered a few analysis patterns, and have a wealth of tips and suggestions to draw from in your own work.
All of this is presented in the context of a case study on a fictional point-of-sale system. The book slightly favors Java in its examples, but as these are fairly sparse and generally brief, it should be easy enough to follow for those familiar with C++ or C#. The author tries to note whenever choice of language has a significant impact.
Even at nearly 40 chapters, I wish the book were longer, as Larman's writing style is coherent and enjoyable. You'll likely find yourself wanting to know more about software architecture or the details of certain patterns, and luckily the book is full of citations and suggested reading material.
It's a great place to start for students and professionals, anyone who wants to pick up OOAD. If you only want a reference on patterns, then this is probably not the book for you. It doesn't go into great detail about the more complex patterns. Therefor it's recommended that you own some of the classic patterns literature. Likewise if you primarily need a reference on UML, I'd recommend Martin Fowler's excellent UML Distilled. Again, the bibliography of Applying UML and Patterns is an abundant source of related works, for those digging a bit deeper.
A straight forward introduction to OOAD and UML - 2009-02-07
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
Whether you are looking for understanding the concepts of OOAD or simply understanding what UML can provide to your software designs, this book is an excellent option. Goods practical explanations and a bunch of easy-to-understand examples.
Good Book - 2009-09-24
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
I've not read too far in to this book yet. It is technically a graduate level text book (for myself). But this is the best book I've found on OOA/D thus far. I'm enjoying it.
Finally! Someone who can explain this AND write. - 2009-07-13
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
I've been trying to find a competent writer on this subject for years. Everyone seems to want to make this harder than it is (although it's not all that simple). Larman does a fabulous job of making sense to someone who is familiar with the idea, but not the implementation.
Anyone wanting to get some background on UML and OOAD should *definitely* get this book. Worth every penny. Actually comes in hardback, too.
Top Level Categories:
Software Engineering
Sub-Categories:
Software Engineering > UML
Some information on this page was provided using data from Amazon.com®. View at Amazon >