Applying UML and Patterns : An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd Edition)

  Author:    Craig Larman
  ISBN:    0131489062
  Sales Rank:    67724
  Published:    2004-10-20
  Publisher:    Prentice Hall PTR
  # Pages:    736
  Binding:    Hardcover
  Avg. Rating:    5.0 based on 113 reviews
  Used Offers:    24 from $46.99
  Amazon Price:    $55.99
  (Data above last updated:  2008-11-18 12:49:35 EST)
  
  
Sort customer reviews by:
  
Show All Reviews on Page      Hide All Reviews on Page
   
  
Applying UML and Patterns : An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd Edition)
  
“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”

The first edition of “Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design” quickly emerged as the leading OOA/D introduction; translated to many languages and adopted in universities and businesses worldwide. In this second edition, well-known object technology and iterative methods leader Craig Larman refines and expands this text for developers and students new to OOA/D, the UML, patterns, use cases, iterative development, and related topics.

The book helps newcomers to OOA/D learn how to “think in objects” by presenting three iterations of a single, cohesive case study, incrementally introducing the requirements and OOA/D activities, principles, and patterns that are most critical to success. It introduces the most frequently used UML diagramming notation, while emphasizing that OOA/D is much more than knowing UML notation. All case study iterations and skills are presented in the context of an “agile” version of the Unified Process -- a popular, modern iterative approach to software development. Throughout, Larman presents the topics in a fashion designed for learning and comprehension.

Among the topics introduced in Applying UML and Patterns are: * requirements and use cases, * domain object modeling, * core UML, * designing objects with responsibilities, * “Gang of Four” and other design patterns, * mapping designs to code (using Java as an example), * layered architectures, * architectural analysis, * package design, * iterative development, * the Unified Process.Foreword by Philippe Kruchten, the lead architect of the Rational Unified Process.

“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”

“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”

Good software starts with a good design, and the subtitle of Applying UML and Patterns, "An Introduction to Object-Oriented Analysis and Design (OOA/D) and the Unified Process" reinforces that that's what this book is about.

The first edition of Applying UML and Patterns became a standard. The second edition uses the unified process (UP) as the iterative process within which OOA/D is introduced, and extends the case study used in the first edition. Other changes have been made to reflect the growing consensus on the most effective ways to work with OOA/D and patterns.

Although you will learn UML, this isn't what Applying UML and Patterns is all about. It's designed to teach you to think of software as a collection of objects with properties and to manipulate the relationships between them. This is far more profound.

The case study enables Craig Larman to carry the design through to Java code. In practice, you will need a basic understanding of OO programming to benefit from Applying UML and Patterns, though you needn't know Java--you can implement the designs in the OO language of your choice with equal facility.

When it comes right down to it, Applying UML and Patterns is all about providing you with a language in which to think about software design. This is quite different from learning a language in which to code a design.

A facility with OOA/D will enable you to design and discuss programs independent of code, to produce more elegant and maintainable software, and to take a 30,000-foot view of the way your software interacts with the world. In effect, it can shift your viewpoint from that of a mechanic to that more sophisticated viewpoint of an engineer. Recommended. --Steve Patient. Amazon.co.uk

                  Reader Reviews 1 - 50 of 114            Next
  
  
Review
Date
Review
Rating(5 High)
Review
Helpful
to:
Customer Review Reviewer
Info
Permanent
Link
Reader Reviews Below Sorted by Newest First
09-02-08 5 (NA)
(Hide Review...)  Perfect resource for OOAA
Reviewer Permalink
I needed the book because I did not pass the examen OOAA (Object Oriented Analysis Advanced). The cause: the study material did not cover all the subjects. Therefore I bought this book to increase my ability to apply the UML patterns and to pass the exam.

I have read half of the book.
It is clearly written, without any errors for far.
That is why I consider this book as a valuable resource and give it five stars.

Although English is not my native language, I am able to read and understand the subjects.

René
The Netherlands

(Review Data Last Updated: 2008-11-18 12:51:50 EST)
08-19-08 4 (NA)
(Hide Review...)  Good book to choose
Reviewer Permalink
This was my first book on development process theme. Well it's quite interesting to read and full of useful information. It highlights some interesting methods of software design work. This book has one shortcoming: the actual useful information is hidden by huge amount of text which sometimes repeats itself. I had to make some efforts to begin to understand the ideas and principles. And after reading it twice you will have clear view of agile development in you head. Anyway it is worth to be read.
(Review Data Last Updated: 2008-09-03 10:46:37 EST)
12-05-07 5 1\1
(Hide Review...)  A "must read" for a programmer
Reviewer Permalink
It's a "must read" for a programmer. This book has opened my eyes for lots of things connected with programming I didn't realize before.

After reading this book I recommend you reading followings:
- "Agile Software Development, Principles, Patterns, and Practices" ew. "Agile Principles, Patterns, and Practices in C#";
- "Patterns of Enterprise Application Architecture".

