Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process, 2/E
Craig Larman

ISBN-10: 0130925691
ISBN-13: 9780130925695

Publisher: Prentice Hall
Copyright: 2002
Format: Cloth; 656 pp
Status: Out of Print

Suggested retail price: $52.00
This item is out of print and is no longer available for purchase.

For all undergraduate courses in object-oriented analysis and design. Builds on the overwhelming success of the First Edition. The topics covered in this book are increasingly recognized as core competencies by virtually all contemporary computer science departments, and in virtually all computer science curricula.

This book teaches object-oriented analysis and design through iterations of a single, cohesive case study—incrementally introducing key OO&AD skills while emphasizing practical activities and principles. Renowned object technology leader Craig Larman introduces the popular UML 1.4 diagramming notation as a superior vehicle for expressing OO&AD thoughts. Since OOA&D should be taught (and practiced) within a coherent process, he presents a lightweight, agile version of the market-leading Unified Process (UP). Within his case study's context, he also introduces patterns—robust, best-practice solutions to the most widely encountered design problems.

  • NEW - Bonus teacher's materials—http://www.phptr.com/larman/. Includes PowerPoint lectures, sample exam, and more.
  • NEW - In-depth coverage of UML 1.4, the latest version of the world's leading OOA&D notation.
    • Gives students practical expertise with the world's de facto standard for communicating analysis and design results, while integrating UML into a broader context—so students truly understand OOA&D, not just notation.

  • The field's most accessible OO&AD introduction—Written with students in mind, this book presents a measured, carefully organized OO&AD overview based on the author's unparalleled experience training developers in object-oriented techniques.
    • Covers everything the student needs to know about object-oriented design, explaining essential concepts in terms that are exceptionally easy to understand—and use.

  • Extensive set of practical learning aids—Includes UML notation summaries, class category checklists, and pattern summaries.
    • Gives students fast access to essential resources for object oriented analysis and design—and makes the book a more useful reference once they have mastered they subject.

  • Proven pedagogy—Based on Craig Larman's proven OOA&D courses taken by over 10,000 students and software professionals.
    • Students can understand complex concepts far more rapidly, by drawing upon explanations that have been tested and refined in real-world instruction.

  • Highly accessible introduction to patterns—Introduces patterns through a series of simple—yet extremely useful—examples, woven into the context of a realistic case study.
    • Patterns codify the object-oriented design field's best practices and wisdom. They are currently one of the most exciting topics in computing; however, most treatments of the subject are difficult and abstruse. This book helps students understand the value of patterns far more rapidly, by showing them at use in the real world—not merely as disconnected, abstract ideas.

  • Detailed treatment of several original "Design Patterns"—Includes coverage of several of the classic patterns first introduced by Erich Gamma and the "Gang of Four."
    • Helps students master patterns that helped to launch the "patterns revolution"—and are among the most widely used in real-world application design.

  • Pragmatic coverage of iterative, adaptive development—Presents analysis and design techniques that are crucial to success in today's rapid development environments.
    • Prepares students to succeed in the most effective enterprise development environments.

  • Realistic, distilled overview of the key aspects of the Unified Process—Distills the Rational Unified Process, explaining the UP concepts that offer students and developers the greatest value for the least effort.
    • Gives students basic mastery of the Unified Process, which is becoming the world's de facto standard for organizing development processes.

  • Extensive Java code examples.
    • Helps students learn how designs can be translated into actual working systems using one of the world's most widely-used and fastest-growing languages.

  • Endorsements by leading object design experts—"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 Distilledand Refactoring. "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 Patternsand Pattern Hatching.
    • Gives students confidence that the material they are learning is authoritative, accurate, and reflective of real-world practice.

  • Bonus teacher's materials—http://www.phptr.com/larman/. Includes PowerPoint lectures, sample exam, and more.
  • In-depth coverage of UML 1.4, the latest version of the world's leading OOA&D notation.
    • Gives students practical expertise with the world's de facto standard for communicating analysis and design results, while integrating UML into a broader context—so students truly understand OOA&D, not just notation.



Foreword.


Preface.

I. INTRODUCTION.

1. Object-Oriented Analysis and Design.

Applying UML and Patterns in OOA/D. Assigning Responsibilities. What Is Analysis and Design? What Is Object-Oriented Analysis and Design? An Example. The UML. Further Readings.

