Applying UML and Patterns 3/e
暫譯: 應用UML與設計模式 第3版

Craig Larman

買這商品的人也買了...

相關主題

商品描述

Description:

Craig Larman again delivers a clear path for students to learn object-oriented analysis and design through his clear and precise writing style.  Larman teaches 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.

 

Table of Contents:

Foreword.

Preface.

I. INTRODUCTION.

1. Object-Oriented Analysis and Design.

    What Will You Learn? Is it Useful?

    The Most Important Learning Goal?

    What is Analysis and Design?

    What is Object-Oriented Analysis and Design?

    A Short Example.

    What is the UML?

    Visual Modeling is a Good Thing.

    History.

    Recommended Resources.

2. Iterative, Evolutionary, and Agile.

    What is the UP? Are Other Methods Complementary?

    What is Iterative and Evolutionary Development?

    What About the Waterfall Lifecycle?

    How to do Iterative and Evolutionary Analysis and Design?

    What is Risk-Driven and Client-Driven Iterative Planning?

    What are Agile Methods and Attitudes?

    What is Agile Modeling?

    What is an Agile UP?

    Are There Other Critical UP Practices?

    What are the UP Phases?

    What are the UP Disciplines?

    How to Customize the Process? The UP Development Case.

    You Know You Didn't Understand Iterative Development or the UP When.

    History.

    Recommended Resources.

3. Case Studies.

    What is and isn't Covered in the Case Studies?

    Case Study Strategy: Iterative Development + Iterative Learning.

    Case One: The NextGen POS System.

    Case Two: The Monopoly Game System.

II. INCEPTION.

4. Inception is Not the Requirements Phase.

    What is Inception?

    How Long is Inception?

    What Artifacts May Start in Inception?

    You Know You Didn't Understand Inception When...

    How Much UML During Inception?

5. Evolutionary Requirements.

    Definition: Requirements.

    Evolutionary vs. Waterfall Requirements.

    What are Skillful Means to Find Requirements?

    What are the Types and Categories of Requirements?

    How are Requirements Organized in UP Artifacts?

    Does the Book Contain Examples of These Artifacts?

    Recommended Resources.

6. Use Cases.

    Example.

    Definition: What are Actors, Scenarios, and Use Cases?

    Use Cases and the Use-Case Model.

    Motivation: Why Use Cases?

    Definition: Are Use Cases Functional Requirements?

    Definition: What are Three Kinds of Actors?

    Notation: What are Three Common Use Case Formats?

    Example: Process Sale, Fully Dressed Style.

    What do the Sections Mean?

    Notation: Are There Other Formats? A Two-Column Variation.

    Guideline: Write in an Essential UI-Free Style.

    Guideline: Write Terse Use Cases.

    Guideline: Write Black-Box Use Cases.

    Guideline: Take an Actor and Actor-Goal Perspective.

    Guideline: How to Find Use Cases.

    Guideline: What Tests Can Help Find Useful Use Cases?

    Applying UML: Use Case Diagrams.

    Applying UML: Activity Diagrams.

    Motivation: Other Benefits of Use Cases? Requirements in Context.

    Example: Monopoly Game.

    Process: How to Work With Use Cases in Iterative Methods?

    History.

    Recommended Resources.

7. Other Requirements.

    How Complete are these Examples?

    Guideline: Should We Analyze These Thoroughly During Inception?

    Guideline: Should These Artifacts be at the Project Website?

    NextGen Example: (Partial) Supplementary Specification.

    Commentary: Supplementary Specification.

    NextGen Example: (Partial) Vision.

    Commentary: Vision.

    NextGen Example: A (Partial) Glossary.

    Commentary: Glossary (Data Dictionary).

    NextGen Example: Business Rules (Domain Rules).

    Commentary: Domain Rules.

    Process: Evolutionary Requirements in Iterative Methods.

    Recommended Resources.

III. ELABORATION ITERATION 1-BASICS.

8. Iteration 1-Basics.

    Iteration 1 Requirements and Emphasis: Core OOA/D Skills.

    Process: Inception and Elaboration.

    Process: Planning the Next Iteration.