I have to say that English is not my first language, but I found this book "readable" with no problems.
(Review Data Last Updated: 2008-08-20 06:14:26 EST)
11-12-07 5 (NA)
(Hide Review...)  Excellent Hands-On Instruction & Great Graphics
Reviewer Permalink
This book was purchased for the Business Analyst in our IT Department. She is very pleased with the graphics which make the instructions much easier to understand. There are many practical applications in the book that have already been extremely helpful in her job.
(Review Data Last Updated: 2008-01-07 11:11:27 EST)
10-06-07 5 (NA)
(Hide Review...)  A great reference, had to get the UML 2.0 edition
Reviewer Permalink
I found the previous edition 5 years ago, and completely marked it up. This book was instrumental in passing the OOAD test certification.
I continued recommending this book to my colleagues.
Then found the UML 2.0 edition, and plan on using this book as much as I did.
(Review Data Last Updated: 2007-11-13 15:36:51 EST)
08-11-07 5 (NA)
(Hide Review...)  First book for anyone learning to create business software
Reviewer Permalink
Craig Larman's classic has reach 10 years of prime position on my professional book shelf, the 1st edition now replaced with the 3rd. Whenever anyone asks for an introduction to UML, this is always my first recommendation. Though the book focusses on software construction from scratch, it still contains much brilliant guidance for enhancement work or implementation of software packages.

This book takes you in a logical, distilled process through pragmatic application of Unified Modelling Language on real projects for which people pay. Of course the examples are simple, but relevant and helpful. The book is chock full of diagrams and little text, which makes it quick to read and easy for reference.

You could do little wrong if you used only this book to guide your first application of UML to a real project.
(Review Data Last Updated: 2007-10-07 12:16:15 EST)
07-19-07 3 1\2
(Hide Review...)  Review of Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd Editi
Reviewer Permalink
I have 30 years in the industry (and in different industries in IS management) and one thing I dislike is the author's persistence do down-grade the waterfall or modified waterfall models. He should be more objective on his comments since the waterfall and modified waterfall do have their merits on projects -- refer to "Rapid Development, Training Wild Software Schedules" by Steve McConnell, Microsoft Press, ISBN 1-55615-900-5. I have used them very successfully on big programs. The key here is, with any model, in order to be successful you need quality communications with ALL stakeholders. Just like in our personal life's, communications is everything; the models can be secondary.

The author should also strictly follow the attributes of writing good requirements. On page 72, he wrote for "frequency of occurrence", "Could be nearly continuous". Now, I ask, how ambiguous is that????
(Review Data Last Updated: 2007-08-11 11:09:57 EST)
07-06-07 5 1\1
(Hide Review...)  The single best book for your OO development team
Reviewer Permalink
As others have pointed out, the content on OO analysis and design is excellent. Equally important - Larman's book is also an excellent on "process".

Unlike many books that simply focus only on "programming", Larman gives you a working examples and excellent advice on overlapping fields like "requirements", "testing", "architecture" and "project management".

Craig Larman's "Applying UML and Patterns, 3rd Ed" is a wealth of practical advise, covering *all* significant aspects of successfully defining and implementing a non-trivial software project. If your team were to choose only one book as your "Bible" - this would be that book.
(Review Data Last Updated: 2007-07-22 23:07:45 EST)
04-23-07 5 2\2
(Hide Review...)  Excellent Work!
Reviewer Permalink
As pointed out by many, this book is a very nice introduction to Object Oriented Analysis and Design. The author's explanations were very clear. This book covers agile practices, UML, many patterns including Gang of Four (GoF), and software architecture. Overall I really enjoyed reading this book. From an industry standpoint as well as an academic standpoint, I believe this book does an excellent job. This book will be part of my library for a long time to come. Highly recommended.
(Review Data Last Updated: 2007-07-09 21:37:42 EST)
11-10-06 5 1\1
(Hide Review...)  Excellent guide!
Reviewer Permalink
Well, I think this book should be a must read for any pro or beginer in the software design/build area, it takes you from the start trying to make you understand what your client want you to understand, until the best practices to have patterns, tests, and a good team development, so do not hesitate to buy it!.
(Review Data Last Updated: 2007-07-04 17:32:54 EST)
07-30-06 1 0\11
(Hide Review...)  Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd Edition)
Reviewer Permalink
The book I received has writing on it, it must be used by another person before. However, I ordered a NEW book not a used one, I'm very disappointed and my trust in ordering on amazon has greatly decreased.
It would be nice if there is some compensation for this.
(Review Data Last Updated: 2006-08-18 10:57:51 EST)
06-03-06 5 3\3
(Hide Review...)  Wanna master OO Design for real?
Reviewer Permalink
I had a degree in Computer Science from a respectable university when I read the book. Still, I learned from the book so much that I realized I barely scratched the surface of OO design before reading it.

It teaches OO Analysis and Design using many techniques, such as writing use cases, modeling the business domain, drawing UML diagrams, using CRC cards, and going through agile iterative development cycles.

This book will not only provide you with a chance to learn OO Design, but also requirements gathering, analysis, and basic architecture and project management.
(Review Data Last Updated: 2007-07-04 17:32:54 EST)
03-13-06 5 (NA)
(Hide Review...)  Great introduction to OOAD
Reviewer Permalink
This book is a great introduction to OOAD, agile development, Patterns and UML. It goes from the basic concepts to real world applications. It is has lots of content though but it is worth reading it from beginning to end.
(Review Data Last Updated: 2007-07-04 17:32:54 EST)
02-18-06 5 6\6
(Hide Review...)  Balanced Real-World Advice For Best Practices Software Development
Reviewer Permalink
I read the first edition of this book years ago when I was making the transition to objects. It was about the tenth book on the subject that I had read, but it was the first one that consistently anticipated the questions that came up when I was actually trying to build something using UML, long after the hype and "objects will save us" party atmosphere had died down. Craig Larman has carefully remembered, or has taught this enough to have been reminded of, the kinds of questions software practitioners actually encounter on the way to building systems using UML. This 3rd edition is twice as big as the first, and it is twice as good only because it is twice as much of Larman's excellent teaching.

