Software Requirement Patterns

Book description

Learn proven, real-world techniques for specifying software requirements with this practical reference. It details 30 requirement “patterns” offering realistic examples for situation-specific guidance for building effective software requirements. Each pattern explains what a requirement needs to convey, offers potential questions to ask, points out potential pitfalls, suggests extra requirements, and other advice. This book also provides guidance on how to write other kinds of information that belong in a requirements specification, such as assumptions, a glossary, and document history and references, and how to structure a requirements specification.

A disturbing proportion of computer systems are judged to be inadequate; many are not even delivered; more are late or over budget. Studies consistently show one of the single biggest causes is poorly defined requirements: not properly defining what a system is for and what it’s supposed to do. Even a modest contribution to improving requirements offers the prospect of saving businesses part of a large sum of wasted investment. This guide emphasizes this important requirement need—determining what a software system needs to do before spending time on development. Expertly written, this book details solutions that have worked in the past, with guidance for modifying patterns to fit individual needs—giving developers the valuable advice they need for building effective software requirements

Table of contents

  1. Foreword
  2. Preface
    1. The Purpose of This Book
    2. Who Will Benefit from Using This Book
    3. Benefits the Reader Will Gain
    4. Skills and Experience Needed by the Reader
    5. The Structure of This Book
    6. Supporting Resources
    7. Acknowledgments
  3. I. Setting the Scene
    1. 1. Synopsis of “Crash Course in Specifying Requirements”
      1. 1.1 What Are Requirements?
      2. 1.2 Where Do Requirements Fit in the Grand Scheme?
      3. 1.3 A Few General Principles
      4. 1.4 A Traditional Requirements Process
      5. 1.5 Agile Requirements Processes
        1. An Extreme Requirements Process
        2. An Incremental Requirements Process
    2. 2. Synopsis of “The Contents of a Requirements Specification”
      1. 2.1 Introduction Section
        1. System Purpose
        2. Document Purpose
        3. Requirement Format
        4. Glossary
        5. References
        6. Document History
      2. 2.2 Context Section
        1. Scope
        2. Major Assumptions
        3. Major Exclusions
        4. Key Business Entities
        5. Infrastructures
      3. 2.3 Functional Area Sections
      4. 2.4 Major Nonfunctional Capabilities Section
    3. 3. Requirement Pattern Concepts
      1. 3.1 Introduction to Requirement Patterns
      2. 3.2 The Anatomy of a Requirement Pattern
        1. Basic Details
        2. Applicability
        3. Discussion
        4. Content
        5. Template(s)
        6. Example(s)
        7. Extra Requirements
        8. Considerations for Development
        9. Considerations for Testing
      3. 3.3 Domains
        1. Domains and Infrastructures
      4. 3.4 Requirement Pattern Groups
      5. 3.5 Relationships Between Requirement Patterns
        1. Requirement Pattern Classifications
          1. “Functional” Classification
          2. “Pervasive” Classification
          3. “Affects Database” Classification
        2. Refinement Requirements
        3. Divertive Requirement Patterns
        4. Requirement Patterns and Diversity of Approaches
        5. Use Cases for Requirement Patterns
        6. Business Rules and Requirement Patterns
    4. 4. Using and Producing Requirement Patterns
      1. 4.1 When and How to Use Requirement Patterns
      2. 4.2 Tailoring Requirement Patterns
      3. 4.3 Writing New Requirement Patterns
        1. How to Find Candidate Requirement Patterns
        2. How to Write a Requirement Pattern
  4. II. Requirement Pattern Catalog
    1. 5. Fundamental Requirement Patterns
      1. 5.1 Inter-System Interface Requirement Pattern
        1. Basic Details
        2. Applicability
        3. Discussion
        4. Content
        5. Template(s)
        6. Example(s)
        7. Extra Requirements
        8. Resilience and Availability Requirements
        9. Traffic Verification and Recording Requirements
        10. Upgrade Requirements
        11. Security Requirements
        12. Documentation and Third-Party Interface Development Requirements
        13. Considerations for Development
        14. Considerations for Testing
      2. 5.2 Inter-System Interaction Requirement Pattern
        1. Basic Details
        2. Applicability
        3. Discussion
        4. Content
        5. Template(s)
        6. Example(s)
        7. Extra Requirements
        8. Considerations for Development
        9. Considerations for Testing
      3. 5.3 Technology Requirement Pattern
        1. Basic Details
        2. Applicability
        3. Discussion
        4. Content
        5. Template(s)
        6. Example(s)
        7. Extra Requirements
        8. Considerations for Development
        9. Considerations for Testing
      4. 5.4 Comply-with-Standard Requirement Pattern
        1. Basic Details
        2. Applicability
        3. Discussion
        4. Content
        5. Template(s)
        6. Example(s)
        7. Extra Requirements
        8. Considerations for Development
        9. Considerations for Testing
      5. 5.5 Refer-to-Requirements Requirement Pattern
        1. Basic Details
        2. Applicability
        3. Discussion
        4. Content
        5. Template(s)
        6. Example(s)
        7. Extra Requirements
        8. Considerations for Development
        9. Considerations for Testing
      6. 5.6 Documentation Requirement Pattern
        1. Basic Details
        2. Applicability
        3. Discussion
        4. Content
        5. Template(s)
        6. Example(s)
        7. Extra Requirements
        8. Considerations for Development
        9. Considerations for Testing
    2. 6. Information Requirement Patterns
      1. 6.1 Data Type Requirement Pattern
        1. Basic Details
        2. Applicability
        3. Discussion
        4. Content
        5. Template(s)
        6. Example(s)
        7. Extra Requirements
        8. Considerations for Development
        9. Considerations for Testing
      2. 6.2 Data Structure Requirement Pattern
        1. Basic Details
        2. Applicability
        3. Discussion
        4. Content
        5. Template(s)
        6. Example(s)
        7. Extra Requirements
        8. Considerations for Development
        9. Considerations for Testing
      3. 6.3 ID Requirement Pattern
        1. Basic Details
        2. Applicability
        3. Discussion
        4. Content
        5. Template(s)
        6. Example(s)
        7. Extra Requirements
        8. Considerations for Development
        9. Considerations for Testing
      4. 6.4 Calculation Formula Requirement Pattern
        1. Basic Details
        2. Applicability
        3. Discussion
        4. Content
        5. Template(s)
        6. Example(s)
        7. Extra Requirements
        8. Considerations for Development
        9. Considerations for Testing
      5. 6.5 Data Longevity Requirement Pattern
        1. Basic Details
        2. Applicability
        3. Discussion
        4. Content
        5. Template(s)
        6. Example(s)
        7. Extra Requirements
        8. Considerations for Development
        9. Considerations for Testing
      6. 6.6 Data Archiving Requirement Pattern
        1. Basic Details
        2. Applicability
        3. Discussion
        4. Content
        5. Template(s)
        6. Example(s)
        7. Extra Requirements
        8. Considerations for Development
        9. Considerations for Testing
    3. 7. Data Entity Requirement Patterns
      1. Extra Requirements
        1. Extra Requirements
      2. 7.1 Living Entity Requirement Pattern
        1. Basic Details
        2. Applicability
        3. Discussion
        4. Content
        5. Template(s)
        6. Example(s)
        7. Extra Requirements
        8. Considerations for Development
        9. Considerations for Testing
      3. 7.2 Transaction Requirement Pattern
        1. Basic Details
        2. Applicability
        3. Discussion
        4. Content
        5. Template(s)
        6. Extra Requirements
        7. Considerations for Development
        8. Considerations for Testing
      4. 7.3 Configuration Requirement Pattern
        1. Basic Details
        2. Applicability
        3. Discussion
        4. Content
        5. Template(s)
        6. Example(s)
        7. Extra Requirements
        8. Considerations for Development
        9. Considerations for Testing
      5. 7.4 Chronicle Requirement Pattern
        1. Basic Details
        2. Applicability
        3. Discussion
        4. Content
        5. Template(s)
        6. Example(s)
        7. Extra Requirements
        8. Considerations for Development
        9. Considerations for Testing
      6. 7.5 Information Storage Infrastructure
        1. Purpose
        2. Invocation Requirements
        3. Implementation Requirements
    4. 8. User Function Requirement Patterns
      1. 8.1 Inquiry Requirement Pattern
        1. Basic Details
        2. Applicability
        3. Discussion
        4. Content
        5. Template(s)
        6. Example(s)
        7. Extra Requirements
        8. Considerations for Development
        9. Considerations for Testing
      2. 8.2 Report Requirement Pattern
        1. Basic Details
        2. Applicability
        3. Discussion
        4. Content
        5. Template(s)
        6. Example(s)
        7. Extra Requirements
        8. Considerations for Development
        9. Considerations for Testing
      3. 8.3 Accessibility Requirement Pattern
        1. Basic Details
        2. Applicability
        3. Discussion
        4. Content
        5. Template(s)
        6. Example(s)
        7. Extra Requirements
        8. Considerations for Development
        9. Considerations for Testing
      4. 8.4 User Interface Infrastructure
        1. Purpose
        2. Invocation Requirements
        3. Implementation Requirements
      5. 8.5 Reporting Infrastructure
        1. Purpose
        2. Invocation Requirements
        3. Implementation Requirements
    5. 9. Performance Requirement Patterns
      1. Common Performance Issues
        1. Common Performance Issues
      2. 9.1 Response Time Requirement Pattern
        1. Basic Details
        2. Applicability
        3. Discussion
        4. Content
        5. Template(s)
        6. Example(s)
        7. Extra Requirements
        8. Considerations for Development
        9. Considerations for Testing
      3. 9.2 Throughput Requirement Pattern
        1. Basic Details
        2. Applicability
        3. Discussion
        4. Content
        5. Template(s)
        6. Example(s)
        7. Extra Requirements
        8. Considerations for Development
        9. Considerations for Testing
      4. 9.3 Dynamic Capacity Requirement Pattern
        1. Basic Details
        2. Applicability
        3. Discussion
        4. Content
        5. Template(s)
        6. Example(s)
        7. Extra Requirements
        8. Considerations for Development
        9. Considerations for Testing
      5. 9.4 Static Capacity Requirement Pattern
        1. Basic Details
        2. Applicability
        3. Discussion
        4. Content
        5. Template(s)
        6. Example(s)
        7. Extra Requirements
        8. Considerations for Development
        9. Considerations for Testing
      6. 9.5 Availability Requirement Pattern
        1. Basic Details
        2. Applicability
        3. Discussion
        4. Content
        5. Template(s)
        6. Example(s)
        7. Extra Requirements
        8. Considerations for Development
        9. Considerations for Testing
    6. 10. Flexibility Requirement Patterns
      1. 10.1 Scalability Requirement Pattern
        1. Basic Details
        2. Applicability
        3. Discussion
        4. Content
        5. Template(s)
        6. Example(s)
        7. Extra Requirements
        8. Considerations for Development
        9. Considerations for Testing
      2. 10.2 Extendability Requirement Pattern
        1. Basic Details
        2. Applicability
        3. Discussion
        4. Content
        5. Template(s)
        6. Example(s)
        7. Extra Requirements
        8. Considerations for Development
        9. Considerations for Testing
      3. 10.3 Unparochialness Requirement Pattern
        1. Basic Details
        2. Applicability
        3. Discussion
        4. Content
        5. Template(s)
        6. Example(s)
        7. Extra Requirements
        8. Considerations for Development
        9. Considerations for Testing
      4. 10.4 Multiness Requirement Pattern
        1. Basic Details
        2. Applicability
        3. Discussion
        4. Content
        5. Template(s)
        6. Example(s)
        7. Extra Requirements
        8. Considerations for Development
        9. Considerations for Testing
      5. 10.5 Multi-Lingual Requirement Pattern
        1. Basic Details
        2. Applicability
        3. Discussion
        4. Content
        5. Template(s)
        6. Example(s)
        7. Extra Requirements
        8. Considerations for Development
        9. Considerations for Testing
      6. 10.6 Installability Requirement Pattern
        1. Basic Details
        2. Applicability
        3. Discussion
        4. Content
        5. Template(s)
        6. Example(s)
        7. Extra Requirements
        8. Considerations for Development
        9. Considerations for Testing
    7. 11. Access Control Requirement Patterns
      1. 11.1 User Registration Requirement Pattern
        1. Basic Details
        2. Applicability
        3. Discussion
        4. Content
        5. Template(s)
        6. Example(s)
        7. Extra Requirements
        8. Considerations for Development
        9. Considerations for Testing
      2. 11.2 User Authentication Requirement Pattern
        1. Basic Details
        2. Applicability
        3. Discussion
        4. Content
        5. Template(s)
        6. Example(s)
        7. Extra Requirements
        8. Considerations for Development
        9. Considerations for Testing
      3. 11.3 User Authorization Requirement Patterns
        1. Extra Requirements
      4. 11.4 Specific Authorization Requirement Pattern
        1. Basic Details
        2. Applicability
        3. Discussion
        4. Content
        5. Template(s)
        6. Example(s)
        7. Extra Requirements
        8. Considerations for Development
        9. Considerations for Testing
      5. 11.5 Configurable Authorization Requirement Pattern
        1. Basic Details
        2. Applicability
        3. Discussion
        4. Content
        5. Template(s)
        6. Example(s)
        7. Extra Requirements
        8. Considerations for Development
        9. Considerations for Testing
      6. 11.6 Approval Requirement Pattern
        1. Basic Details
        2. Applicability
        3. Discussion
        4. Content
        5. Template(s)
        6. Example(s)
        7. Extra Requirements
        8. Considerations for Development
        9. Considerations for Testing
    8. 12. Commercial Requirement Patterns
      1. 12.1 Multi-Organization Unit Requirement Pattern
        1. Basic Details
        2. Applicability
        3. Discussion
        4. Content
        5. Template(s)
        6. Example(s)
        7. Extra Requirements
        8. Considerations for Development
        9. Considerations for Testing
      2. 12.2 Fee/Tax Requirement Pattern
        1. Basic Details
        2. Applicability
        3. Discussion
        4. Content
        5. Template(s)
        6. Example(s)
        7. Extra Requirements
        8. Considerations for Development
        9. Considerations for Testing
  5. Glossary
  6. A. References
  7. Index
  8. About the Author
  9. Copyright

Product information

  • Title: Software Requirement Patterns
  • Author(s): Stephen Withall
  • Release date: June 2007
  • Publisher(s): Microsoft Press
  • ISBN: 9780735623989