9. Domain Models.

    Example.

    What is a Domain Model?

    Motivation: Why Create a Domain Model?

    Guideline: How to Create a Domain Model?

    Guideline: How to Find Conceptual Classes?

    Example: Find and Draw Conceptual Classes.

    Guideline: Agile Modeling-Sketching a Class Diagram.

    Guideline: Agile Modeling-Maintain the Model in a Tool?

    Guideline: Report Objects-Include 'Receipt' in the Model?

    Guideline: Think Like a Mapmaker; Use Domain Terms.

    Guideline: How to Model the Unreal World?

    Guideline: A Common Mistake with Attributes vs. Classes.

    Guideline: When to Model with 'Description' Classes?

    Associations.

    Example: Associations in the Domain Models.

    Attributes.

    Example: Attributes in the Domain Models.

    Conclusion: Is the Domain Model Correct?

    Process: Iterative and Evolutionary Domain Modeling.

    Recommended Resources.

10. System Sequence Diagrams.

    Example: NextGen SSD.

    What are System Sequence Diagrams?

    Motivation: Why Draw an SSD?

    Applying UML: Sequence Diagrams.

    What is the Relationship Between SSDs and Use Cases?

    How to Name System Events and Operations?

    How to Model SSDs Involving Other External Systems?

    What SSD Information to Place in the Glossary?

    Example: Monopoly SSD.

    Process: Iterative and Evolutionary SSDs.

    History and Recommended Resources.

11. Operation Contracts.

    Example.

    Definition: What are the Sections of a Contract?

    Definition: What is a System Operation?

    Definition: Postconditions.

    Example: enterItem Postconditions.

    Guideline: Should We Update the Domain Model?

    Guideline: When Are Contracts Useful?

    Guideline: How to Create and Write Contracts.

    Example: NextGen POS Contracts.

    Example: Monopoly Contracts.

    Applying UML: Operations, Contracts, and the OCL.

    Process: Operation Contracts Within the UP.

    History.

    Recommended Resources.

12. Requirements to Design-Iteratively.

    Iteratively Do the Right Thing, Do the Thing Right.

    Provoking Early Change.

    Didn't All That Analysis and Modeling Take Weeks To Do?

13. Logical Architecture and UML Package Diagrams.

    Example.

    What is the Logical Architecture? And Layers?

    What Layers are the Focus in the Case Studies?

    What is Software Architecture?

    Applying UML: Package Diagrams.

    Guideline: Design with Layers.

    Guideline: The Model-View Separation Principle.

    What's the Connection Between SSDs, System Operations, and Layers?

    Example: NextGen Logical Architecture and Package Diagram.

    Example: Monopoly Logical Architecture?

    Recommended Resources.

14. On to Object Design.

    Agile Modeling and Lightweight UML Drawing.

    UML CASE Tools.

    How Much Time Spent Drawing UML Before Coding?

    Designing Objects: What are Static and Dynamic Modeling?

    The Importance of Object Design Skill over UML Notation Skill.

    Other Object Design Techniques: CRC Cards.

15. UML Interaction Diagrams.

    Sequence and Communication Diagrams.

    Novice UML Modelers Don't Pay Enough Attention to Interaction Diagrams!

    Common UML Interaction Diagram Notation.

    Basic Sequence Diagram Notation.

    Basic Communication Diagram Notation.

16. UML Class Diagrams.

    Applying UML: Common Class Diagram Notation.

    Definition: Design Class Diagram.

    Definition: Classifier.

    Ways to Show UML Attributes: Attribute Text and Association Lines.

    Note Symbols: Notes, Comments, Constraints, and Method Bodies.

    Operations and Methods.

    Keywords.

    Stereotypes, Profiles, and Tags.

    UML Properties and Property Strings.

    Generalization, Abstract Classes, Abstract Operations.

    Dependency.

    Interfaces.

    Composition Over Aggregation.

    Constraints.

    Qualified Association.

    Association Class.

    Singleton Classes.

    Template Classes and Interfaces.

    User-Defined Compartments.

    Active Class.

    What's the Relationship Between Interaction and Class Diagrams?

