Visual Models for Software Requirements

Book description

Apply best practices for capturing, analyzing, and implementing software requirements through visual models—and deliver better results for your business. The authors—experts in eliciting and visualizing requirements—walk you through a simple but comprehensive language of visual models that has been used on hundreds of real-world, large-scale projects. Build your fluency with core concepts—and gain essential, scenario-based context and implementation advice—as you progress through each chapter.

  • Transcend the limitations of text-based requirements data using visual models that more rigorously identify, capture, and validate requirements

  • Get real-world guidance on best ways to use visual models—how and when, and ways to combine them for best project outcomes

  • Practice the book’s concepts as you work through chapters

  • Change your focus from writing a good requirement to ensuring a complete system

  • Table of contents

    1. Dedication
    2. Foreword
    3. Introduction
      1. Who Should Read This Book
        1. Assumptions
      2. Who Should Not Read This Book
      3. Organization of This Book
        1. Finding Your Best Starting Point in This Book
        2. Models Quick Start
      4. Conventions and Features in This Book
      5. Companion Content
      6. Acknowledgments
      7. Errata & Book Support
      8. We Want to Hear from You
      9. Stay in Touch
    4. I. An Introduction to Models
      1. 1. Introduction to RML
        1. RML Defined
        2. Challenges with Traditional Software Requirements Practices
          1. Limitations of the Human Brain
          2. Pictures Are Easy, Words Are Hard
        3. Requirements Models
          1. Why Not UML?
          2. Requirements vs. Design
            1. One Level’s Requirement Is Another Level’s Design
            2. Determining Actual Business Need
            3. Requirements Defined
          3. Requirements Models Are Not the End Game
        4. Using RML on Projects
        5. Additional Resources
        6. References
      2. 2. Model Categorization
        1. Objectives, People, Systems, and Data Models
          1. Bounding Models
          2. All Four Categories Are Needed
        2. Objectives Models
        3. People Models
        4. Systems Models
        5. Data Models
        6. References
    5. II. Objectives Models
      1. 3. Business Objectives Model
        1. Business Objectives Model Template
        2. Example
        3. Creating Business Objectives Models
          1. Identify Business Problems
            1. Revenue Needs to Be Higher
            2. Costs Need to Be Lower
            3. Eliciting Business Problems
          2. Identify Business Objectives
          3. Define Additional Problems and Objectives
          4. Define the Product Concept
            1. Guiding Principles
          5. Describe Success Metrics
          6. Questions to Ask to Complete the Business Objectives Model
        4. Using Business Objectives Models
          1. Providing a Common Understanding of a Project’s Value
          2. Bounding the Solution Space
          3. Understanding Projects That Are Underway
            1. A Typical Approach That Doesn’t Work
            2. An Ideal Approach That Starts with Problems and Objectives
            3. A Realistic Approach
          4. Deriving Requirements
          5. When to Use
          6. When Not to Use
        5. Common Mistakes
          1. Not Understanding the Business Problem
          2. Defining Business Objectives That Are Not Measurable
          3. Articulating the Wrong Type of Information in Business Objectives
        6. Related Models
        7. Exercise
          1. Instructions
          2. Scenario
        8. Additional Resources
        9. References
      2. 4. Objective Chain
        1. Objective Chain Template
        2. Example
        3. Creating Objective Chains
          1. Identify Business Objectives and Features
          2. Select the Features to Analyze in Objective Chains
          3. Identify the Objective Factors
            1. Use the Business Objectives Model
            2. Simplify Objective Factor Statements
          4. Create the Objective Chain Hierarchy
          5. Define the Objective Equations
            1. Format the Equation
            2. Identify Data Values
            3. Debate Data Values
            4. Measure Assumptions
        4. Using Objective Chains
          1. Comparing the Relative Values of Features to Cut Scope
            1. Determining the Value of a Feature Mapped to Multiple Business Objectives
            2. Determining the Value of Multiple Features Mapped to the Same Objective Chain
            3. Determining the Value of Features Attached to Emotional Objectives
          2. Determining Project Success
          3. Deriving Requirements
          4. When to Use
          5. When Not to Use
        5. Common Mistakes
          1. Not Creating Objective Chains Because Data Doesn’t Exist
          2. Skipping Levels in the Hierarchy
        6. Related Models
        7. Exercise
          1. Instructions
          2. Scenario
        8. Additional Resources
        9. References
      3. 5. Key Performance Indicator Model
        1. KPIM Template
        2. Example
        3. Creating KPIMs
          1. Identify Business Processes
            1. Selecting the Right Level
            2. Selecting the Right Processes
          2. Identify KPIs
          3. Create the KPIM
        4. Using KPIMs
          1. Prioritizing KPIMs When Business Objectives Don’t Help
          2. Prioritizing When Replacing Existing Functionality
          3. Comparing the Relative Values of Requirements to Cut Scope
          4. Deriving Requirements
          5. When to Use
          6. When Not to Use
        5. Common Mistakes
          1. Not Using KPIMs Because KPIs Don’t Exist
          2. Not Using KPIMs Due to Fears of Being Held Accountable
          3. A Lack of Ongoing Monitoring
        6. Related Models
        7. Exercise
          1. Instructions
          2. Scenario
        8. Additional Resources
      4. 6. Feature Tree
        1. Feature Tree Template
        2. Example
        3. Creating Feature Trees
          1. Identify Features
          2. Organize the Features
            1. Subfeatures of More Than One Feature
            2. Parentless Subfeatures
          3. Create the Feature Tree
          4. Look for Missing Features
        4. Using Feature Trees
          1. Depicting Project Scope
          2. Organizing the Requirements
          3. Organizing the Requirements Work
          4. Deriving Requirements
          5. When to Use
          6. When Not to Use
        5. Common Mistakes
          1. Wrong Number of Features at Each Level
          2. Poor Feature Names
        6. Related Models
        7. Exercise
          1. Instructions
          2. Scenario
        8. Additional Resources
        9. References
      5. 7. Requirements Mapping Matrix
        1. RMM Template
        2. Example
        3. Creating RMMs
          1. List Process Flow Steps
          2. Map Requirements to Process Flow Steps
            1. Many-to-Many Mappings
            2. Different Ways to Map Business Rules
            3. Using a Tool to Create Mappings
          3. Identify Missing Mappings
        4. Using RMMs
          1. Reviewing in an Easy-to-Read Structure
          2. Identifying Missing Requirements
          3. Identifying Extraneous Requirements or Missing Steps
          4. Prioritizing Scope
          5. Advantages of Using a Requirements Management Tool
          6. Deriving Requirements
          7. When to Use
          8. When Not to Use
        5. Common Mistakes
          1. Not Mapping to Process Flows
          2. Not Using or Updating RMMs
        6. Related Models
        7. Exercise
          1. Instructions
          2. Scenario
        8. Additional Resources
        9. References
    6. III. People Models
      1. 8. Org Chart
        1. Org Chart Template
        2. Example
        3. Creating Org Charts
          1. Locate Existing Org Charts
          2. Determine the Right Level of Org Chart
          3. Complete the Org Chart
            1. Departmental Org Charts
            2. Role Org Charts
            3. Individual Org Charts
        4. Using Org Charts
          1. Identifying the People Who Have Requirements
          2. Identifying Internal Users
          3. Identifying External Users
          4. Identifying People Used in Other Models
          5. Using Org Charts with Process Flows for Completeness
          6. Deriving Requirements
          7. When to Use
          8. When Not to Use
        5. Common Mistakes
          1. Not Using Org Charts to Identify Stakeholders
          2. Only Including Project Team Members
        6. Related Models
        7. Exercise
          1. Instructions
          2. Scenario
        8. Additional Resources
        9. References
      2. 9. Process Flow
        1. Process Flow Template
        2. Example
        3. Creating Process Flows
          1. Create an L1 Process Flow
            1. Creating the Diagram
            2. Scope of an L1
          2. Create L2 Process Flows
            1. Identifying Process Steps
            2. Writing Steps
            3. Using Swim Lanes
            4. Adding References to Other Flows
            5. Using Additional Symbols
          3. Create L3 Process Flows As Necessary
        4. Using Process Flows
          1. Targeting the Audience with Different Levels of Detail
          2. Running Elicitation and Review Sessions
          3. Driving Completeness
          4. Deriving Requirements
          5. When to Use
          6. When Not to Use
        5. Common Mistakes
          1. Level of Detail Is Inconsistent Within a Flow
          2. Reviewers Do Not Understand the Level of Detail
          3. Reviewers Forget to Look at the Full Process Flow
          4. Process Flow Has Too Many Steps
          5. System Responses Are Mixed with User Actions
          6. Processes Outside the Scope of the Project Are Not Included
        6. Related Models
        7. Exercise
          1. Instructions
          2. Scenario
        8. Additional Resources
        9. References
      3. 10. Use Case
        1. Use Case Template
        2. Example
        3. Creating Use Cases
          1. Identify Use Cases
            1. From Process Flows
            2. From Business Data Diagrams
            3. From Org Charts or Lists of Actors
          2. Write Descriptions
          3. Capture Organizational Benefits
          4. Capture Frequency of Use
          5. Prioritize Use Cases
          6. Complete the Remaining Header Fields
            1. Assign a Unique ID
            2. Identify Actors
            3. Identify Triggers
            4. Identify Preconditions
            5. Identify Postconditions
          7. Write the Main Course
          8. Write the Alternate Courses
          9. Write the Exceptions
        4. Using Use Cases
          1. Providing Context for Elicitation Through Implementation
          2. Prioritizing Work
          3. Deriving Requirements
          4. Reusing Use Cases
          5. Using a Use Case as a Basis for a UAT Script
          6. Using Models Similar to Use Cases
          7. Use Cases Do Not Have to Be Perfect
          8. When to Use
          9. When Not to Use
        5. Common Mistakes
          1. Making Use Cases Too Granular
          2. Using Use Cases As the Only Documentation for Requirements
          3. Allowing the System to Be an Actor
        6. Related Models
        7. Exercise
          1. Instructions
          2. Scenario
        8. Additional Resources
        9. References
      4. 11. Roles and Permissions Matrix
        1. Roles and Permissions Matrix Template
        2. Example
        3. Creating Roles and Permissions Matrices
          1. Identify the Roles
          2. Identify the Operations
          3. Indicate Permissions
            1. Permissions by Operation
            2. Permissions on Scope of Data
            3. Common Permissions on Related Operations
          4. A Word About When to Create the Matrix
        4. Using Roles and Permissions Matrices
          1. Deriving Requirements
          2. Driving Completeness
          3. Identifying Additional Functions
          4. Configuring Systems
          5. Using a Roles and Permissions Matrix As a Basis for Setting Up User Data for Deployment
          6. When to Use
          7. When Not to Use
        5. Common Mistakes
          1. Missing Operations
          2. Struggling to Organize the Roles
        6. Related Models
        7. Exercise
          1. Instructions
          2. Scenario
        8. Additional Resources
    7. IV. Systems Models
      1. 12. Ecosystem Map
        1. Ecosystem Map Template
        2. Example
        3. Creating Ecosystem Maps
          1. Identify Systems
          2. Identify Interfaces
          3. Tie the Diagram Together
        4. Using Ecosystem Maps
          1. Defining Scope with Ecosystem Maps
          2. Deriving Requirements
          3. When to Use
          4. When Not to Use
        5. Common Mistakes
          1. Showing Physical Systems
          2. Too Much Documentation
          3. Lack of Organization
        6. Related Models
        7. Exercise
          1. Instructions
          2. Scenario
        8. Additional Resources
        9. References
      2. 13. System Flow
        1. System Flow Template
        2. Example
        3. Creating System Flows
          1. Identify System Steps
            1. Feature Trees
            2. Data Flow Diagrams
          2. Write Steps
            1. Swim Lanes
            2. Events
        4. Using System Flows
          1. Running System Flows Parallel to Process Flows
          2. Deriving Requirements
          3. When to Use
            1. Describing Hidden Activities
            2. Describing System Interactions
            3. Describing Exception Handling
          4. When Not to Use
        5. Common Mistakes
        6. Related Models
        7. Exercise
          1. Instructions
          2. Scenario
        8. Additional Resources
      3. 14. User Interface Flow
        1. UI Flow Template
        2. Example
        3. Creating UI Flows
          1. Determine Scope of Screens
          2. Identify Screens
            1. Diagramming
            2. What Constitutes a Screen?
          3. Create Transitions
            1. Identifying the Transitions
            2. Adding Transitions to the Diagram
            3. Branching
          4. Label Triggers
        4. Using UI Flows
          1. Identifying Navigation
          2. Validating Navigation
          3. Optimizing Usability
          4. Developing Test Cases
          5. Deriving Requirements
          6. When to Use
          7. When Not to Use
        5. Common Mistakes
          1. Including Too Much Detail
          2. Including Unimportant Details
          3. Not Using a UI Expert When Needed
        6. Related Models
        7. Exercise
          1. Instructions
          2. Scenario
        8. Additional Resources
        9. Rferences
      4. 15. Display-Action-Response
        1. DAR Model Template
          1. UI Element Description
          2. UI Element Displays
          3. UI Element Behaviors
        2. Example
        3. Creating DAR Models
          1. Prepare the Screen
          2. Create a UI Element Description
          3. Create the UI Element Displays Section
          4. Create the UI Element Behaviors Section
          5. Guidelines for Creating Element Tables
        4. Using DARs
          1. Driving Completeness
          2. Deriving Requirements
          3. When to Use
          4. When Not to Use
        5. Common Mistakes
          1. Modeling Too Much
          2. Modeling Elements with No Data-Driven Behavior or Display
          3. Using Only UI-Based Models or Prototypes
          4. Focusing on the User Interface Too Early
          5. Including Too Much Fidelity in the Screen Layout
        6. Related Models
        7. Exercise
          1. Instructions
          2. Scenario
        8. Additional Resources
        9. References
      5. 16. Decision Table
        1. Decision Table Template
        2. Example
        3. Creating Decision Tables
          1. Identify Conditions
          2. Identify Choices
            1. Determining Valid Choices
            2. Reordering Conditions
            3. Enumerating Choices
          3. Identify Outcomes
          4. Label Valid Outcomes by Choice Combinations
          5. Simplify the Decision Table
        4. Using Decision Tables
          1. Making Decisions
          2. Driving Completeness
          3. Using Decision Tables with Decision Trees
          4. Deriving Requirements
          5. When to Use
            1. Modeling Complex Logic
          6. When Not to Use
        5. Common Mistakes
          1. Missing Permutations
          2. Overlapping Choice Ranges
          3. Not Combining Rules
          4. Modeling a Sequence of Decisions
        6. Related Models
        7. Exercise
          1. Instructions
          2. Scenario
        8. Additional Resources
        9. References
      6. 17. Decision Tree
        1. Decision Tree Template
        2. Example
        3. Creating Decision Trees
          1. Identify Decisions
          2. Identify Choices
          3. Identify Outcomes
          4. Repeat Until Every Branch Ends in an Outcome
          5. Simplify the Decision Tree
        4. Using Decision Trees
          1. Driving Completeness
          2. Simplifying Logic
          3. Modeling Nested “If” Statements
          4. Training Users
          5. Deriving Requirements
          6. When to Use
            1. Ordering
            2. Looping
          7. When Not to Use
        5. Common Mistakes
          1. Modeling Process Steps
          2. Making All Yes or No Choices
        6. Related Models
        7. Exercise
          1. Instructions
          2. Scenario
        8. Additional Resources
        9. References
      7. 18. System Interface Table
        1. System Interface Table Template
        2. Example
        3. Creating System Interface Tables
          1. Identify System Interfaces
          2. Determine Business Data Objects and Fields
          3. Determine Frequency of Transfer
          4. Determine Volume of Data
          5. Determine Error Handling
          6. Determine Security Constraints
        4. Using System Interface Tables
          1. Deriving Requirements
          2. When to Use
          3. When Not to Use
        5. Common Mistakes
          1. Including Information That Is Too Technical
          2. Documenting Every Interface
          3. Not Understanding User Needs
        6. Related Models
        7. Exercise
          1. Instructions
          2. Scenario
    8. V. Data Models
      1. 19. Business Data Diagram
        1. BDD Template
          1. Business Data Example Diagram Template
        2. Example
        3. Creating BDDs
          1. Identify Business Data Objects
          2. Relate Business Data Objects
          3. Add Cardinalities
          4. Creating Business Data Example Diagrams
        4. Using BDDs
          1. Understanding the High-Level Business Data Objects
          2. Driving Completeness
          3. Identifying Processes
          4. Helping Technical Teams with Database Design
          5. Using Business Data Example Diagrams to Review BDDs
          6. Deriving Requirements
          7. When to Use
          8. When Not to Use
        5. Common Mistakes
          1. Including Fields As Objects
          2. Creating Middle-Man Objects
          3. Thinking in Terms of a Database Design
        6. Related Models
        7. Exercise
          1. Instructions
          2. Scenario
        8. Additional Resources
        9. References
      2. 20. Data Flow Diagram
        1. DFD Template
        2. Example
        3. Creating DFDs
          1. Identify Business Data Objects
          2. Identify Processes
          3. Identify External Entities
          4. Tie the Diagram Together
        4. Using DFDs
          1. Representing Data Used Across Multiple Processes
          2. Using DFDs to Help with Readability
          3. Driving Completeness
          4. Deriving Requirements
          5. When to Use
          6. When Not to Use
        5. Common Mistakes
          1. Trying to Articulate Order in a DFD
          2. Trying to Document Every Single Data Flow
        6. Related Models
        7. Exercise
          1. Instructions
          2. Scenario
        8. Additional Resources
        9. References
      3. 21. Data Dictionary
        1. Data Dictionary Template
          1. Properties List
        2. Example
        3. Creating Data Dictionaries
          1. Tailor Properties
          2. Identify Business Data Objects and Fields
          3. Populate Properties
          4. Supplement with Data Catalogs
        4. Using Data Dictionaries
          1. Promoting a Consistent Data Nomenclature
          2. Driving Completeness
          3. Deriving Requirements
          4. When to Use
          5. When Not to Use
        5. Common Mistakes
          1. Becoming Overwhelmed by the Size
          2. Not Articulating Important Validation Rules
        6. Related Models
        7. Exercise
          1. Instructions
          2. Scenario
        8. Additional Resources
        9. References
      4. 22. State Table
        1. State Table Template
        2. Example
        3. Creating State Tables
          1. Identify the Business Data Objects
          2. Identify the States
          3. Analyze the Transitions
        4. Using State Tables
          1. Enhancing Readability
          2. Driving Completeness
            1. Completing Other Models
          3. Deriving Requirements
          4. When to Use
          5. When Not to Use
        5. Common Mistakes
          1. States That Are Not States
          2. Missing States
          3. Incorrect “No” Transitions
        6. Related Models
        7. Exercise
          1. Instructions
          2. Scenario
        8. Additional Resources
        9. References
      5. 23. State Diagram
        1. State Diagram Template
        2. Example
        3. Creating State Diagrams
          1. Identify the Business Data Objects
          2. Identify the States
          3. Analyze the Transitions
        4. Using State Diagrams
          1. Visualizing Flow Between States
          2. Driving Completeness
          3. Deriving Requirements
          4. When to Use
          5. When Not to Use
        5. Common Mistakes
          1. States That Are Not States
          2. Missing States and Transitions
        6. Related Models
        7. Exercise
          1. Instructions
          2. Scenario
        8. Additional Resources
        9. References
      6. 24. Report Table
        1. Report Table Template
        2. Example
        3. Creating Report Tables
          1. Identify Reports
          2. Prioritize Reports
          3. Complete Report Table Elements
            1. Report Table Top-Level Elements
            2. Report Table Field Elements
            3. Managing Report Scope
        4. Using Report Tables
          1. Defining the Reports
          2. Checking Completeness and Consistency Against Other Models
          3. Deriving Requirements
          4. When to Use
          5. When Not to Use
        5. Common Mistakes
          1. Not Relating Reports to Decisions Made
          2. Documenting Unnecessary Reports
        6. Related Models
        7. Exercise
          1. Instructions
          2. Scenario
    9. VI. Models in the Big Picture
      1. 25. Selecting Models for a Project
        1. Selecting Models by Project Phases
          1. Envision Phase
          2. Plan Phase
          3. Develop Phase
          4. Launch Phase
          5. Measure Phase
        2. Selecting Models by Project Characteristics
          1. Objectives Characteristics
            1. Greenfield Projects
            2. Commercial Off the Shelf (COTS) Projects
            3. Enhancement Projects
          2. People Characteristics
            1. Systems with Extensive User Interaction
            2. Customer-Facing Systems
            3. Business Process Automation Projects
            4. Workflow Automation Projects
          3. Systems Characteristics
            1. System Replacement Projects
            2. Real-Time and Embedded Systems
            3. Large-Ecosystem Projects
            4. Internal IT Systems
            5. Hardware and Software
            6. Packaged Software
            7. Cloud Implementation Projects
            8. Web App Projects
            9. Mobile Systems
            10. Projects with Complex Decision Logic
          4. Data Characteristics
            1. Analytics and Reporting Components
            2. Database Back-End Components
            3. Data Warehouse Components
          5. Project Examples
        3. Thinking About the Audience
        4. Tailoring Models
        5. Exercise
          1. Instructions
          2. Scenario
      2. 26. Using Models Together
        1. Many Different Views
        2. Using More Than One Model
        3. Requirements Architecture
          1. Relationships Between Models
          2. Where the Artifacts Live
        4. A Models Plan
        5. Related Models
        6. Exercise
          1. Instructions
          2. Scenario
    10. A. Quick Lookup Models Grids
      1. Additional Resources
    11. B. General Guidelines for Models
      1. Metadata to Include in Models
      2. General Guidelines and Tips
    12. C. Exercise Answers
      1. Chapter 3
      2. Chapter 4
      3. Chapter 5
      4. Chapter 6
      5. Chapter 7
      6. Chapter 8
      7. Chapter 9
      8. Chapter 10
      9. Chapter 11
      10. Chapter 12
      11. Chapter 13
      12. Chapter 14
      13. Chapter 15
      14. Chapter 16
      15. Chapter 17
      16. Chapter 18
      17. Chapter 19
      18. Chapter 20
      19. Chapter 21
      20. Chapter 22
      21. Chapter 23
      22. Chapter 24
      23. Chapter 25
      24. Chapter 26
    13. Glossary
    14. Index
    15. About the Authors
    16. Copyright

    Product information

    • Title: Visual Models for Software Requirements
    • Author(s): Joy Beatty and Anthony Chen
    • Release date: July 2012
    • Publisher(s): Microsoft Press
    • ISBN: 9780735667730