This book is so good that even developers experienced with UML, the GRASP patterns, and agile development methods will gain from it, reminding us once again to balance the best practices that we apply perhaps a little unevenly at times. It is clearly a book by someone who has been there, and has remembered what it was like during the learning process. But perhaps its greatest strength is its application of very good theory in a very pragmatic way, in short, its balance. This is one of a very few books that I recommend to everyone I know in software.
(Review Data Last Updated: 2007-07-04 17:32:54 EST)
02-16-06 5 2\2
(Hide Review...)  A must book of mastering OOAD
Reviewer Permalink
Currently the best and famous OOAD books in markets. It covers detailed information and techniques(e.g. GRASP)on each steps for the whole process of analysing and designing OO applications and there're examples for illustration. A must of OO architect or equivalent.
(Review Data Last Updated: 2007-07-04 17:32:54 EST)
02-03-06 3 4\8
(Hide Review...)  Thorough but frustratingly so
Reviewer Permalink
I have to disagree with whoever said this is a great book for beginners. There is too much information to the point of overkill. I am getting more enlightenment from going to www.omg.org and reading the UML specs. The author interjects way too much unnecessary information, then takes a good example model (like on the back page) using default language, only to throw "veggieburger" in the middle of it all, which to a novice lends only to confusion.
I am in the middle of reading this so I may change my stripes by the end, but I really don't see it happening. "UML 2 Toolkit" and "Head First Design" have helped me learn this stuff much faster.
(Review Data Last Updated: 2007-02-24 18:09:43 EST)
01-01-06 4 3\4
(Hide Review...)  For beginners, not experienced developers
Reviewer Permalink
I've been reading this book over the holiday break. I find the introduction to iterative development, Unified Process, and agile approach refreshing. The discussion on patterns is something of a review to me because I've already read the GoF book, and many patterns are just common sense that a good experienced developer should already know. The way to apply UML in iterative development in UP fashion using GRASP is the goal of the book, and it is very educational. However, I find the book is geared towards beginners. The text is easy read; fonts are relatively large as compared to technical books; and the author seems to repeat the idea over and over again while incrementally adding a little idea with each repetition. And I am not referring about the iteration development process. I am referring the author's style of writing. To an experienced developer, the content of this book could have been cut in half. I am taking 1 star as a result of this. Otherwise, a fine book.
(Review Data Last Updated: 2006-10-15 11:49:20 EST)
09-23-05 5 6\8
(Hide Review...)  Great for self-learning but difficult for teaching
Reviewer Permalink
I have been using the 2nd edition to teach a semester long "Object-Oriented Software Engineering" subject at the School of Information Technology (James Cook University, Townsville, Australia) for the last 4 years (2002-2005), see

http://www.it.jcu.edu.au/Subjects/cp3120/2004-2/CP3120.HTML

On the positive side: It improved my own design and code dramatically. It looks like the Controller pattern has been overlooked by other pattern books. The book provides a seamless recipe for delivering design/code from the use cases (this is the only book that I know that actually does that). So I strongly recommend the book as a self-study book for a professional programmer.

However as a teaching tool: here are some of the problems that forced me to look for a different text book for the next year:

1A. The book still does not come with lecture notes. (I have to write my own for the 2nd edition)
1B. It does not have exercises/problems for teaching.
1C. It has no realistic java code examples (the old problem with explaining concepts using toy-examples).
1D. It completely ignores interaction with GUI (saying .... we are not modeling outside the domain?). This did not help as all our assignments have complicated GUIs (preparing for the real-world jobs).

2. Covering UP/RUP and patterns in one semester is too much. It is better to do less but better. UP/RUP is more relevant to a generic software engineering subject as the current best practice in SE. Plus after teaching from the book for 4 years, I cannot see how anyone could implement the UP following the book. You would still have to get a different book for it.

3. Some (if not most) students were really struggling with the book. Larman explains things in too many words (actually pages and pages of it), which is even for a native English speaker is a lot of reading for little TESTABLE reward, not to mention our Asian students.

4. Larman is expensive and physically big (less chances for students to carry it around for tutorial and lectures). The 3rd edition is even bigger.

Dmitry
dmitry.konovalov@jcu.edu.au
(Review Data Last Updated: 2006-06-28 15:51:17 EST)
09-13-05 5 5\6
(Hide Review...)  Not what I was expecting... but it was what I needed.
Reviewer Permalink
If you are looking for a UML book that details every single aspect of the UML, then this may not be what you're looking for.

This book hit me a bit by surprise. As I get more and more into OOA/D I found that learning the UML would probably be very beneficial. I decided to go ahead and pick up a UML primer in hopes of learning everything about the UML. I decided on this book. This books main focus isn't exactly on the UML (although you learn a great deal about that too). Instead this book focuses more on OOA/D theory and the unified process to software development. You learn all about how to create software in iterations rather then the common waterfall method. In a nutshell, you learn that it's not really such a good idea to plan out every aspect of your system, do all of the architecture and then implement (this is known as the waterfall method). Instead you learn about how to create software in iterations, treat each iteration as its own project and build to adapt for potential changes.

