You are previewing Use Cases: Patterns and Blueprints.
O'Reilly logo
Use Cases: Patterns and Blueprints

Book Description

"Gunnar and Karin have not only defined a large collection of use-case patterns and examples of how specific usages are to be modeled in a use-case model, they have also provided an accurate, complete, and comprehensible description of the constructs used in use-case modeling... I am impressed by this book."

—From the Foreword by Ivar Jacobson

Employ the proven concept of design patterns to build more accurate, usable, and maintainable use-case models

This book brings together dozens of proven patterns for creating use cases that more accurately reflect real requirements, are easier to translate into working systems, and are simpler to maintain. Utilizing these patterns, architects, analysts, engineers, and managers can leverage decades of hard-earned knowledge to achieve far better results, far more quickly.

The authors carefully describe how each pattern works, what problems it is intended to solve, and the consequences associated with using it. All patterns are supported with detailed examples and platform-independent class models that demonstrate how they may be realized. All constructs and diagrams reflect the current UML 2.0 standard. This book also includes an insightful use-case primer that will be indispensable both to novices and veteran modelers seeking to become more effective.

Coverage includes

  • Modeling rules that lead to more comprehensible, maintainable, and correct models

  • Patterns for structuring, layering, mapping, sequencing, and viewing use cases more effectively

  • Blueprints for security, legacy integration, data input/ output, task scheduling, and reporting

  • Constructing use cases that separate mandatory elements from optional parts that can be delivered separately

  • Incorporating business rules in use-case modeling

  • Practical techniques for documenting use cases more effectively

  • When to use multiple patterns and blueprints together

  • Identifying and avoiding eight common mistakes in use-case modeling: guidance for designers and reviewers

  • Examples from a wide range of application domains

  • Rely on this book as the world's #1 reference to reusable use-case solutions—and as a catalyst for inspiration in all your use-case modeling projects.

    © Copyright Pearson Education. All rights reserved.

    Table of Contents

    1. Copyright
    2. The Software Patterns Series
      1. Titles in the series
    3. Foreword
    4. Preface
      1. Collecting Models and Designs
      2. This Book
      3. Organization of the Book
        1. On Patterns and Blueprints
        2. On Examples
      4. How to Use This Book
        1. If You Are an Experienced Use-Case Modeler
        2. If You Are a Novice or Inexperienced with Use Cases in Practice
        3. If You Are Not a Designer
        4. Future Use of This Book
        5. History of Use Cases
      5. Acknowledgments
    5. I. Introduction
      1. 1. Use-Case Patterns and Blueprints
        1. Reusing Experience
        2. Contents of the Catalog
          1. Use-Case Patterns
          2. Use-Case Blueprints
          3. Common Mistakes
      2. 2. Using Patterns and Blueprints in Use-Case Model Development
        1. The Internet Bank System
        2. The First Draft of the Model
        3. Applying Patterns and Blueprints
          1. Login and Logout
          2. Use-Case Sequence
          3. Legacy System
          4. Multiple Actors
          5. Future Task
          6. CRUD
          7. Access Control
          8. Business Rules
        4. The Complete Model
        5. Concluding Remarks
    6. II. Use Cases
      1. 3. Use-Case Modeling: An Introduction
      2. 4. Use Cases
        1. Use Case: A Type of Utilization Providing a Value
        2. A Gray-Box View of the System
        3. Use-Case Instance: A Specific Utilization
        4. Basic Flow and Variations
        5. Infinitely Large Models?
      3. 5. Modeling the System Environment
        1. Actor: An External User
        2. Interaction Between Use Cases and Actors
      4. 6. Structuring a Use-Case Model
      5. 7. Include: Reusing Existing Use Cases
        1. Include Relationship
        2. Documentation of the Include Relationship
        3. Dependency on Inclusion Use Cases
      6. 8. Extend: Expanding Existing Use Cases
        1. Extend Relationship
        2. Characteristics of the Extend Relationship
        3. Extension Points
        4. Conditional Extensions
        5. Documentation of the Extend Relationship
        6. Dependencies Between Extending Use Cases
      7. 9. Include vs. Extend
      8. 10. More on Extend and Extension Points
        1. Multiple Fragments of Additional Behavior
        2. Multiple Insertions
        3. More on Extension Points
      9. 11. Use-Case Generalization: Classification and Inheritance
        1. Generalization Between Use Cases
        2. Documentation of the Generalization Relationship Between Use Cases
      10. 12. Actor Generalization: Overlapping Roles
      11. 13. Describing Use Cases
        1. Documenting Use Cases
        2. Guidelines for Writing
        3. Sections of a Use-Case Description
      12. 14. Documenting a Use-Case Model
        1. Use-Case Model Survey
        2. Use-Case Diagrams
        3. Supplementary Documents
      13. 15. Mapping Use Cases onto Classes
        1. Kick-Starting the Class Modeling
        2. Analysis Models and Design Models
        3. Analysis Classes
        4. Use-Case Realization: How Objects Perform a Use Case
    7. III. Use-Case Patterns
      1. 16. Business Rules
        1. Intent
        2. Patterns
          1. Business Rules: Static Definition
            1. Model
            2. Description
            3. Applicability
            4. Type
          2. Business Rules: Dynamic Modification
            1. Model
            2. Description
            3. Applicability
            4. Type
        3. Discussion
        4. Example
        5. Analysis Model
      2. 17. Commonality
        1. Intent
        2. Patterns
          1. Commonality: Reuse
            1. Model
            2. Description
            3. Applicability
            4. Type
          2. Commonality: Addition
            1. Model
            2. Description
            3. Applicability
            4. Type
          3. Commonality: Specialization
            1. Model
            2. Description
            3. Applicability
            4. Type
          4. Commonality: Internal Reuse
            1. Model
            2. Description
            3. Applicability
            4. Type
        3. Discussion
          1. Sub-Sequence Independent of Context
          2. Additions to Existing Use Cases
          3. Similar Use Cases
          4. Commonality Within a Single Use Case
        4. Example
        5. Analysis Model
      3. 18. Component Hierarchy
        1. Intent
        2. Patterns
          1. Component Hierarchy: Black-Box with Use Cases
            1. Model
            2. Description
            3. Applicability
            4. Type
          2. Component Hierarchy: Black-Box with Operations
            1. Model
            2. Description
            3. Applicability
            4. Type
          3. Component Hierarchy: White-Box
            1. Model
            2. Description
            3. Applicability
            4. Type
        3. Discussion
          1. Replaceable Components: Black-Box Components
          2. Black-Box Components Specified with Operations
          3. Black-Box Components Specified with Use Cases
          4. White-Box Components
          5. Common Mistakes
        4. Example
        5. Analysis Model
      4. 19. Concrete Extension or Inclusion
        1. Intent
        2. Patterns
          1. Concrete Extension or Inclusion: Extension
            1. Model
            2. Description
            3. Applicability
            4. Type
          2. Concrete Extension or Inclusion: Inclusion
            1. Model
            2. Description
            3. Applicability
            4. Type
        3. Discussion
        4. Example
        5. Analysis Model
      5. 20. CRUD
        1. Intent
        2. Patterns
          1. CRUD: Complete
            1. Model
        3. Description
          1. Applicability
          2. Type
          3. CRUD: Partial
            1. Model
            2. Description
            3. Applicability
            4. Type
        4. Discussion
        5. Example
        6. Analysis Model
      6. 21. Large Use Case
        1. Intent
        2. Patterns
          1. Large Use Case: Long Sequence
            1. Model
            2. Description
            3. Applicability
            4. Type
          2. Large Use Case: Multiple Paths
            1. Model
            2. Description
            3. Applicability
            4. Type
        3. Discussion
        4. Example
        5. Analysis Model
      7. 22. Layered System
        1. Intent
        2. Patterns
          1. Layered System: Reuse
            1. Model
            2. Description
            3. Applicability
            4. Type
          2. Layered System: Addition
            1. Model
            2. Description
            3. Applicability
            4. Type
          3. Layered System: Specialization
            1. Model
            2. Description
            3. Applicability
            4. Type
          4. Layered System: Embedded
            1. Model
            2. Description
            3. Applicability
            4. Type
        3. Discussion
          1. Simple Access of Lower-Layer Information
          2. Include Lower-Layer Use Cases
          3. Extend Lower-Layer Use Cases
          4. Combinations of Relationships
          5. Generalization
        4. Example
        5. Analysis Model
          1. Simple Access of Lower-Layer Information
          2. Include Lower-Layer Use Cases
          3. Extend Lower-Layer Use Cases
          4. Specialization of a Use Case
      8. 23. Multiple Actors
        1. Intent
        2. Patterns
          1. Multiple Actors: Distinct Roles
            1. Model
            2. Description
            3. Applicability
            4. Type
          2. Multiple Actors: Common Role
            1. Model
            2. Description
            3. Applicability
            4. Type
        3. Discussion
        4. Example
        5. Analysis Model
      9. 24. Optional Service
        1. Intent
        2. Patterns
          1. Optional Service: Addition
            1. Model
            2. Description
            3. Applicability
            4. Type
          2. Optional Service: Specialization
            1. Model
            2. Description
            3. Applicability
            4. Type
          3. Optional Service: Independent
            1. Model
            2. Description
            3. Applicability
            4. Type
        3. Discussion
        4. Example
        5. Analysis Model
      10. 25. Orthogonal Views
        1. Intent
        2. Patterns
          1. Orthogonal Views: Specialization
            1. Model
            2. Description
            3. Applicability
            4. Type
          2. Orthogonal Views: Description
            1. Model
            2. Description
            3. Applicability
            4. Type
        3. Discussion
        4. Example
        5. Analysis Model
      11. 26. Use-Case Sequence
        1. Intent
        2. Patterns
          1. Use-Case Sequence
            1. Model
            2. Description
            3. Applicability
            4. Type
        3. Discussion
        4. Example
        5. Analysis Model
    8. IV. Use-Case Blueprints
      1. 27. Access Control
        1. Problem
        2. Blueprints
          1. Access Control: Embedded Check
            1. Model
            2. Description
            3. Applicability
          2. Access Control: Dynamic Security Units
            1. Model
            2. Description
            3. Applicability
          3. Access Control: Explicit Check
            1. Model
            2. Description
            3. Applicability
          4. Access Control: Internal Assignment
            1. Model
            2. Description
            3. Applicability
          5. Access Control: Implicit Details
            1. Model
            2. Description
            3. Applicability
        3. Discussion
        4. Example
        5. Analysis Model
      2. 28. Future Task
        1. Problem
        2. Blueprints
          1. Future Task: Simple
            1. Model
            2. Description
            3. Applicability
          2. Future Task: Specialization
            1. Model
            2. Description
            3. Applicability
          3. Future Task: Extraction
            1. Model
            2. Description
            3. Applicability
          4. Future Task: Performer Notification
            1. Model
            2. Description
            3. Applicability
        3. Discussion
        4. Example
        5. Analysis Model
      3. 29. Item Look-Up
        1. Problem
        2. Blueprints
          1. Item Look-Up: Standalone
            1. Model
            2. Description
            3. Applicability
          2. Item Look-Up: Result Usage
            1. Model
            2. Description
            3. Applicability
          3. Item Look-Up: Open Decision
            1. Model
            2. Description
            3. Applicability
        3. Discussion
        4. Example
        5. Analysis Model
      4. 30. Legacy System
        1. Problem
        2. Blueprints
          1. Legacy System: Embedded
            1. Model
            2. Description
            3. Applicability
          2. Legacy System: Separate
            1. Model
            2. Description
            3. Applicability
        3. Discussion
        4. Example
        5. Analysis Model
      5. 31. Login and Logout
        1. Problem
        2. Blueprints
          1. Login and Logout: Standalone
            1. Model
            2. Description
            3. Applicability
          2. Login and Logout: Action Addition
            1. Model
            2. Description
            3. Applicability
          3. Login and Logout: Reuse
            1. Model
            2. Description
            3. Applicability
          4. Login and Logout: Specialization
            1. Model
            2. Description
            3. Applicability
          5. Login and Logout: Separate
            1. Model
            2. Description
            3. Applicability
        3. Discussion
          1. Independent Use Cases
          2. Addition to Normal Login Procedure
          3. Verification Before Each Usage
          4. No Login Use Case
          5. Logout
          6. Manage User Information
        4. Example
        5. Analysis Model
      6. 32. Message Transfer
        1. Problem
        2. Blueprints
          1. Message Transfer: Deferred Delivery
            1. Model
            2. Description
            3. Applicability
          2. Message Transfer: Immediate Delivery
            1. Model
            2. Description
            3. Applicability
          3. Message Transfer: Automatic
            1. Model
            2. Description
            3. Applicability
        3. Discussion
        4. Example
        5. Analysis Model
      7. 33. Passive External Medium
        1. Problem
        2. Blueprints
          1. Passive External Medium
            1. Model
            2. Description
            3. Applicability
        3. Discussion
        4. Example
        5. Analysis Model
      8. 34. Report Generation
        1. Problem
        2. Blueprints
          1. Report Generation: Simple
            1. Model
            2. Description
            3. Applicability
          2. Report Generation: Specialization
            1. Model
            2. Description
            3. Applicability
          3. Report Generation: Dynamic Templates
            1. Model
            2. Description
            3. Applicability
        3. Discussion
        4. Example
        5. Analysis Model
      9. 35. Stream Input
        1. Problem
        2. Blueprints
          1. Stream Input: Discrete
            1. Model
            2. Description
            3. Applicability
          2. Stream Input: Analog
            1. Model
            2. Description
            3. Applicability
        3. Discussion
          1. Discrete Values
          2. Analog Stream
        4. Example
        5. Analysis Model
      10. 36. Translator
        1. Problem
        2. Blueprints
          1. Translator: Static Definition
            1. Model
            2. Description
            3. Applicability
          2. Translator: Dynamic Rules
            1. Model
            2. Description
            3. Applicability
        3. Discussion
        4. Example
        5. Analysis Model
    9. V. Common Mistakes
      1. 37. Mistake: Alternative Flow as Extension
        1. Fault
        2. Incorrect Model
          1. Model
          2. Detection
        3. Discussion
        4. Way Out
      2. 38. Mistake: Business Use Case
        1. Fault
        2. Incorrect Model
          1. Model
          2. Detection
        3. Discussion
          1. Pauses in Use Cases
        4. Way Out
      3. 39. Mistake: Communicating Use Cases
        1. Fault
        2. Incorrect Model
          1. Model
          2. Detection
        3. Discussion
        4. Way Out
      4. 40. Mistake: Functional Decomposition
        1. Fault
        2. Incorrect Model
          1. Model
          2. Detection
        3. Discussion
        4. Way Out
      5. 41. Mistake: Micro Use Cases
        1. Fault
        2. Incorrect Model
          1. Model
          2. Detection
        3. Discussion
        4. Way Out
      6. 42. Mistake: Mix of Abstraction Levels
        1. Fault
        2. Incorrect Model
          1. Model
          2. Detection
        3. Discussion
        4. Way Out
      7. 43. Mistake: Multiple Business Values
        1. Fault
        2. Incorrect Model
          1. Model
          2. Detection
        3. Discussion
        4. Way Out
      8. 44. Mistake: Security Levels with Actors
        1. Fault
        2. Incorrect Model
          1. Model
          2. Detection
        3. Discussion
        4. Way Out
    10. Glossary
    11. References