2. Iterative Development and the Unified Process.

The Most Important UP Idea: Iterative Development. Additional UP Best Practices and Concepts. The UP Phases and Schedule-Oriented Terms. The UP Disciplines (was Workflows). Process Customization and the Development Case. The Agile UP. The Sequential “Waterfall” Lifecycle. You Know You Didn't Understand the UP When…. Further Readings.

3. Case Study: The NextGen POS System.

The NextGen POS System. Architectural Layers and Case Study Emphasis. The Book's Strategy: Iterative Learning and Development.

II. INCEPTION.

4. Inception.

Inception: An Analogy. Inception May Be Very Brief. What Artifacts May Start in Inception? You Know You Didn't Understand Inception When…

5. Understanding Requirements.

Types of Requirements. Further Readings.

6. Use-Case Model: Writing Requirements in Context.

Goals and Stories. Background. Use Cases and Adding Value. Use Cases and Functional Requirements. Use Case Types and Formats. Fully Dressed Example: Process Sale. Explaining the Sections. Goals and Scope of a Use Case. Finding Primary Actors, Goals, and Use Cases. Congratulations: Use Cases Have Been Written, and Are Imperfect. Write Use Cases in an Essential UI-Free Style. Actors. Use Case Diagrams. Requirements in Context and Low-Level Feature Lists. Use Cases Are Not Object-Oriented. Use Cases Within the UP. Case Study: Use Cases in the NextGen Inception Phase. Further Readings. UP Artifacts and Process Context.

7. Identifying Other Requirements.

NextGen POS Examples. NextGen Example: (Partial) Supplementary Specification. Commentary: Supplementary Specification. NextGen Example: (Partial) Vision. Commentary: Vision. NextGen Example: A (Partial) Glossary. Commentary: Glossary (Data Dictionary). Reliable Specifications: An Oxymoron? Online Artifacts at the Project Website. Not Much UML During Inception? Other Requirement Artifacts Within the UP. Further Readings. UP Artifacts and Process Context.

8. From Inception to Elaboration.

Checkpoint: What Happened in Inception? On to Elaboration. Planning the Next Iteration. Iteration 1 Requirements and Emphasis: Fundamental OOA/D Skills. What Artifacts May Start in Elaboration? You Know You Didn't Understand Elaboration When…

III. ELABORATION ITERATION.

9. Use-Case Model: Drawing System Sequence Diagrams.

System Behavior. System Sequence Diagrams. Example of an SSD. Inter-System SSDs. SSDs and Use Cases. System Events and the System Boundary. Naming System Events and Operations. Showing Use Case Text. SSDs and the Glossary. SSDs Within the UP. Further Readings. UP Artifacts.

10. Domain Model: Visualizing Concepts.

Domain Models. Conceptual Class Identification. Candidate Conceptual Classes for the Sales Domain. Domain Modeling Guidelines. Resolving Similar Conceptual Classes-Register vs. “POST”. Modeling the Unreal World. Specification or Description Conceptual Classes. UML Notation, Models, and Methods: Multiple Perspectives. Lowering the Representational Gap. Example: The NextGen POS Domain Model. Domain Models Within the UP. Further Readings. UP Artifacts.

11. Domain Model: Adding Associations.

Associations. The UML Association Notation. Finding Associations-Common Associations List. Association Guidelines. Roles. How Detailed Should Associations Be? Naming Associations. Multiple Associations Between Two Types. Associations and Implementation. NextGen POS Domain Model Associations. NextGen POS Domain Model.

12. Domain Model: Adding Attributes.

Attributes. UML Attribute Notation. Valid Attribute Types. Non-primitive Data Type Classes. Design Creep: No Attributes as Foreign Keys. Modeling Attribute Quantities and Units. Attributes in the NextGen Domain Model. Multiplicity From SalesLineItem to Item. Domain Model Conclusion.

13. Use-Case Model: Adding Detail with Operation Contracts.

Contracts. Example Contract: enterItem. Contract Sections. Postconditions. Discussion-enterItem Postconditions. Writing Contracts Leads to Domain Model Updates. When Are Contracts Useful? Contracts vs. Use Cases? Guidelines: Contracts. NextGen POS Example: Contracts. Changes to the Domain Model. Contracts, Operations, and the UML. Operation Contracts Within the UP. Further Readings.

14. From Requirements to Design in this Iteration.