Along the way of learning OOA/D, the unified process and design theory, you also learn how to create the most common UML diagrams. This includes use case, domain model, interaction, class diagrams and others. Craig Larman also touches up on other topics such as design patterns, visual thinking and much much more. There is a whole lot of ground covered in this book.

While I was reading this book I was constantly reminded of Steve McConnell's writing style (in case you didn't know, Steve McConnell is the author of Code Complete 1st and 2nd edition, Rapid Development and a few other epic software titles). The writing style is very similar, which is a huge plus - as I am a big fan of Steve McConnell.

I highly recommend this title to all software developers. This is one of those eye-openers that will make a few flickering light bulbs shine brightly. If you are a fan of Steve McConnell books then I am almost 100% sure you will benefit from this exceptional title. Actually, whilst reading Steve McConnell's Code Complete I remember wishing Steve would write a book focusing on OOA/D. This is "almost" that book.
(Review Data Last Updated: 2006-06-28 15:51:17 EST)
09-04-05 1 6\18
(Hide Review...)  As complicated as it comes
Reviewer Permalink
This book contains a very complicated writing style, it feels like the author used a thesaurus just to make the text harder. If english isn't your native language you should definetly not buy this book (as in my case). Add to the above that there is an obvious lack of flow in the book, and repetetive text making you think that you are reading the same pages over and over again.
(Review Data Last Updated: 2006-06-28 15:51:17 EST)
08-22-05 5 3\4
(Hide Review...)  Very clear, excellent book
Reviewer Permalink
For people like me, that its main knowledge's source are books, this one is the best I read about OO. There are many advices about how to make systems well, clears many obscure concepts (at least for me) and get us focused on a balance between the analysys and desing metodology and code construction.
Very well done!
(Review Data Last Updated: 2006-06-28 15:51:17 EST)
05-30-05 5 4\5
(Hide Review...)  Makes Sense To Me Now - Congratulations!
Reviewer Permalink
I've been toying with the idea of a more agile programming environment coupled with good visual documentation for quite a while. I'm a project manager in a small software company and I've finally gotten the time to do what I'm meant to do - manage projects! We all know what it's like...

Although I've known of Agile programming methods (Extreme Programming for example) for a while and am well aware of the Waterfall Method's shortcomings - and I've known about and used quasi-UML now for about 3-4 years - it's never really synthesised sensibly for me.

I took a 10 minute, sit in the bookshop, read this book and the concepts started to come together for me; I learn by seeing how the concepts are applied to real things or projects and there's plenty of examples actually worked through rather than piecemeal.

This book has a tone such that the author is actually there with you. It's not at all boring, it invites you to think with the author and for yourself and it's great for people like me who hate being talked down to by an expert - even if we know that expert knows more than us - because it feels as though it's simply a more skilled person communicating his skills to you.

I heartily recommend this book.

DSL
(Review Data Last Updated: 2006-06-25 10:24:12 EST)
03-02-05 5 12\12
(Hide Review...)  Underlying principles and practice: Excellent job.
Reviewer Permalink
There is a lot of textbooks on UML in the market, similarly on development processes like the Unified Process, design patterns and OOA/D. Many textbooks that I have seen provide a dry list of UML notations, or a dry list of process guidelines, or trivial examples on how a design pattern can be implemented. However, no other textbook in my opinion makes an excellent job in putting everything together in a case study (the 3rd edition provides two case studies) in order to illustrate (1) what is the significance of each one of the above, (2) how they fit together and (3) what are possible tradeoffs. The author very clearly explains what are the underlying principes behind object-oriented software development and (more importantly) how these principles can be put into practice.

Since the first edition I found Craig's writing style very easy to follow and as a graduate student taking software engineering and related classes I used this textbook as a self study to learn about OOA/D and UML. As an instructor I have been using this textbook for a number of software engineering and related classes (both senior level undergraduate and graduate), and the feedback I receive from students is very positive. I also recommend this book to students who are undertaking final-year undergraduate projects or graduate projects, and we have found this book to be very valuable for projects that involve several stages of analysis, design and implementation and who want to know how a process such as the Unified Process can be used in an agile manner. My experience tells me that this last point is very important for students who would work individually or in small groups over a (usually) short period of time to complete a development project.

Several of my previous students who are now employed in the IT industry as developers are telling me that they still use this book and find it a very valuable reference.

The book has also sparked interesting discussions among colleagues and researchers on various aspects on OOA/D and it is a valuable source. More particularly, the book successfully manages to integrate the principle of Design by Contract beyond implementation. Craig's approach to introduce operation contracts places emphasis on assertions from early stages of development and shows how this emphasis is propagated to detailed design (through UML communication diagrams) and through the use of responsibility patterns.

Regarding a comment on GRASP by a previous (and anonymous) reviewer, I would like to point out that a pattern is a set of principles (can be on any level of granularity) that solves a recurring problem at any stage during development. This (albeit informal) definition does not confine patterns to structural or behavioral design (along the lines of the GoF design patterns). Craig makes that very clear in the book particularly in the second and third edition) and I'm afraid to say that the reviewer who made the comment either skipped that part or misunderstood it.
(Review Data Last Updated: 2006-06-25 10:24:12 EST)
02-07-05 5 5\6
(Hide Review...)  Great for learning OOA/D
Reviewer Permalink
I've come from a mainframe background. I took C++ and Java classes and still didn't know how to design OO. This book has helped me cross that bridge. Highly recommended!
(Review Data Last Updated: 2006-06-25 10:24:12 EST)
01-25-05 3 5\28
(Hide Review...)  Great book, nearly fatal whopper
Reviewer Permalink
GRASP is a series of patterns? That's a pile of crap. GRASP is a list of design techniques and principles. Calling the elements of GRASP "patterns" is a serious violation of semantic integrity and precision, and makes the book a lot less valuable than it should be.