17. GRASP: Designing Objects with Responsibilities.

    UML versus Design Principles.

    Object Design: Example Inputs, Activities, and Outputs.

    Responsibilities and Responsibility-Driven Design.

    GRASP: A Methodical Approach to Basic OO Design.

    What's the Connection Between Responsibilities, GRASP, and UML Diagrams?

    What are Patterns?

    Where are We Now?

    A Short Example of Object Design with GRASP.

    Applying GRASP to Object Design.

    Creator.

    Information Expert (or Expert).

    Low Coupling.

    Controller.

    High Cohesion.

    Recommended Resources.

18. Object Design Examples with GRASP.

    What is a Use Case Realization?

    Artifact Comments.

    What's Next?

    Use Case Realizations for the NextGen Iteration.

    Use Case Realizations for the Monopoly Iteration.

    Process: Iterative and Evolutionary Object Design.

    Summary.

19. Designing for Visibility.

    Visibility Between Objects.

    What is Visibility?

20. Mapping Designs to Code.

    Programming and Iterative, Evolutionary Development.

    Mapping Designs to Code.

    Creating Class Definitions from DCDs.

    Creating Methods from Interaction Diagrams.

    Collection Classes in Code.

    Exceptions and Error Handling.

    Defining the Sale.makeLineItem Method.

    Order of Implementation.

    Test-Driven or Test-First Development.

    Summary of Mapping Designs to Code.

    Introduction to the NextGen POS Program Solution.

    Introduction to the Monopoly Program Solution.

21. Test-Driven Development and Refactoring.

    Test-Driven Development.

    Refactoring.

    Recommended Resources.

IV. ELABORATION ITERATION 2-MORE PATTERNS.

22. UML Tools and UML as Blueprint.

    Forward, Reverse, and Round-Trip Engineering.

    What is a Common Report of Valuable Features?

    What to Look For in a Tool?

    If Sketching UML, How to Update the Diagrams After Coding?

    Recommended Resources.

23. Quick Analysis Update.

    Case Study: NextGen POS.

    Case Study: Monopoly.

24. Iteration 2-More Patterns.

    From Iteration 1 to 2.

    Iteration-2 Requirements and Emphasis: Object Design and Patterns.

25. GRASP: More Objects with Responsibilities.

    Polymorphism.

    Pure Fabrication.

    Indirection.

    Protected Variations.

26. Applying GoF Design Patterns.

    Adapter (GoF).

    Some GRASP Principles as a Generalization of Other Patterns.

    "Analysis" Discoveries During Design: Domain Model.

    Factory.

    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.

    Recommended Resources.

V. ELABORATION ITERATION 3-INTERMEDIATE TOPICS.

27. Iteration 3-Intermediate Topics.

    NextGen POS.

    Monopoly.

28. UML Activity Diagrams and Modeling.

    Example.

    How to Apply Activity Diagrams?

    More UML Activity Diagram Notation.

     Guidelines.

    Example: NextGen Activity Diagram.

    Process: Activity Diagrams in the UP.

    Background.

29. UML State Machine Diagrams and Modeling.

    Example.

    Definitions: Events, States, and Transitions.

    How to Apply State Machine Diagrams?

    More UML State Machine Diagram Notation.

    Example: UI Navigation Modeling with State Machines.

    Example: NextGen Use Case State Machine Diagram.

    Process: State Machine Diagrams in the UP.

    Recommended Resources.

30. Relating Use Cases.

    The include Relationship.

    Terminology: Concrete, Abstract, Base, and Addition Use Cases.

    The extend Relationship.

    The generalize Relationship.

    Use Case Diagrams.

31. More SSDs and Contracts.

    NextGen POS.

32. Domain Model Refinement.

    New Concepts for the NextGen 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.

    Association Classes.

    Aggregation and Composition.

    Time Intervals and Product Prices-Fixing an Iteration 1 "Error".

    Association Role Names.

    Roles as Concepts versus Roles in Associations.

    Derived Elements.

    Qualified Associations.

    Reflexive Associations.

    Using Packages to Organize the Domain Model.

    Example: Monopoly Domain Model Refinements.

33. Architectural Analysis.

    Process: When Do We Start Architectural Analysis?

    Definition: Variation and Evolution Points.

    Architectural Analysis.

    Common Steps in Architectural Analysis.

    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.

    Process: Iterative Architecture in the UP.

    Recommended Resources.

