Applying UML and Patterns : An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd Edition) |
|
|
|
|
| Craig Larman |
| October 2004, Prentice Hall, Hardcover, 736 pages, ISBN 0131489062
|
|
|
|
 |
|
“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.
|
 |
|
1 Object-oriented analysis and design 3
2 Iterative, evolutionary, and agile 17
3 Case studies 41
4 Inception is not the requirements phase 47
5 Evolutionary requirements 53
6 Use cases 61
7 Other requirements 101
8 Iteration 1 - basics 123
9 Domain models 131
10 System sequence diagrams 173
11 Operation contracts 181
12 Requirements to design - iteratively 195
13 Logical architecture and UML package diagrams 197
14 On to object design 213
15 UML interaction diagrams 221
16 UML class diagrams 249
17 GRASP : designing objects with responsibilities 271
18 Object design examples with GRASP 321
19 Designing for visibility 363
20 Mapping designs to code 369
21 Test-driven development and refactoring 385
22 UML tools and UML as blueprint 397
23 Quick analysis update 401
24 Iteration 2 - more patterns 407
25 GRASP : more objects with responsibilities 413
26 Applying GoF design patterns 435
27 Iteration 3 - intermediate topics 475
28 UML activity diagrams and modeling 477
29 UML state machine diagrams and modeling 485
30 Relating use cases 493
31 More SSDs and contracts 501
32 Domain model refinement 507
33 Architectural analysis 541
34 Logical architecture refinement 559
35 More object design with GoF patterns 579
36 Package design 613
37 UML deployment and component diagrams 621
38 Designing a persistence framework with patterns 625
39 Documenting architecture : UML & the N+1 view model 655
40 More on iterative development and agile project management
673 |
|
 |
|
Excerpt. © Reprinted by permission. All rights reserved.
Thank you for reading this book! If I can answer a question, or
for consulting or coaching a team (in OOA/D, UML, modeling, iterative
and agile methods), please contact me at www.craiglarman.com.
This is a practical introduction to object-oriented analysis and design (OOA/D), and to related aspects of iterative development. 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. Educator and Web Resources
You may find related articles of interest at www.craiglarman.com.
Hundreds, if not thousands, of teachers use the book worldwide; it’s been translated into at least ten languages. 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.
PrerequisitesSome 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.
|
 |
|
Craig Larman serves as chief scientist at Valtech, a leading technology consultancy with offices throughout the United States, Europe, and Asia. He is known throughout the worldwide software community as an expert and coach in OOA/D and design patterns, agile/iterative methods, an agile approach to the Unified Process (UP), and modeling with the UML. He holds a B.S. and M.S. in computer science from Simon Fraser University in Vancouver, British Columbia.
|
 |
|
Amazon.com 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 --This text
refers to the Hardcover edition.
|
|