You are previewing Patterns for Effective Use Cases.
O'Reilly logo
Patterns for Effective Use Cases

Book Description

Use cases have become an integral part of modeling software requirements, but many software developers are discovering that writing effective use cases is more difficult than they had anticipated. An understanding of the basic principles of use cases is not enough. Software developers need a source of objective criteria by which to judge quality and effectiveness.

Patterns for Effective Use Cases provides this set of objective criteria. Written by experienced use case practitioners, this book fills a critical information gap by presenting a pattern language that contains over thirty patterns, providing simple, elegant, and proven solutions to the most common problems in use case development. These patterns distill and define the properties and characteristics of quality use cases. As such, they facilitate the development of original use cases and provide a diagnostic tool for evaluating existing ones.

The book opens with a review of use cases and pattern fundamentals, along with a discussion of the requirements-gathering team. These patterns address the use case development process, the internal structure of use cases, and the relationships among use cases within the system as a whole. Examples of patterns include:

  • BreadthBeforeDepth

  • VisibleBoundary

  • EverUnfoldingStory

  • IntentionRevealingName

  • PreciseAndReadable

  • LeveledSteps

  • InterruptsAsExtensions

  • RedistributeTheWealth

Each pattern discussion includes at least one example demonstrating its real-world application, highlighting both the benefits of using the pattern and the consequences of not doing so. In addition, the book presents guidelines for the effective use of UML with relevant patterns.

Anyone involved in use case writing or requirements gathering will find Patterns for Effective Use Cases an indispensable handbook and reference.



0201721848B07302002