Iteratively Do the Right Thing, Do the Thing Right. Didn't That Take Weeks To Do? No, Not Exactly. On to Object Design.

15. Interaction Diagram Notation.

Sequence and Collaboration Diagrams. Example Collaboration Diagram: makePayment. Example Sequence Diagram: makePayment. Interaction Diagrams Are Valuable. Common Interaction Diagram Notation. Basic Collaboration Diagram Notation. Basic Sequence Diagram Notation.

16. GRASP: Designing Objects with Responsibilities.

Responsibilities and Methods. Responsibilities and Interaction Diagrams. Patterns. GRASP: Patterns of General Principles in Assigning Responsibilities. The UML Class Diagram Notation. Information Expert (or Expert). Creator. Low Coupling. High Cohesion. Controller. Object Design and CRC Cards. Further Readings.

17. Design Model: Use-Case Realizations with GRASP Patterns.

Use-Case Realizations. Artifact Comments. Use-Case Realizations for the NextGen Iteration. Object Design: makeNewSale. Object Design: enterItem. Object Design: endSale. Object Design: makePayment. Object Design: startUp. Connecting the UI Layer to the Domain Layer. Use-Case Realizations Within the UP. Summary.

18. Design Model: Determining Visibility.

Visibility Between Objects. Visibility. Illustrating Visibility in the UML.

19. Design Model: Creating Design Class Diagrams.

When to Create DCDs. Example DCD. DCD and UP Terminology. Domain Model vs. Design Model Classes. Creating a NextGen POS DCD. Notation for Member Details. DCDs, Drawing, and CASE Tools. DCDs Within the UP. UP Artifacts.

20. Implementation Model: Mapping Designs to Code.

Programming and the Development Process. Mapping Designs to Code. Creating Class Definitions from DCDs. Creating Methods from Interaction Diagrams. Container/Collection Classes in Code. Exceptions and Error Handling. Defining the Sale—makeLineItem Method. Order of Implementation. Test-First Programming. Summary of Mapping Designs to Code. Introduction to the Program Solution.

IV. ELABORATION ITERATION 2.

21. Iteration 2 and its Requirements.

Iteration 2 Emphasis: Object Design and Patterns. From Iteration 1 to 2. Iteration 2 Requirements. Refinement of Analysis-oriented Artifacts in this Iteration.

22. GRASP: More Patterns for Assigning Responsibilities.

Polymorphism. Pure Fabrication. Indirection. Protected Variations.

23. Designing Use-Case Realizations with GoF Design Patterns.

Adapter (GoF). “Analysis” Discoveries During Design: Domain Model. Factory (GoF). Singleton (GoF). Conclusion of the External Services with Varying Interfaces Problem. Strategy (GoF). Composite (GoF) and Other Design Principles. Facade (GoF). Observer/Publish-Subscribe/Delegation Event Model (GoF). Conclusion. Further Readings.

V. ELABORATION ITERATION 3.

24. Iteration 3 and Its Requirements.

Iteration 3 Requirements. Iteration 3 Emphasis.

25. Relating Use Cases.

The include Relationship. Terminology: Concrete, Abstract, Base, and Addition Use Cases. The extend Relationship. The generalize Relationship. Use Case Diagrams.

26. Modeling Generalization.

New Concepts for the Domain Model. Generalization. Defining Conceptual Superclasses and Subclasses. When to Define a Conceptual Subclass. When to Define a Conceptual Superclass. NextGen POS Conceptual Class Hierarchies. Abstract Conceptual Classes. Modeling Changing States. Class Hierarchies and Inheritance in Software.

27. Refining the Domain Model.

Association Classes. Aggregation and Composition. Time Intervals and Product Prices-Fixing an Iteration 1 “Error”. Association Role Names. Roles as Concepts vs. Roles in Associations. Derived Elements. Qualified Associations. Reflexive Associations. Ordered Elements. Using Packages to Organize the Domain Model.

28. Adding New SSDs and Contracts.

New System Sequence Diagrams. New System Operations. New System Operation Contracts.

29. Modeling Behavior in Statechart Diagrams.

Events, States, and Transitions. Statechart Diagrams. Statechart Diagrams in the UP? Use Case Statechart Diagrams. Use Case Statechart Diagrams for the POS Application. Classes that Benefit from Statechart Diagrams. Illustrating External and Interval Events. Additional Statechart Diagram Notation. Further Readings.

