Requirements Engineering for Software and Systems, 4th Edition

Book description

This textbook provides a comprehensive treatment of the theoretical and practical aspects of discovering, analyzing, modeling, validating, testing, and writing requirements for software systems. New chapters examine nonfunctional requirements and requirements of systems using disruptive technologies such as blockchain.

Table of contents

  1. Cover
  2. Half Title
  3. Title Page
  4. Copyright Page
  5. Table of Contents
  6. Preface
  7. Acknowledgments
  8. Authors
  9. 1 Introduction to Requirements Engineering
    1. Motivation
    2. What Is Requirements Engineering?
    3. You Probably Don’t Do Enough Requirements Engineering
    4. What Are Requirements?
      1. Requirements vs. Features vs. Goals
      2. Requirements Classifications
      3. Requirements Level Classification
      4. Requirements Specifications Types
        1. Functional Requirements
        2. Nonfunctional Requirements
        3. Domain Requirements
      5. Domain Vocabulary Understanding
    5. Requirements Engineering Activities
      1. Requirements Elicitation/Discovery
      2. Requirements Analysis and Agreement
      3. Requirements Representation
      4. Requirements Validation
      5. Requirements Management
      6. Bodies of Knowledge
    6. The Requirements Engineer
    7. Requirements Engineer Roles
      1. Requirements Engineer as Software or Systems Engineer
      2. Requirements Engineer as Subject Matter Expert
      3. Requirements Engineer as Architect
      4. Requirements Engineer as Business Process Expert
      5. Ignorance as Virtue
    8. Role of the Customer
    9. Problems with Traditional Requirements Engineering
      1. Complexity
      2. Gold-Plating and Ridiculous Requirements
      3. Obsolete Requirements
      4. Four Dark Corners
    10. Difficulties in Enveloping System Behavior
      1. The Danger of “All” in Specifications
    11. Exercises
    12. References
  10. 2 Preparing for Requirements Elicitation
    1. Product Business Goals and Mission Statements
    2. Encounter with a Customer
    3. Identifying the System Boundaries
      1. Context Diagrams
    4. Stakeholders
      1. Negative Stakeholders
      2. Stakeholder Identification
        1. Stakeholder Identification Questions
        2. Rich Pictures
        3. Stakeholder/User Classes
        4. Stakeholders vs. Use Case Actors
        5. User Characteristics
    5. Customer Wants and Needs
      1. What Do Customers Want?
      2. What Don’t Customers Want?
    6. Why Do Customers Change Their Minds?
    7. Stakeholder Prioritization
    8. Communicating with Customers and Other Stakeholders
      1. Managing Expectations
    9. Stakeholder Negotiations
    10. Uncovering Stakeholder Goals
    11. Exercises
    12. Note
    13. References
  11. 3 Requirements Elicitation
    1. Introduction
    2. Requirements Elicitation - First Step
    3. Elicitation Techniques Survey
      1. Brainstorming
      2. Card Sorting
      3. Crowdsourcing
      4. Designer as Apprentice
      5. Domain Analysis
      6. Ethnographic Observation
      7. Goal-Based Approaches
      8. Group Work
      9. Interviews
      10. Introspection
      11. Joint Application Design
      12. Laddering
      13. Protocol Analysis
      14. Prototyping
      15. Quality Function Deployment
      16. Questionnaires/Surveys
      17. Repertory Grids
      18. Reverse Engineering
      19. Scenarios
      20. Task Analysis
      21. Use Cases
      22. User Stories
      23. Viewpoints
      24. Workshops
    4. Eliciting Nonfunctional Requirements
    5. Elicitation Summary
      1. Which Combination of Requirements Elicitation Techniques Should Be Used?
      2. Prevalence of Requirements Elicitation Techniques
    6. Eliciting Hazards
      1. Misuse Cases
      2. Antimodels
      3. Formal Methods
    7. Exercises
    8. Notes
    9. References
  12. 4 Writing the Requirements Document
    1. Requirements Agreement and Analysis
    2. Requirements Representation
      1. Approaches to Requirements Representation
    3. ISO/IEC/IEEE Standard 29148
      1. Recommendations on Representing Nonfunctional Requirements
      2. Recommendations on Representing Functional Requirements
        1. Operating System
        2. Command Validation
    4. UML/SysML
    5. The Requirements Document
      1. Users of a Requirements Document
      2. Requirements Document Requirements
        1. Preferred Writing Style
        2. Text Structure Analysis
        3. Requirement Format
        4. Use of Imperatives
        5. Shall or Shall Not?
        6. Avoiding Imprecision in Requirements
      3. Requirements Document Size
    6. Behavioral Specifications
    7. Best Practices and Recommendations
    8. Exercises
    9. References
  13. 5 On Nonfunctional Requirements
    1. Motivation to Consider NFRs Earlier in Development
      1. What Is an NFR?
      2. What Are the Different Types of NFRs?
    2. Quality Requirements in Practice
    3. Specifying with Quality Attribute Scenarios
    4. Specifying with Planguage
    5. Popular Quality Requirements
      1. Security
      2. Modifiability
      3. Interoperability
      4. Performance
      5. Testability
      6. Usability
        1. Other Approaches to Handle NFRs in RE
    6. NFR Framework
    7. Incorporating NFRs with UML Models
    8. Exercises
    9. References
  14. 6 Requirements Validations and Verifications
    1. What Is Requirements Risk Management?
    2. Validation and Verification
      1. Techniques for Requirements V&V
        1. Walkthroughs
        2. Inspections
        3. Goal-Based Requirements Analysis
        4. Requirements Understanding
        5. Validating Requirements Use Cases
        6. Prototyping
      2. Tools for V&V
      3. Requirements V&V Matrices
    3. Standards for V&V
      1. ISO/IECIEEE Standard 29148
        1. Singularity
        2. Feasibility
        3. Ambiguity
        4. Completeness
        5. Consistency
        6. Verifiability
        7. Traceability
        8. Ranking
      2. Example Validation of Requirements
        1. Singular
        2. Feasible
        3. Unambiguous
        4. Complete
        5. Consistent
        6. Verifiable
        7. Traceable
        8. Ranked
      3. The Importance of Measurement in Requirements V&V
        1. Goal/Question/Metric Analysis
    4. NASA Requirements Testing
      1. NASA ARM Tool
        1. Imperatives
        2. Continuances
        3. Directives
        4. Options
        5. Weak Phrases
        6. Incomplete
        7. Subjects
        8. Specification Depth
        9. Readability Statistics
        10. Summary of NASA Metrics
    5. Exercises
    6. Note
    7. References
  15. 7 Formal Methods
    1. Motivation
    2. What Are Formal Methods?
      1. Formal Methods Classification
      2. A Little History
      3. Using Formal Methods
    3. Examples
      1. Formalization of Train Station in B
      2. Formalization of Space Shuttle Flight Software Using MurΦ
      3. Formalization of an Energy Management System Using Category Theory
        1. Example: An Energy Management System
      4. Other Notable Formal Methods for Requirements Engineering
      5. Requirements Validation
        1. Consistency Checking Using Truth Tables
        2. Consistency Checking by Inspection
        3. Consistency Checking Limitations
      6. Theorem Proving
        1. Program Correctness
        2. Hoare Logic
      7. Model Checking
      8. Integrated Tools
      9. Which Formal Approach to Use?
    4. Objections, Myths, and Limitations
      1. Objections and Myths
      2. Limitations of Formal Methods
    5. Combining Formal and Informal Methods
      1. Bowen and Hinchey’s Advice
    6. Exercises
    7. Notes
    8. References
  16. 8 Requirements Specification and Agile Methodologies
    1. Introduction to Agile Methodologies
      1. Principles Behind the Agile Manifesto
      2. Benefits of Agile Software Development
    2. Extreme Programming
    3. Scrum
    4. Kanban
    5. Lean Development
    6. Requirements Engineering for Agile Methodologies
      1. Technical Debt
      2. Example Application of Agile Software Development
      3. When Is Agile Recommended?
      4. Requirements Engineering in XP
      5. Requirements Engineering in Scrum
    7. Gathering User Stories
    8. Writing User Stories
    9. Estimating User Stories
    10. Prioritizing User Stories
    11. User Stories vs. Use Cases
    12. Agile Requirements Engineering vs. Requirements Engineering in Agile
      1. Story-Test-Driven Development
      2. State of Practice for Requirements Engineering in Agile Methodologies
    13. Challenges for Requirements Engineering in Agile Methodologies
    14. Exercises
    15. Notes
    16. References
  17. 9 Tool Support for Requirements Engineering
    1. Introduction
    2. Traceability Support
      1. Requirements Linkage Traceability Matrix
      2. Requirements Source Traceability Matrix
      3. Requirements Stakeholder Traceability Matrix
    3. Requirements Management Tools
      1. Tool Evaluation
    4. Open-Source Requirements Engineering Tools
      1. FreeMind
      2. FitNesse
    5. Requirements Engineering Tool Best Practices
    6. Elicitation Support Technologies
      1. Using Wikis for Requirements Elicitation
      2. Mobile Technologies
      3. Virtual Environments
      4. Content Analysis
      5. Artificial Intelligence
    7. Requirements Metrics
    8. Exercises
    9. References
  18. 10 Requirements Management
    1. Introduction
    2. Requirements Management Process
    3. Configuration Management and Control
    4. Reconciling Differences
      1. Managing Divergent Agendas
      2. Consensus Building
      3. Analytical Hierarchical Process (AHP)
      4. Wideband Delphi Technique
    5. Expectation Revisited: Pascal’s Wager
    6. Global Requirements Management
    7. Antipatterns in Requirements Management
      1. Environmental Antipatterns
        1. Divergent Goals
        2. Process Clash
      2. Management Antipatterns
        1. Metric Abuse
        2. Mushroom Management
    8. Other Paradigms for Requirements Management
      1. Requirements Management and Improvisational Comedy
      2. Requirements Management as Scriptwriting
    9. Standards for Requirements Management
      1. Capability Maturity Model Integration
      2. ISO 9001
      3. ISO/IEEE 12207
      4. Six Sigma
    10. Exercises
    11. Notes
    12. References
  19. 11 Value Engineering of Requirements
    1. What, Why, When, and How of Value Engineering
      1. What Is Value Engineering?
      2. When Does Value Engineering Occur?
      3. Challenges to Simple Cost vs. Risk Analysis
    2. Estimating Software Effort
      1. The Aspect of Software Size
      2. Software Length
      3. Software Complexity
      4. Functional Size
    3. Estimating Using Function Points
      1. Function Point Cost Drivers
    4. Estimating Using COSMIC
    5. The Relationship between Functional Size and Effort
    6. Estimating Using COCOMO and Its Derivatives
      1. COCOMO
      2. WEBMO
      3. COSYSMO
      4. Feature Points
      5. Use Case Points
    7. Considerations for Nonfunctional Requirements in Size Measurements
    8. Software Effort Estimation in Practice
    9. Requirements Feature Cost Justification
      1. Return on Investment
      2. Net Present Value
      3. Internal Rate of Return
      4. Profitability Index
      5. Payback Period
      6. Discounted Payback
    10. Putting It All Together
    11. Exercises
    12. Note
    13. References
  20. 12 Requirements Engineering: A Road Map to the Future
    1. Shaping Factors of the Future Landscape of Requirements Engineering
    2. The Changing Landscape of Requirements Engineering
    3. Requirements Engineering for Small Businesses
    4. Requirements Engineering and Disruptive Technologies
      1. Requirements Engineering and Blockchain
      2. Requirements Engineering and Internet of Things
      3. Requirements Engineering and Artificial Intelligence (AI)
      4. Requirements Engineering and Cloud Computing
      5. Requirements Engineering and Affective Computing
    5. References
  21. Appendix A: Software Requirements Specification for a Smart Home
  22. Appendix B: Software Requirements for a Wastewater Pumping Station Wet-Well Control System
  23. Appendix C: Unified Modeling Language (UML)
  24. Appendix D: User Stories
  25. Appendix E: Use Cases
  26. Appendix F: IBM DOORS Requirements Management Tool
  27. Glossary
  28. Index

Product information

  • Title: Requirements Engineering for Software and Systems, 4th Edition
  • Author(s): Phillip A. Laplante, Mohamad Kassab
  • Release date: June 2022
  • Publisher(s): Auerbach Publications
  • ISBN: 9781000593815