Use Case Modeling

Book description

Developers who effectively employ use cases deliver better applications--on time and under budget. The concept behind use cases is perhaps as old as software itself; they express the behavior of systems in terms of how users will ultimately interact with them. Despite this inherent simplicity, the use case approach is frequently misapplied, resulting in functional requirements that are confusing, cumbersome, or redundant.

In Use Case Modeling, experienced use case practitioners Kurt Bittner and Ian Spence share their tips and tricks for applying use cases in various environments. They delve into all aspects of use case modeling and management, demonstrating how development teams can capitalize on the approach's simplicity when modeling complex systems.

In this ready reference, readers will discover how to

  • Introduce a development team to use cases and implement a use case approach

  • Identify the key elements of a use case model, including actors; and the components of a use case, including basic flow, preconditions, post-conditions, sub-flows, and alternate flows

  • Master the objectives and challenges of creating detailed descriptions of use cases

  • Improve their descriptions' readability and consistency

  • Prevent and remedy common problems arising from the misuse of include, extend, and generalization use case relationships.

  • Organize and conduct a review of a use case model to realize the best possible approach

The book draws extensively on best practices developed at Rational Software Corporation, and presents real-life examples to illustrate the considerable power of use case modeling. As such, Use Case Modeling is sure to give development teams the tools they need to translate vision and creativity into systems that satisfy the most rigorous user demands.



0201709139B08062002