34. Logical Architecture Refinement.

    Example: NextGen Logical Architecture.

    Collaborations with the Layers Pattern.

    Other Layer Pattern Issues.

    Model-View Separation and "Upward" Communication.

    Recommended Resources.

35. More Object Design with GoF Patterns.

    Example: NextGen POS.

    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.

    Abstract Factory (GoF) for Families of Related Objects.

    Handling Payments with Polymorphism and Do It Myself.

    Example: Monopoly.

    Conclusion.

36. Package Design.

    Package Organization Guidelines.

    Recommended Resources.

37. UML Deployment and Component Diagrams.

    Deployment Diagrams.

    Component Diagrams.

38. 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 Façade.

    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.

39. Documenting Architecture: UML & the N+1 View Model.

    The SAD and Its Architectural Views.

    Notation: The Structure of a SAD.

    Example: A NextGen POS SAD.

    Example: A Jakarta Struts SAD.

    Process: Iterative Architectural Documentation.

    Recommended Resources.

VI. SPECIAL TOPICS

40. More on Iterative Development and Agile Project Management.

    How to Plan an Iteration?

    Adaptive versus Predictive Planning.

    Phase and Iteration Plans.

    How to Plan Iterations with Use Cases and Scenarios?

    The (In)Validity of Early Estimates.

    Organizing Project Artifacts.

    You Know You Didn't Understand Iterative Planning When...

Recommended Resources.

Bibliography.

Glossary.

Index.

商品描述(中文翻譯)

描述:

Craig Larman 再次透過他清晰而精確的寫作風格,為學生提供了一條學習物件導向分析與設計(Object-Oriented Analysis and Design, OOA/D)的明確道路。Larman 教導 OOA/D 的新手如何「以物件思考」,透過呈現一個單一且連貫的案例研究的三個迭代,逐步介紹成功所需的需求、OOA/D 活動、原則和模式。

目錄:

前言。

序言。

I. 介紹。

1. 物件導向分析與設計。

您將學到什麼?這有用嗎?

最重要的學習目標是什麼?

什麼是分析與設計?

什麼是物件導向分析與設計?

簡短範例。

什麼是 UML?

視覺建模是一件好事。

歷史。

推薦資源。

2. 迭代、演進與敏捷。

什麼是 UP?其他方法是互補的嗎?

什麼是迭代與演進開發?

瀑布生命週期怎麼樣?

如何進行迭代與演進分析與設計?

什麼是風險驅動與客戶驅動的迭代規劃?

什麼是敏捷方法與態度?

什麼是敏捷建模?

什麼是敏捷 UP?

還有其他關鍵的 UP 實踐嗎?

UP 的階段是什麼?

UP 的學科是什麼?

如何自訂流程?UP 開發案例。

當您知道您不理解迭代開發或 UP 時。

歷史。

推薦資源。

3. 案例研究。

案例研究中涵蓋了什麼和未涵蓋的內容?

案例研究策略:迭代開發 + 迭代學習。

案例一:NextGen POS 系統。

案例二:大富翁遊戲系統。

II. 啟始。

4. 啟始不是需求階段。

什麼是啟始?

啟始持續多久?

啟始中可能開始的工件有哪些?

當您知道您不理解啟始時...

啟始期間需要多少 UML?

5. 演進需求。

定義:需求。

演進需求與瀑布需求的區別。

尋找需求的巧妙方法是什麼?

需求的類型和分類是什麼?

在 UP 工件中,需求是如何組織的?

本書是否包含這些工件的範例?

推薦資源。

6. 使用案例。

範例。

定義:什麼是角色、場景和使用案例?

使用案例與使用案例模型。

動機:為什麼使用案例?

定義:使用案例是功能需求嗎?

定義:三種角色是什麼?

符號:三種常見的使用案例格式是什麼?

範例:處理銷售,完整風格。

各部分的意義是什麼?

符號:還有其他格式嗎?兩欄變體。

指導方針:以基本無 UI 的風格撰寫。

指導方針:撰寫簡潔的使用案例。

指導方針:撰寫黑箱使用案例。

指導方針:從角色和角色目標的角度看。

指導方針:如何尋找使用案例。

指導方針:哪些測試可以幫助找到有用的使用案例?

應用 UML:使用案例圖。

應用 UML:活動圖。

動機:使用案例的其他好處?需求的背景。