30. Designing the Logical Architecture with Patterns.

Software Architecture. Architectural Pattern: Layers. The Model-View Separation Principle. Further Readings.

31. Organizing the Design and Implementation Model Packages.

Package Organization Guidelines. More UML Package Notation. Further Readings.

32. Introduction to Architectural Analysis and the SAD.

Architectural Analysis. Types and Views of Architecture. The Science: Identification and Analysis of Architectural Factors. Example: Partial NextGen POS Architectural Factor Table. The Art: Resolution of Architectural Factors. Summary of Themes in Architectural Analysis. Architectural Analysis within the UP. Further Readings.

33. Designing More Use-Case Realizations with Objects and Patterns.

Failover to Local Services; Performance with Local Caching. Handling Failure. Failover to Local Services with a Proxy (GoF). Designing for Non-Functional or Quality Requirements. Accessing External Physical Devices with Adapters; Buy vs. Build. Abstract Factory (GoF) for Families of Related Objects. Handling Payments with Polymorphism and Do It Myself. Conclusion.

34. Designing a Persistence Framework with Patterns.

The Problem: Persistent Objects. The Solution: A Persistence Service from a Persistence Framework. Frameworks. Requirements for the Persistence Service and Framework. Key Ideas. Pattern: Representing Objects as Tables. UML Data Modeling Profile. Pattern: Object Identifier. Accessing a Persistence Service with a Facade. Mapping Objects: Database Mapper or Database Broker Pattern. Framework Design with the Template Method Pattern. Materialization with the Template Method Pattern. Configuring Mappers with a MapperFactory. Pattern: Cache Management. Consolidating and Hiding SQL Statements in One Class. Transactional States and the State Pattern. Designing a Transaction with the Command Pattern. Lazy Materialization with a Virtual Proxy. How to Represent Relationships in Tables. PersistentObject Superclass and Separation of Concerns. Unresolved Issues.

VI. SPECIAL TOPICS.

35. On Drawing and Tools.

On Speculative Design and Visual Thinking. Suggestions for UML Drawing Within the Development Process. Tools and Sample Features. Example Two.

36. Introduction to Iterative Planning and Project Issues.

Ranking Requirements. Ranking Project Risks. Adaptive vs. Predictive Planning. Phase and Iteration Plans. Iteration Plan: What to Do in the Next Iteration? Requirements Tracking Across Iterations. The (In)Validity of Early Estimates. Organizing Project Artifacts. Some Team Iteration Scheduling Issues. You Know You Didn't Understand Planning in the UP When… Further Readings.

37. Comments on Iterative Development and the UP.

Additional UP Best Practices and Concepts. The Construction and Transition Phases. Other Interesting Practices. Motivations for Timeboxing an Iteration. The Sequential “Waterfall” Lifecycle. Usability Engineering and User Interface Design. The UP Analysis Model. The RUP Product. The Challenge and Myths of Reuse.

38. More UML Notation.

General Notation. Implementation Diagrams. Template (Parameterized, Generic) Class. Activity Diagrams.

Bibliography.

Glossary.

Index.

CRAIG LARMAN serves as Director of Process and Methodology at Valtech, a leading international e-business consulting group. He is known throughout the international software community as an expert in object technologies, patterns, the UML, modeling, and iterative development. Since the 1980s, Larman has been helping people learn objects and iterative development, having personally guided thousands of developers. He is also the co-author of Java 2 Performance and Idiom Guide, and holds a B.Sc. and M.Sc. in Computer Science from Simon Fraser University in Vancouver, B.C.

"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; it has been translated into seven 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.

Put simply, the book shows newcomers to OOA/D how to "think in objects." It does so 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, and * the Unified Process. For a more detailed list of topics, please see the accompanying table of contents.

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

View a Sample Chapter PDF: /samplechapter/0130925691.pdf

Pearson Higher Education offers special pricing when you choose to package your text with other student resources. If you're interested in creating a cost-saving package for your students, contact your Pearson Higher Education representative for pricing and ordering information.

Pearson Higher Education offers special pricing when you choose to package your text with other student resources. If you're interested in creating a cost-saving package for your students contact your Pearson Higher Education representative.


Copyright ©2008 Pearson Education. All rights reserved. Legal Notice | Privacy Policy | Permissions