Table of contents

  1. Copyright
  2. Foreword
  3. Preface Why Bother with Use Cases?
    1. What Are “Use Cases” All About?
    2. WHO SHOULD BE INTERESTED IN USE CASES?
    3. How To Read This Book
    4. Acknowledgments
  4. I. Getting Started with Use-Case Modeling
    1. 1. A Brief Introduction to Use-Case Modeling
      1. Actors and Use Cases
      2. Use-Case Diagrams
      3. The Relationship Between Use Cases and Requirements
        1. Types of Requirements
        2. Functional and Nonfunctional Requirements
        3. The Role of Use Cases
        4. Use Cases Place Software Requirements in Context
      4. To “Use Case” or not to “Use Case”
        1. When Are Use Cases Useful?
        2. Use Cases Provide a Conceptual Model of the System
        3. Use Cases Describe How the System Is Used and What It Does for Its Stakeholders
        4. Does Everything the System Does Have to Be Described in a Use Case?
      5. General Principles of Use-Case Modeling
        1. Use Cases Do Not Exist in Isolation
        2. Use Cases Are a Synthetic Rather Than an Analytic Technique
        3. Rules of Thumb
      6. Summary
    2. 2. Fundamentals of Use-Case Modeling
      1. The Use-Case Model
      2. The Basic Building Blocks of a Use-Case Model
        1. Actors
          1. Actors According to the UML
          2. Actors in Summary
        2. Use Cases
          1. Use Cases, According to the UML
          2. The Use-Case Description Is a Kind of Story
          3. Use Cases in Summary
        3. Connecting Actors and Use Cases
        4. Use-Case Diagrams
        5. Brief Descriptions
        6. Use-Case Descriptions
          1. The Flow of Events
            1. The Flow of Events as a Map ff the Territory
            2. The Basic Flow
            3. Alternative Flows—Optional Behavior and Variations on a Theme
            4. Alternative Flows—Exceptions/Error Conditions
            5. Subflows
            6. The Relationship Between the Various Flows
          2. The Size and Complexity of a Use-Case Description
          3. Preconditions
          4. Postconditions
          5. Use-Case Descriptions in Summary
      3. Supporting Artifacts
        1. The Glossary and/or the Domain Model
        2. Supplementary Specifications
        3. Declarative and Special Requirements
      4. Summary
    3. 3. Establishing the Vision
      1. Introducing Stakeholders and Users
        1. What Are Stakeholders?
          1. Identifying Stakeholder Types
          2. Identifying Stakeholder Representatives and Stakeholder Roles
        2. The Role of Stakeholders and Stakeholder Representatives
        3. Users: A Very Important Class of Stakeholder
        4. Stakeholders and Use-Case Modeling
      2. Involving Stakeholders and Users in Your Project
        1. Step 1: Identify Stakeholder and User Types
          1. Stakeholder Type information
        2. Step 2: Identify and Recruit the Stakeholder Representatives
          1. Stakeholder Role information
        3. Step 3: Involve the Stakeholder Representatives in the Project
      3. Creating a Shared Vision
        1. Analyze the Problem
        2. Understand the Key Stakeholder and User Needs
        3. Describe the Features and Other High-Level Product Requirements
          1. More on Features
            1. Documenting Features
          2. Other Product Requirements
            1. Constraints
            2. Operating Requirements
        4. Provide an Overview of the Product
          1. Product Position Statement
          2. Completing the Product Overview
      4. Bringing It All Together: The Vision Document
      5. Do You Really Need to do All of This?
      6. Summary
    4. 4. Finding Actors and Use Cases
      1. Finding Actors
        1. Start by Identifying the Primary Actors
        2. Work from the Specific to the General
        3. Don’t Forget the Supporting Actors
        4. Consider All Existing Requirements Information
        5. Remember That Actors Are Not Always People
        6. Focus on the System Boundary
          1. Identify the Information Sources
        7. Don’t Preempt the Design
        8. Don’t Confuse the Actors with the Devices They Use
        9. When You Can’t Find the Actors, Start with the Use Cases
        10. Focus First on the Familiar
        11. Evolve the Set of Actors Alongside the Set of Use Cases
      2. Documenting Actors
        1. How to Name Actors
        2. Don’t Confuse Actors with Organizational Roles or Job Titles
        3. Don’t Overgeneralize
        4. Give Every Actor a Brief Description
        5. Characterize the Actors
        6. Trace the Actors to the User Types, Stakeholders, and Stakeholder Roles
      3. Finding Use Cases
        1. Start by Identifying the Actor Goals
        2. Consider the Information Needs of the System and Its Users
        3. Don’t Worry About Commonality (at least at first)
        4. Don’t Confuse Use Cases with “Functions”
        5. Focus on Value
        6. Derive the Use Cases from the System’s Vision
        7. Don’t Forget the Supporting and Operational Use Cases
        8. Evolve the Set of Use Cases Alongside the Set of Actors and the Supplementary Specification
      4. Documenting Use Cases
        1. Associate the Use Cases to Their Actors
        2. Name the Use Cases
        3. Give Every Use Case a Brief Description
        4. Outline the Use Cases
        5. Trace the Use Cases to Stakeholders and Stakeholder Roles
        6. Trace the Use Cases to the Features and Constraints
      5. Summary
    5. 5. Getting Started with a Use-Case Modeling Workshop
      1. Reasons for Having a Workshop
        1. To Transfer Expertise
        2. To Build a Team
        3. To Create Shared Understanding
        4. To Tap into the Creative Power of a Group
      2. Preparing for the Workshop
        1. Train the Participants
        2. Understand the Vision
        3. Keep the Group Small and Involved
        4. Vary the Composition of the Group
        5. Select a Facilitator
        6. Set Objectives for the Workshop
        7. Schedule the Workshop and Organize the Facilities
      3. Finding a Mentor
        1. Find an Effective Communicator
        2. Find a Skilled Motivator and Manager
        3. Find a Mentor with Full Life-Cycle Experience
        4. Don’t Use the Mentor as a Crutch
      4. Structuring the Workshop
        1. Define the Ground Rules for the Workshop
        2. Understand the Problem
        3. Define the Boundary of the System
        4. Identify Actors
        5. Identify Use Cases
        6. Consolidate the Model and Validate the Results
        7. Wrap Up the Workshop and Plan the Next Steps
      5. Supporting Activities
        1. Capture Terminology in a Glossary
        2. Capture Nonfunctional Requirements
        3. Capture Issues, Risks, and Assumptions
      6. Handling Common Problems
        1. Avoid Functional Decomposition and Dataflow Modeling
        2. Maintain Focus
        3. Synthesize, Don’t Analyze
        4. Don’t Describe What Happens Outside the System
        5. Don’t Just Draw Pictures
        6. Don’t Mix Business Use Cases and System Use Cases
      7. Summary
  5. II. Writing and Reviewing Use-Case Descriptions
    1. 6. The Life Cycle of a Use Case
      1. The Software Development Life Cycle
      2. The Authoring Life Cycle
        1. State 1: Discovered
        2. State 2: Briefly Described
        3. State 3: Bulleted Outline
        4. State 4: Essential Outline
        5. State 5: Detailed Description
          1. The Conversational Form
          2. The Narrative Form
          3. Using the Detailed Description
        6. State 6: Fully Described
      3. Team Working
        1. The Use-Case Modeling Process
        2. Establish the Vision
        3. Produce an Overview of the System
        4. Reach Agreement on System Scope
        5. Package the Use-Case Model
        6. Address Areas of Instability and Author Stable Use Cases and Supplementary Specifications
        7. Consolidate and Review the Use-Case Model
      4. Summary
    2. 7. The Structure and Contents of a Use Case
      1. Use Cases and System State
        1. The System and External Events
        2. The System State: More about Preconditions and Postconditions
        3. How Use Cases Interact
        4. The Side Effects of Using Preconditions
          1. Using Preconditions Can Reduce the Amount of Validation in a Use Case
          2. Using Preconditions Can Lead to the Identification of More Use Cases
      2. The Nature of the Flow of Events
        1. The Structure of the Flow of Events
          1. Defining a Flow of Events
          2. Defining the Basic Flow
          3. Defining Subflows
          4. Using Extension Points
          5. Defining Alternative Flows
          6. Examples of Alternative Flows
        2. Managing Scope Using Alternative Flows
        3. The Complexity of the Use-Case Model Versus the Complexity of the Design
        4. Visualizing the Flow of Events
        5. What Is a Scenario?
        6. What Is a Use-Case Realization?
      3. Summary
    3. 8. Writing Use-Case Descriptions: An Overview
      1. Who Writes Use-Case Descriptions?
        1. Programmers Write Poor Descriptions
        2. The Characteristics of a Good Use-Case Author
          1. The Ability to Synthesize
          2. The Ability to Approach a Problem Systematically
          3. Some Domain Knowledge
          4. At Least Some Understanding of Software Development
          5. An Ability to Write Well
      2. How Long Does it Take to Write a Use Case?
      3. Getting Started
        1. Use a Style Guide
        2. Write Simply, Directly, and Deliberately
        3. Treat the Use Case Like a Story
        4. Make a Conscious Decision about the Depth of Detail Required
        5. Describe What Happens When the Actors and the System Interact
        6. Don’t Rely on Just Text
        7. Prototype the User Interface
      4. Managing Detail
        1. Good Use-Case Models Have No “Levels”
        2. Adapt the Description to Your Intended Audience
        3. Use the Glossary and Domain Model to Capture Definitions
          1. Use a Domain Model to Manage Detail in the Glossary
          2. Use the Glossary and the Domain Model Together
        4. Capture Business Rules in a Domain Model
        5. Use Subflows to Simplify Complex Descriptions
        6. Use Alternative Flows to Capture Unusual or Complex Behavior
        7. Don’t Fill Your Use Cases with CRUD
        8. Don’t Be Afraid of Capturing the Detail
      5. Summary
    4. 9. Writing Use-Case Descriptions: Revisited
      1. How Much Detail is Enough?
      2. Describing Preconditions
        1. Deciding Whether a Precondition Is Needed
        2. Describing Preconditions
      3. Describing Postconditions
        1. Deciding Whether Postconditions Are Needed
        2. Describing Postconditions
      4. Writing the Flow of Events
        1. Writing the Basic Flow of Events
        2. Pay Attention to What’s Behind the Screen
      5. Using the Glossary and the Domain Model
      6. Writing “Named” Subflows
      7. Writing Optional, Alternative, and Exception Flows
        1. Identifying Alternative Flows
        2. Representing Alternative Flows in Separate Sections
        3. Naming Alternative Flows
        4. Using Extension Points to Target Alternative Behavior
        5. Describing Alternative Flows That Can Occur Anywhere in the Use Case
        6. Resuming the Use Case After the Alternative Flow Completes
        7. Alternative Flows for Alternative Flows and Named Subflows
      8. Writing Special and Supplementary Specifications
      9. Capturing Use-Case Scenarios
      10. Summary
    5. 10. Here There Be Dragons
      1. Using Named Subflows and Alternative Flows to Structure Text
      2. Defining Relationships Between Use Cases
        1. Using the Include Relationship
        2. Common Errors Using the Include Relationship
        3. Using the Extend Relationship
        4. Extension Points, Revisited
        5. Evaluating the Resulting Use-Case Model
        6. Using Generalization Between Use Cases
      3. Defining Relationships Between Actors
      4. Summary
    6. 11. Reviewing Use Cases
      1. Why Focus on Presenting and Reviewing Use Cases?
      2. Types of Reviews
        1. Informal Reviews
        2. Formal Reviews
      3. What to Review, and When to Review it
        1. Who Should Review the Use Cases
      4. Understanding the Audience
        1. Setting Expectations
        2. Preparing for the Review
      5. Running the Review Meeting
        1. Handling Issues
      6. What to Look for When Reviewing
        1. Reviewing Diagrams
        2. Reviewing Brief Descriptions
        3. Reviewing Use-Case Descriptions
        4. Reviewing Preconditions and Postconditions
        5. Reviewing the Glossary and Domain Model
      7. The Role of Prototypes and Storyboards in Use-Case Reviews
      8. Summary
    7. 12. Wrapping Up
      1. Use Cases and the Project Team
        1. Developers and Use Cases
        2. Testers and Use Cases
        3. Use Cases and the User Experience
        4. Use Cases and Documentation
        5. Managers, Use Cases, and Planning
      2. Use Cases Across the Life Cycle
        1. Use Cases and Iterative Development
          1. Use Cases in the Inception Phase
          2. Use Cases in the Elaboration Phase
          3. Use Cases in the Construction and Transition Phases
          4. Use Cases After Product Release
          5. Effort Across the Life Cycle
      3. Traceability, Completeness, and Coverage
      4. What’s Next?
  6. Appendix Examples
    1. The ATM Example
    2. The ACME Super ATM Use-Case Model Survey
      1. Brief Description
      2. Actor Catalogue
        1. Customer
        2. Burglar
        3. Bank System
        4. Service Administrator
        5. Security Administrator
        6. ATM Engineer
        7. ATM Operator
      3. Use-Case Catalogue
        1. Primary Use Cases
          1. Withdraw Cash
          2. Deposit Funds
          3. Transfer Funds
          4. Manage Account
          5. Break Into Machine
        2. Supporting Use Cases
          1. Refill and Service the Machine
          2. Configure the Machine
          3. Check the Machine is Iin Working Order
          4. Analyze System Performance
          5. Reconcile Transaction Logs
          6. Update System Configuration
          7. Run Advertising Campaign
    3. Use-Case Description—Withdraw Cash
    4. Use-Case Description—Authenticate Customer
    5. Supporting Glossary Terms
  7. Glossary
  8. Bibliography

Product information

  • Title: Use Case Modeling
  • Author(s):
  • Release date: August 2002
  • Publisher(s): Addison-Wesley Professional
  • ISBN: 9780201709131