Considering the semantic precision of the rest of the book (its intent is, ironically enough, to teach us semantic precision), this mis-labeling of one of its truly central elements creates a jarring cognitive dissonance.

I make a big deal of this because the GRASP principles are introduced at the pivotal moment in the process when analysis is being rendered into design. This is the moment where the rubber meets the road, and the moment that most of us buy such books for. To be led astray just exactly then by this whopper of a misclassification is a nearly fatal flaw.

The fact that the rest of the book is really terrific makes up for this, hence the restoration of 3 stars. The workaround is also fairly trivial: if the reader simply repeats (like Dorothy with "There's no place like home...") "GRASP is a collection of principles. There are no patterns in GRASP," then the problem completely corrects itself, and the book becomes useful again.
(Review Data Last Updated: 2006-06-25 10:24:12 EST)
11-19-04 5 10\10
(Hide Review...)  Moving from the Classroom to the Real World
Reviewer Permalink
One of the more difficult concepts to bring to programming is the very basic concept of Object Orientation. Most programming efforts in the college/university level are really short and quick, while most software projects in the real world are much bigger. Combining all this together you have the potential for turning out graduates that have a hard time in the real world.

An interesting point of this book is its overall design, which is laid out like a software project. That way you are working within the broad concepts while you don't even know that you are being exposed to them.

This is not a book on programming. You should know at least one object oriented language before beginning it. Java is used for most examples, but one of the C's or Python could be used.

The title of the book is somewhat misleading to me. True it is about UML and Patterns, but it's really the sub-title that tells the story. This is a book on object oriented analysis and design (OOAD). UML and Patterns are simply two of the tools used to teach OOAD.
(Review Data Last Updated: 2006-06-25 10:24:12 EST)
10-30-04 5 (NA)
(Hide Review...)  Wonderful introduction to OOA and OOD
Reviewer Permalink
Coming from a VB6 (Book-Educated) background, OOA and OOD were very foreign to me. I had read some small explinations in a few books but it just wasnt enough to get me to start thinking in terms of OO.

This book finally did it for me. It leads you through the basic core concepts and patterns while showing you how to Diagram it in UML (This visual also helps in the learning process).

Overall a great find for me, after this I will be moving on to Object Oriented Construction.
(Review Data Last Updated: 2006-06-25 10:24:12 EST)
07-06-04 5 1\3
(Hide Review...)  The best book for introducing in OOAD and Design Patterns
Reviewer Permalink
If you want to introduce to the world of OOAD and Desing Patterns this is the best book for you ! Don't doubt to buy this book. It has been my inspiration to teach OOAD in my Technology Institute in Culiacán, Sinaloa México. Really UML and OOAD was another thing since i knew the Craig's Book !
(Review Data Last Updated: 2006-06-09 10:08:10 EST)
06-03-04 5 3\4
(Hide Review...)  The best tutorial on OOA/D
Reviewer Permalink
This book nearly defies description in terms of the breath and depth of material it covers (and covers very well). In addition to OOA/D, you get essential and detailed information on Use Cases, Requirements gathering, UML, Design Patterns, and Iterative/Agile Development, as well as insights into Test Driven Development.

And the best part: all of this information is carefully integrated so you really get a deep feeling for the multitude of skills it takes to be a software developer/architect in the 21st century.

No book is a substitute for real world experience coupled with in depth instruction and mentoring, but this book comes as close as humanly possible to achieving those lofty goals without leaving your easy chair/workstation.

Most in-depth books leave me with a headache - you get the gist, and then the brick wall goes up when you get to the details. Mr. Larman slowly and steadily gets you into the details without ever over simplifying, yet without sacrificing the "meat"

Bravo!

(Review Data Last Updated: 2006-06-25 10:24:12 EST)
04-21-04 5 7\7
(Hide Review...)  A good introduction, and more, to OO Analysis and Design
Reviewer Permalink
I am in agreement with some of the observations made in the 1-out-of-5 review by wiredweird. However, I am inclined
to rate this book a 5 out of 5.

There are a lot of books out there that talk about O-O but stop at inane and condescending examples that limits
what knowledge, if any, you could get from the books. On the other side of the spectrum, you have outstanding
books like "Design Patterns" that might be a little hard to follow for people like, for instance, me. The uniqueness
of this book by Craig Larman is that it effectively bridges the yawning gap between the O-O for idiots approach and
the O-O for experts approach. Granted that Mr. Larman seems to be calling "Principles" as "Patterns" -- it is kind of a
stretch to call "Polymorphism" a pattern, but nomenclature aside, the emphasis is rightly on general principles that
prevade patterns of design. Larman might have stretched the limits of UML notation here and there -- but it is
almost always to emphasize an idea.