Table of Contents

  1. Copyright
    1. Dedication
  2. Structure: The Use Case Set
  3. Structure: The Use Case
  4. Structure: The Scenario
  5. Structure: The Step
  6. Foreword
  7. Preface
    1. Audience
    2. Organization
    3. How to Use This Book
    4. What about UML?
    5. Why Don't We Use a Single Use Case Template for the Examples?
    6. The Agile Software Development Series
    7. Pattern Language Heritage
  8. Acknowledgments
  9. 1. What Is a Quality Use Case?
    1. 1.1. Why Use Cases at All?
    2. 1.2. What's So Hard about Telling Good Stories?
    3. 1.3. Why a Use Case Pattern Language?
    4. 1.4. What Are Patterns?
    5. 1.5. How Should I Use This Pattern Language?
    6. 1.6. What Is the Use Case Pattern Form?
      1. Stepping through a Sample Pattern
        1. The Name
        2. A Picture
        3. The Context
        4. The Problem Statement
        5. The Metaphoric Story
        6. The Forces Affecting the Problem
        7. The Solution
        8. The Examples
    7. 1.7. Organization of the Pattern Language
      1. Development Patterns
        1. The Team
        2. The Process
        3. Editing
      2. Structural Patterns
        1. Use Case Sets
        2. Use Cases
        3. Scenarios and Steps
        4. Relationships
    8. 1.8. Supplement: A Brief Tutorial on Writing Use Cases
  10. 2. The Team
    1. 2.1. Team Organizational Issues
    2. 2.2. SmallWritingTeam
      1. Examples
        1. Facilitating Large Groups: No Design without Representation
        2. Large Groups and Frequent Checkpoints
    3. 2.3. ParticipatingAudience
      1. Examples
        1. The Job Flow Engine
        2. Making Movies
        3. To the Moon
    4. 2.4. BalancedTeam
      1. Examples
        1. Lack of Diversity
    5. 2.5. Trade-offs and Collaborations
  11. 3. The Process
    1. 3.1. BreadthBeforeDepth
      1. Examples
    2. 3.2. SpiralDevelopment
      1. Examples
        1. Wings Over the World
        2. A More Literary Example
    3. 3.3. MultipleForms
      1. Examples
        1. Batch Job Distribution
        2. Purchasing for a Business
    4. 3.4. TwoTierReview
      1. Examples
        1. Wings Over the World (Continued)
        2. The Programmer Who Cried Review
    5. 3.5. QuittingTime
      1. Examples
        1. Wings Over the World (Continued)
    6. 3.6. WritersLicense
      1. Examples
        1. Wings Over the World (Continued)
    7. 3.7. Trade-offs and Collaborations
  12. 4. The Use Case Set
    1. 4.1. SharedClearVision
      1. Examples
        1. Wings Over the World
        2. Automated Railway Signaling
        3. Mobile Dispatching
    2. 4.2. VisibleBoundary
      1. Examples
        1. Wings Over the World: Context Diagrams
    3. 4.3. ClearCastOfCharacters
      1. Examples
        1. Centre A: The Museum for Contemporary Asian Art
        2. The Pharmacy Receptionist
    4. 4.4. UserValuedTransactions
      1. Examples
        1. Wings Over the World and UserValuedTransactions
        2. Wings Over the World and Avoiding Form-Focus
        3. The Cruddy Mortgage Origination System
    5. 4.5. EverUnfoldingStory
      1. Examples
        1. Wings Over the World and Use Case Levels
        2. Centre A: The Museum for Contemporary Asian Art
    6. 4.6. Trade-offs and Collaborations
  13. 5. The Use Case
    1. 5.1. CompleteSingleGoal
      1. Examples
        1. Wings Over the World
    2. 5.2. VerbPhraseName
      1. Examples
        1. Insurance Claims
          1. Use Case Naming Horrors
          2. Good Use Case Names
    3. 5.3. ScenarioPlusFragments
      1. Examples
        1. Auto Insurance Claim Handling
    4. 5.4. ExhaustiveAlternatives
      1. Examples
        1. E-mail Access
    5. 5.5. Adornments
      1. Examples
        1. Wings Over the World with Adornments
    6. 5.6. PreciseAndReadable
      1. Examples
        1. Wings Over the World: Readable but Imprecise
        2. Wings Over the World: Precise but Unreadable
    7. 5.7. Trade-offs and Collaborations
  14. 6. Scenarios and Steps
    1. 6.1. DetectableConditions
      1. Examples
        1. The ATM JAD Session
        2. Wings Over the World
    2. 6.2. LeveledSteps
      1. Examples
        1. A Long and Tedious Use Case for an On-line Store
        2. A Use Case with Excessively Large Steps for an On-line Store
        3. A Use Case That Mixes Large and Small Steps for an On-line Store
    3. 6.3. ActorIntentAccomplished
      1. Examples
        1. The Actor-less ATM
    4. 6.4. ForwardProgress
      1. Examples
        1. Wings Over the World: A Diversionary Scenario
        2. Insurance Claim: Not Enough Forward Progress
    5. 6.5. TechnologyNeutral
      1. Examples
        1. File Accident Claim: Tied to Technology
    6. 6.6. Trade-offs and Collaborations
  15. 7. Use Case Relationships
    1. 7.1. CommonSubBehavior
      1. Examples
        1. Wings Over the World and Includes
    2. 7.2. InterruptsAsExtensions
      1. Examples
        1. Wings Over the World and Extensions
      2. Extensions and UML Extension Points
    3. 7.3. PromotedAlternative
      1. Examples
        1. Wings Over the World
        2. Using Extends
    4. 7.4. Trade-offs and Collaborations
    5. 7.5. CapturedAbstraction—A Pattern for Applying UML Generalization, by Dan Rawsthorne
      1. Examples
        1. Wings Over the World
  16. 8. Editing Existing Use Cases
    1. 8.1. RedistributeTheWealth
      1. Examples
        1. Call Processing
    2. 8.2. MergeDroplets
      1. Examples
        1. Call Processing
    3. 8.3. CleanHouse
      1. Examples
        1. Hospital Claim
    4. 8.4. Trade-offs and Collaborations
  17. References
  18. Photo Credits
    1. Chapter 2
    2. Chapter 3
    3. Chapter 4
    4. Chapter 5
    5. Chapter 6
    6. Chapter 7
    7. Chapter 8