Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development
|
| List Price: | CDN$ 89.99 |
| Price: | CDN$ 72.72 & eligible for FREE Super Saver Shipping on orders over $39. Details |
Availability: Usually ships in 24 hours
Ships from and sold by Amazon.ca
20 new or used available from CDN$ 54.64
Average customer review:Product Description
"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 Applying UML and Patterns is the world's #1 business and college introduction to "thinking in objects"--and using that insight in real-world object-oriented analysis and design. Building on two widely acclaimed previous editions, Craig Larman has updated this book to fully reflect the new UML 2 standard, to help you master the art of object design, and to promote high-impact, iterative, and skillful agile modeling practices. Developers and students will learn object-oriented analysis and design (OOA/D) through three iterations of two cohesive, start-to-finish case studies. These case studies incrementally introduce key skills, essential OO principles and patterns, UML notation, and best practices. You won't just learn UML diagrams--you'll learn how to apply UML in the context of OO software development. Drawing on his unsurpassed experience as a mentor and consultant, Larman helps you understand evolutionary requirements and use cases, domain object modeling, responsibility-driven design, essential OO design, layered architectures, "Gang of Four" design patterns, GRASP, iterative methods, an agile approach to the Unified Process (UP), and much more. This edition's extensive improvements include *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 Applying UML and Patterns, Third Edition, is a lucid and practical introduction to thinking and designing with objects--and creating systems that are well crafted, robust, and maintainable.
Product Details
- Amazon Sales Rank: #39910 in Books
- Published on: 2004-10-30
- Original language: English
- Binding: Hardcover
- 736 pages
Editorial Reviews
From Amazon.co.uk
Good software starts with a good design, and Applying UML and Patterns' subtitle, "An Introduction to Object-oriented Analysis and Design (OOA/D) and the Unified Process" reflects this.
The first edition of Applying UML and Patterns became a standard. The second edition uses the unified process (UP) as the interactive 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 could 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 a 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 the more sophisticated viewpoint of an engineer. --Steve Patient
From the Author
Thank you for considering this book. Based on my experience both doing and mentoring OOA/D, I've tried to create a useful learning aid or introduction to object design, use cases, the UML, patterns, and iterative development with an agile or light version of the Unified Process. Please contact me if I can help with any questions related to its content or use in learning or teaching, at craiglarman.com.
From the Inside Flap
I am grateful that the previous editions were extremely popular worldwide. I sincerely thank all the readers!
Here is how the book will benefit you.
Design Well—First, the use of object technology is widespread, so mastery of OOA/D is critical for you to succeed in the software world.
Learn a Process Roadmap—Second, if you are new to OOA/D, you’re understandably challenged about how to proceed; this book presents a well-defined iterative roadmap—an agile approach to the Unified Process—so that you can move in a step-by-step process from requirements to code.
Learn UML for Modeling—Third, the Unified Modeling Language (UML) has emerged as the standard notation for modeling, so it’s useful to be able to apply it skillfully.
Learn Design Patterns—Fourth, design patterns communicate the “best practice” idioms OO design experts apply. You will learn to apply design patterns, including the popular “Gang-of-Four” patterns, and the GRASP patterns. Learning and applying patterns will accelerate your mastery of analysis and design.
Learn from Experience—Fifth, the structure and emphasis in this book are based on years of experience in education and mentoring thousands of people in the art of OOA/D. It reflects that experience by providing a refined, proven, and efficient approach to learning the subject, so your investment in reading and learning is optimized.
Learn from a Realistic Study—Sixth, it exhaustively examines two case studies—to realistically illustrate the entire OOA/D process, and goes deeply into thorny details of the problem.
Design to Code, with TDD & Refactoring—Seventh, it shows how to map object design artifacts to code in Java. It also introduces test-driven development and refactor.
Layered Architecture—Eighth, it explains how to design a layered architecture and relate the UI layer to domain and technical services layers.
Design Frameworks—Finally, it shows you how to design an OO framework and applies this to the creation of a framework for persistent storage in a database.At my website there are a variety of educator resources, including all the book figures organized into Microsoft PowerPoint presentations, sample OOA/D PowerPoint presentations, and more. If you’re an educator, please contact me for resources.
I am collecting material from existing educators using the book, to share with other educators. If you have anything to share, please contact me.
Intended Audience—an Introduction!This book is an introduction to OOA/D, related requirements analysis, and to iterative development with the Unified Process as a sample process; it is not meant as an advanced text. It is for the following audience:
- Developers and students with some experience in OO programming, but who are new—or relatively new—to OOA/D.
- Students in computer science or software engineering courses studying object technology.
- Those with some familiarity in OOA/D who want to learn the UML notation, apply patterns, or who want to deepen their analysis and design skills.
Some prerequisites are assumed—and necessary—to benefit from this book:
- Knowledge and experience in an object-oriented programming language such as Java, C#, C++, or Python.
- Knowledge of fundamental OO concepts, such as class, instance, interface, polymorphism, encapsulation, and inheritance.
Fundamental OO concepts are not defined.
Java Examples, But...In general, the book presents code examples in Java due to its widespread familiarity. However, the ideas presented are applicable to most—if not all—object-oriented technologies, including C#, Python, and so on.
Book OrganizationThe overall strategy in the organization of this book is that analysis and design topics are introduced in an order similar to that of a software development project running across an “inception” phase (a Unified Process term) followed by three.
- The inception phase chapters introduce the basics of requirements analysis.
- Iteration 1 introduces fundamental OOA/D and how to assign responsibilities to objects.
- Iteration 2 focuses on object design, especially on introducing some high-use “design patterns.”
- Iteration 3 introduces a variety of subjects, such as architectural analysis and framework design.
0131489062P09242004
Customer Reviews
The best tutorial on OOA/D
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!
A good introduction, and more, to OO Analysis and Design
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.
The best book for introducing in OOAD and Design Patterns
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 !