The main portion of the book deals with a case study involving a POS system -- good choice, a POS system is something
we are all familiar with and it offers a lot of possiblities to show the application of design principles and patterns.
Its possible that this is not the best book to teach (or to learn) O-O design -- but I havent come across one that is better.

An irritant i have with this book is the quality of the paper used -- it reflects light making it a strain to
read it under fluorescent light. Maybe they will fix it in the next edition so that the reader is the only one doing the
reflecting.

(Review Data Last Updated: 2006-06-25 10:24:12 EST)
04-14-04 1 29\44
(Hide Review...)  Keep looking.
Reviewer Permalink
I can not recommend this book.

I find it confused and confusing, with no clear line between Larman's own diagrams and actual UML notation. Starting on page xvii (before the text even starts), this book mixes the UML comment notation with Larman's own boxes-and-arrows. Similar mixes appear on p.7 and many other places. By p.22 Larman has already confused comment and use-case notation. Diagrams like 17.4 use multiple different arrows to say apparently the same thing - or maybe not, it's not for the reader to know. A number of UML diagrams suffer similarly from creativity. It's never quite clear what marks are defined by the standard and which ones by Larman's over-active imagination.

It would have been so simple to fix that confusion, too. Even something like tinting the official UML and leaving his own markup in black and white would have shown which was which.

