Requirements Engineering for Software and Systems

Free Standard Shipping

Purchasing Options

This product is not available


  • Presents material derived from graduate-level courses taught at Penn State University
  • Assesses practical and theoretical aspects of discovering, analyzing, modeling, validating, testing, and writing requirements for various systems
  • Offers formal methods, social models, and representation tools that are useful for the classroom and in the field
  • Introduces concepts constructively and illustrates all theory with real-world examples
  • Uses three systems to explain how to engineer requirements and how to practice requirements engineering


Solid requirements engineering has become increasingly essential to on-time and on-budget delivery of software and systems projects. As more engineering programs make it a mandatory part of their curricula, students and working engineers require significant training to master the field, especially the complicated emerging ancillary software tools vital to the requirements engineering process.

With a focus on software-intensive systems, Requirements Engineering for Software and Systems provides a probing and comprehensive review of recent developments in intelligent systems, soft computing techniques, and their diverse applications in manufacturing. Topics covered can be applied to the requirements engineering practices for:

  • Advanced production machines and systems
  • Collaborative and responsive manufacturing systems
  • Digital manufacturing
  • E-manufacturing
  • E-business and virtual enterprises
  • Fit manufacturing
  • Human machine interfaces
  • Innovative design technologies
  • Intelligent and competitive manufacturing
  • Intelligent planning and scheduling systems
  • Mechatronics and MEMS
  • Micro and nano manufacturing
  • Production automation and control
  • Reconfigurable manufacturing systems
  • Sustainable manufacturing systems
  • Robotics

 To illustrate key ideas associated with requirements engineering, the text presents three common example systems: an airline baggage handling system, a point-of-sale system for one location of a large pet store chain, and a system for a smart home in which one or more PCs control various aspects of the home’s functions. The selected systems encompass a wide range of applications—from embedded to organic, for both industrial and consumer uses.

Table of Contents

Introduction to Requirements Engineering
What is Requirements Engineering?
You Probably Don’t Do Enough Requirements Engineering
What are Requirements?
     Requirements Versus Goals
     Requirements Level Classification
     Requirements Specifications Types
     Domain Vocabulary Understanding
Requirements Engineering Activities
     Requirements Elicitation/Discovery
     Requirements Analysis and Reconciliation
     Requirements Representation and Modeling
     Requirements Validation
     Requirements Management
The Requirements Engineer
Requirements Engineering Paradigms
     Requirements Engineer as Software Engineer
     Requirements Engineer as Subject Matter Expert
     Requirements Engineer as Architect
     Requirements Engineer as Business Process Expert
     Ignorance as Virtue
Role of the Customer?
Problems with Traditional Requirements Engineering
Four Dark Corners (Zave and Jackson)
Difficulties in Enveloping System Behavior
     The Danger of All in Specifications

Mission Statement, Customers, and Stakeholders
Mission Statements
Encounter with a Customer?
     Negative Stakeholders
     Stakeholder Identification
Customer Wants and Needs
     What Do Customers Want?
     What Don’t Customers Want?
Why Do Customers Change Their Minds?
Stakeholder Prioritization
Communicating with Customers and Other Stakeholders
     Managing Expectations
Stakeholder Negotiations
Requirements Elicitation
Elicitation Techniques Survey
     Card Sorting
     Designer as Apprentice
     Domain Analysis
     Ethnographic Observation
     Goal-based Approaches
     Group Work
     Joint Application Design (JAD)
     Protocol Analysis
     Quality Function Deployment
     Repertory Grids
     Task Analysis
     User Stories

Elicitation Summary
     Which Combination of Requirements Elicitation Techniques Should Be Used?
     Prevalence of Requirements Elicitation Techniques

Elicitation Support Technologies
     Using Wikis for Requirements Elicitation
     Mobile Technologies
     Content Analysis

Writing the Requirements Document
Requirements Representation Approaches
IEEE Standard 830-199871
     IEEE Standard 830 Recommendations on Representing
     Non-Functional Requirements
     IEEE Standard 830 Recommendations on Representing
     Functional Requirements
     ISO/IEC Standard 2503076
Use Cases
Behavioral Specifications
The Requirements Document
     Users of a Requirements Document
     Requirements Document Requirements
Best Practices and Recommendations

Requirements Risk Management
What is Requirements Risk Management?
Requirements Validation and Verification
     Techniques for Requirements V&V
     The Requirements Validation Matrix
     The Importance of Measurement in Requirements Verification and Validation
Standards for Verification and Validation
     IEEE Standard 83096
NASA Requirements Testing
     NASA ARM Tool
     Weak Phrases 

Formal Methods
What are Formal Methods?
     A Little History
     Using Formal Methods
     Formal Methods Types
     Formalization of Train Station in B
     Formalization of Space Shuttle Flight Software Using MurF
     Formalization of an Energy Management System Using Category Theory
     Requirements Validation
     Theorem Proving
     Model Checking
Objections, Myths, and Limitations
     Objections and Myths
     Limitations of Formal Methods
Final Advice

Requirements Specification and Agile Methodologies
Introduction to Agile Methodologies
     Principles Behind the Agile Manifesto
Extreme Programming (XP)
Requirements Engineering for Agile Methodologies
     General Practices in Agile Methodologies
     Agile Requirements Best Practices
     Requirements Engineering in XP
     Requirements Engineering in Scrum
Writing User Stories
Agile Requirements Engineering
Challenges for Requirements Engineering in Agile Methodologies

Tool Support for Requirements Engineering
Traceability Support
Commercial Requirements Engineering Tools
     Rational RequisitePro
     Requirements and Traceability Management
Open Source Requirements Engineering Tools
Open Source Requirements Management Tool (OSRMT)
Requirements Engineering Tool Best Practices

Requirements Management
Requirements Management
     Managing Divergent Agendas
Expectation Revisited: Pascal’s Wager
Global Requirements Management
Antipatterns in Requirements Management
     Environmental Antipatterns
     Management Antipatterns
Other Paradigms for Requirements Management
     Requirements Management and Improvisational Comedy
     Requirements Management as Scriptwriting
Reference Models for Requirements Management
     ISO 9000-3 (1997)
     Six Sigma
     Capability Maturity Model (CMMI)
     IEEE 830
     IEEE 12207(2002)
     ISO/IEC 25030
A Case Study: FBI Virtual Case File

Value Engineering of Requirements
What, Why, When, and How of Value Engineering?
     What is Value Engineering?
     When Does Value Engineering Occur?
Estimating Using COCOMO and its Derivatives
Estimating Using Function Points
     Function Point Cost Drivers
     Feature Points
     Use Case Points
Requirements Feature Cost Justification
     Return on Investment
     Net Present Value
     Internal Rate of Return
     Profitability Index
     Payback Period
     Discounted Payback Period

Appendix: Software Requirements Specification for a Smart Home, Version 2.0



Editorial Reviews

Based on a Penn State course taught by the author, this text provides a review of the theoretical and practical aspects of discovering, analyzing, modeling, validating, testing, and writing requirements for systems of all kinds, particularly software-intensive systems. Incorporating a variety of formal methods, social models, and modern requirements writing techniques useful to practicing engineers, the text is suitable for professional software engineers, systems engineers, and senior undergraduate and graduate students in these fields.
—Book News Inc., 2009