He uses common terms in baffling ways. I've been developing software for many years, and I thought I knew what development was. It's what a software developer does - it's all the work needed to start from nothing, then deploy and support the product. I was quite surprised to learn that planning and analysis are not part of the development cycle, but the start of Ch. 8 assures me that they are distinct. Larman asserts that development is architecture-centric, but makes this assertion when almost 90% of the how-to section has gone by. If archtiecture is so basic to all other design, then it really should have been there at the beginning. I've seen attempts to declare an architecture at the end of the project, and they are comical (as long as I'm nowhere near that project). I was also baffed to see "contracts" so deeply embedded in the UML methodology proposed. Contracts are good, I agree, but they don't become part of UML simply by wishing they were. This is the kind of presentation that will leave a UML novice (the book's intended reader) thoroughly misinformed.

Most other authors distinguish between design principles and design patterns, a line that Larman fails to draw. Principles give an idea of how to divide responsibilities, irrespective of what those responsibilities are. The Law of Demeter, cohesion, and the idea of polymorphism are design principles. Patterns state specific responsibilities and assign them to specific (if abstract) classes. Publish/subscribe (aka Observer) is a pattern. It states which object type originates data and which receives it. It states how the receiver makes itself known to the originator. Patterns apply to specific relationships or behaviors, principles apply to any relationship or pattern. Losing the distinction is a real loss of descriptive power, and a disservice to both principles and patterns.

The flaws go on, but this book has already taken up enough of my life. I strongly suggest that the reader look at any of the many other books on UML or on patterns. Even picking at random, you're likely to get a better reference.

(Review Data Last Updated: 2006-06-25 10:24:12 EST)
04-05-04 4 2\2
(Hide Review...)  A great learning book for overview of software engineering
Reviewer Permalink
This book uses a POS system example to give the idea of software development from the beginning to the end. It concentrates on software designs and artifacts on each phase with good detail description. However, since each software development phase is large topic, it can not give every aspect of design concept but it can give you an overview anyway. This book is great for anyone who interests to apply systematic process to software development but does not know where to start.
(Review Data Last Updated: 2006-06-25 10:24:13 EST)
02-29-04 4 2\2
(Hide Review...)  Very clear and readable intro but too expensive
Reviewer Permalink
This book is a really well written, clear, comprehensive exposition of software delopment processes and best practices, uml and design patterns. An excellent read for someone who has just learned how to program in an object oriented language and wants to progress to the next level. The strong points of this book are: it is very clear, to the point and gives a broad coverage of all relevant problems and techiques in software development. Weak points: it is way too espensive, it could be more in depth in some areas, and it would benefit from the addition of a few chapters on how to use CASE tools. Also, it is nice to see the POS case study evolve throughout the book, but it would be even nicer if one could see a diagram or two from other areas and context once in a while.
(Review Data Last Updated: 2006-06-25 10:24:13 EST)
01-17-04 5 1\1
(Hide Review...)  Book Review: "Applying UML and Patterns"
Reviewer Permalink
Please see my expanded review at:
http://dotnetjunkies.com/weblog/fletcher.dunton/posts/5649.aspx

I picked this book up several years ago while writing curriculum for a training class on OOAD and UML. My reason for seeking it was that I needed an alternative to several of the books that Rational published, including UML Distilled and The Unified Modeling Language User Guide. The later two texts just did not tie UML, process and practical examples together and Larman's book did.

What appealed to me about "Applying UML and Patterns", is that it combined both theory and practice in manifold ways. I've critiqued each of the following areas:

Software Development Life Cycle
UML
Patterns
Practical Case Study and Examples

Overall, the book makes for good reading for developers and team leads alike. I recommend it as a baseline prior to choosing a UP based methodology and for those wanting to understand the big picture and how Use Case, UML, Patterns and UP can compliment on another.

Happy Reading : )

(Review Data Last Updated: 2006-06-25 10:24:13 EST)
12-17-03 4 1\1
(Hide Review...)  Pretty Readable For A Textbook
Reviewer Permalink
I read Larman's Applying UML And Patterns in my software engineering course at university. Some good points about the text: it was very readable, there were many helpful examples and diagrams, and it showed the UP for one example (the point-of-sale system) rather than several unrelated examples. I think many students are able to relate to the POS system example due to the large percentage of us working retail jobs.
Some negatives are that sometimes the prose rambles a bit or it seems like the author wrote it during a very late night. Also I would have liked more comparisons between the many (and sometimes confusing) diagrams in UML.
Overall, I thought this book did a great job teaching the reader about UML diagrams, software patterns, and the many iterations of the UP.
(Review Data Last Updated: 2006-06-25 10:24:13 EST)
12-14-03 3 1\3
(Hide Review...)  Decent, but too narrowly focused
Reviewer Permalink
This book was pretty informative concerning the application of UML, but only to an automated Point-of-Sale System. Lahrman included an excellent number of diagrams and examples of the different UML notations, however, they all focused on the POS system, and were thus sometimes hard to apply out of that context. The book did a good job presenting GRASP and GoF patterns, but the lack of variety in the examples made for confusion when discussing applying different patterns in the same type of system. One very nice feature of this book is the set of quick-reference diagrams inside the front and back covers of the book. These come in very handy.
(Review Data Last Updated: 2006-06-25 10:24:13 EST)
12-14-03 4 0\1
(Hide Review...)  Cpre 486
Reviewer Permalink
I felt that the this book descibed the individual patterns that could be implemented in the unified process well. The diagrams that were used in the book were extremely helpful in understanding the relationships between classes and enhanced the understanding of the patterns and the unified process.
(Review Data Last Updated: 2006-06-25 10:24:13 EST)
12-13-03 4 2\2
(Hide Review...)  Useful, but limited
Reviewer Permalink
While this book gives a good overview of the UP, I found it to be somewhat lacking in the "applying patterns" aspect. It did describe GRASP and GoF patterns consisely, but the examples, which all centered around a single system, were so simple and completely applicable, that it made applying the patterns to a totally different type of system, and seeing them from any but the very obvious angle in which they were introduced, difficult.
(Review Data Last Updated: 2006-06-25 10:24:13 EST)
12-13-03 4 2\2
(Hide Review...)  Good book on OOA/D
Reviewer Permalink
This book helps introduce OOA/D, UML(very thoroughly), software patterns, use cases, iterative development, and other topics. It also gives insight on object oriented programming issues. One of the best features of the book is that you're able to read it and not have to illustrate by one programming language. I think the author using POS example was a good idea but could used couple more to add diversity. This book makes object oriented programming seems easy! Good start for students wanted to be software engineers.
(Review Data Last Updated: 2006-06-25 10:24:13 EST)
12-12-03 4 (NA)
(Hide Review...)  Review of Applying UML and Patterns
Reviewer Permalink
Applying UML and Patterns is a very good book for learning OO anlalysis and design. The book is very well written and makes it easy to find stuff. The diagrams are very helpful and it gives you great hints and tips when trying to write different diagrams ( SSD, DCD, domain model, collaboration diagram, interaction diagrams, etc...). I enjoyed the book and would recommend it to anyone that needs a reference for an OO analysis and design class.
(Review Data Last Updated: 2006-06-25 10:24:14 EST)
12-12-03 4 (NA)
(Hide Review...)  excellent book for ooad
Reviewer Permalink
The book is very effective in guiding the reader by giving a real-world example throughout the chapters. It covers concepts of solid object-oriented design principles, which helps improve a software designer's skill set. Especially as a student from other books I used this book is very clear and easy to understand thru out the chapters. The Author does a good job of showing how patterns are used within the context of the UP. The discussion on the FURPS & GRASP patterns is exceptional, because their application in more complex design patterns is shown as well. Also all the diagram that were listed have a a detailed brief dicription about them.
One thing i didn't like about this book is that, the Author tend to conflict with its statement. If someone went thru each line of the book it is easy to find where two ideas conflict to each other. And it very helpful to have guidance about the conflicting topics to be singled out by instructors, experience Engineers which helps me in my experience.
(Review Data Last Updated: 2006-06-25 10:24:14 EST)
12-12-03 4 (NA)
(Hide Review...)  This is a great book.
Reviewer Permalink
This has been my most used book this semester. It is a must have for any software engineer. I will not be selling this book back. The pace is very good, as well has great references on the inside covers.
(Review Data Last Updated: 2006-06-25 10:24:14 EST)
12-12-03 5 1\1
(Hide Review...)  Excellent Software Engineering Title!
Reviewer Permalink
I enjoyed this book greatly. It provided me with a solid understanding of how to work with UML and OOA/D. It not only covers the basics of UML but brings the reader through the process of creating software, using a persistent example throughout the book. It helped improve my knowledge of object oriented design and overall software engineering skill.

I found the book clear and easy to understand. Additionally I found the examples very helpful in showing me exactly what needs to go into a certain UML artifact.

The discussions on the GRASP design patterns and GoF design patterns were both very thorough and helpful and opened my mind to new ways of handling various software problems.

The one problem I had with this book is the occasional instance in which the author contradicts himself.

Overall an excellent book and I would recommend it to any future software engineer.

(Review Data Last Updated: 2006-06-25 10:24:13 EST)
12-12-03 4 1\1
(Hide Review...)  Good Book, but not enough detail.
Reviewer Permalink
This book was used as are main text book for CprE 486 at Iowa State University. And proved to be highly useful for learning the concepts, but it stopped there. It seems like it introduces stuff and then almost immediately moves on. This makes it hard to try and use it as a reference when trying to accomplish assignments for it doesn't always provide clear and concise examples of how things are suppose to work. It introduces the notation, but leaves one kind of high and dry of how exactly to use. I would definitely recommend reading this book at least once, but whether or not it should be kept or traded in for Beer and Pizza is highly debatable.

JB

(Review Data Last Updated: 2006-06-25 10:24:13 EST)
12-11-03 4 (NA)
(Hide Review...)  Learn OOA/D
Reviewer Permalink
This is a good book if you are interested in learning about object-orientated analysis and design, the unified process, the universal modelling language and software patterns. The book does a good job of gradually introducing you to software development and takes you through a typical design process. Throughout the book there is a running example of designing a point of sale system that really helps you to apply what you're learning to a real world example. The author's ability to write and communicate the points he is trying to make also makes reading the book not tedious, but actually entertaining. I would recommend this book if you want to learn or increase your knowledge about software development.
(Review Data Last Updated: 2006-06-25 10:24:16 EST)
12-11-03 4 (NA)
(Hide Review...)  Great referance
Reviewer Permalink
good book with lots of pictures through out. i found that the continuing examples of the POS system helped out alot for relating examples to each other. also the book has quite a few pictures that help out a TON as referance for making uml drawing and charts.
(Review Data Last Updated: 2006-06-25 10:24:16 EST)
12-11-03 5 0\1
(Hide Review...)  The supreme UML book
Reviewer Permalink
In my opinion this is a great book for learning UML and the unified process. In addition to this book, I did take a look at some other books as reference, but none of them compare in quality to Larman's book.
Everything has been organized very well in the book, right from the inception phase to the final iteration phase of software development. Considering the importance of UML today in the industry, there is no other book that provides a comprehensive knowledge and understanding of UML.
The language used is easy to understand, and Larman has also worked out a case study through out the book, leading us through the various stages of development in the unified process.
I strongly recomment the book for learning UML
(Review Data Last Updated: 2006-06-25 10:24:16 EST)
12-11-03 5 (NA)
(Hide Review...)  Software Engineering - An Intro to Object Oriented Analysis
Reviewer Permalink
This textbook proved a very useful and informative. It is a great reference for understanding the Unified Process and Detailed Design topics. The POS example used in the book helps solidify concepts taught in the book. The design patterns, UML and other topics effectively teach great techniques of Analysis and Design. I used this book as a textbook for a course, and it was a great reference and teaching tool. I would recommend this book to anyone wanting to learn Object Oriented Analysis and Design.
(Review Data Last Updated: 2006-06-25 10:24:16 EST)
12-11-03 4 (NA)
(Hide Review...)  An Excellent Place to Start
Reviewer Permalink
Applying UML and Patterns is a great introduction to UML and Object Oriented Analysis and Design. It has a nice slow curve to help introduce newcomers. Each chapter builds upon the concepts and examples of previous chapters to help walk the reader through the process. A point of sale system is used as a consistent example throughout the book. Each chapter adds new features to this system, while simultaniously introducing the reader to new UML concepts. Each new idea is accompanied by several example diagrams with notes to highlight important concepts. Each chapter also includes a quote that should appeal to one's inner computer geek.

The linear progression of this book does have its downsides, however. It is difficult to find specific information, or to start in the middle. Each section assumes you've read everything up to that point, and those expecting to use the book as a refresher or reference may find it difficult to find the information they desire. Similarly, one may confuse the notes on the example diagrams as a part of the diagram if not familiar with the style of the notes.

Overall it is a very well written book that should prove very useful to those new to UML and OOA/D. Those already familiar with the topic should probably look for a less structured source, but beginners should definitely give this book a try.

(Review Data Last Updated: 2006-06-25 10:24:16 EST)
12-11-03 4 (NA)
(Hide Review...)  Good learning tool for software developers
Reviewer Permalink
This book did a good job in teaching the UML, UP, as well as design patterns in a step by step manner that everyone can follow. I liked the way that there was one project which was built upon throughout the book starting from the beginning. It helped me follow how a software design would go and allowed to me better understand the material. I would recommend this book to anyone that wants to be a software developer.
(Review Data Last Updated: 2006-06-25 10:24:16 EST)
  
                  Reader Reviews 1 - 50 of 114            Next
  
  
  
  
  
  

Because the data used to generate this site come from outside sources, VeryWellSaid.com cannot guarantee the completeness or accuracy of the data.
Search VeryWellSaid™
Google
Web VeryWellSaid™
New subjects are added every week.
View Subjects Below by:
* Top Selling
 (click category name, left)
* Top-Rated Top Sellers
 (click 'Top Rated', right)
In the news...  
Dubai\UAE Top Rated
Influenza\Bird Flu Top Rated
Iraq Top Rated
Supreme Court Top Rated
All Books Top Rated
Arts Top Rated
Photography Top Rated
Digital Photography Top Rated
Digital Cameras Top Rated
Biography Top Rated
Business Top Rated
Management Top Rated
Marketing Top Rated
Sales Top Rated
Stocks Top Rated
Bonds Top Rated
Real Estate Top Rated
Trading Top Rated
Commodities Trading Top Rated
Time Management Top Rated
Starting A Business Top Rated
Children's Top Rated
Comics Top Rated
Computers Top Rated
PC