Cover
Contents
Foreword
With Contributions from
1 Introduction and Foundations
1.1 Introduction
1.1.1 Figures and Facts from Ordinary Projects
1.1.2 Requirements Engineering – What Is It?
1.1.3 Embedding Requirements Engineering into Process Models
1.2 Fundamentals of Communication Theory
1.3 Characteristics of a Requirements Engineer
1.4 Requirement Types
1.5 Importance and Categorization of Quality Requirements
1.6 Summary
2 System and Context Boundaries
2.1 System Context
2.2 Defining System and Context Boundaries
2.2.1 Defining the System Boundary
2.2.2 Defining the Context Boundary
2.3 Documenting the System Context
2.4 Summary
3 Eliciting Requirements
3.1 Requirements Sources
3.1.1 Stakeholders and Their Significance
3.1.2 Handling Stakeholders in the Project
3.2 Requirements Categorization According to the Kano Model
3.3 Elicitation Techniques
3.3.1 Types of Elicitation Techniques
3.3.2 Survey Techniques
3.3.3 Creativity Techniques
3.3.4 Document-centric Techniques
3.3.5 Observation Techniques
3.3.6 Support Techniques
3.4 Summary
4 Documenting Requirements
4.1 Document Design
4.2 Types of Documentation
4.2.1 The Three Perspectives of Requirements
4.2.2 Requirements Documentation using Natural Language
4.2.3 Requirements Documentation using Conceptual Models
4.2.4 Hybrid Requirements Documents
4.3 Document Structures
4.3.1 Standardized Document Structures
4.3.2 Customized Standard Contents
4.4 Using Requirements Documents
4.5 Quality Criteria for Requirements Documents
4.5.1 Unambiguity and Consistency
4.5.2 Clear Structure
4.5.3 Modifiability and Extendibility
4.5.4 Completeness
4.5.5 Traceability
4.6 Quality Criteria for Requirements
4.7 Glossary
4.8 Summary
5 Documenting Requirements in Natural Language
5.1 Effects of Natural Language
5.1.1 Nominalization
5.1.2 Nouns without Reference Index
5.1.3 Universal Quantifiers
5.1.4 Incompletely Specified Conditions
5.1.5 Incompletely Specified Process Verbs
5.2 Requirement Construction using Templates
5.3 Summary
6 Model-Based Requirements Documentation
6.1 The Term Model
6.1.1 Properties of Models
6.1.2 Modeling Languages
6.1.3 Requirements Models
6.1.4 Advantages of Requirements Models
6.1.5 Combined Use of Models and Natural Language
6.2 Goal Models
6.2.1 Goal Documentation Using AND/OR Trees
6.2.2 Example of AND/OR Trees
6.3 Use Cases
6.3.1 UML Use Case Diagrams
6.3.2 Use Case Specifications
6.4 Three Perspectives on the Requirements
6.5 Requirements Modeling in the Data Perspective
6.5.1 Entity-Relationship Diagrams
6.5.2 UML Class Diagrams
6.6 Requirements Modeling in the Functional Perspective
6.6.1 Data Flow Diagrams
6.6.2 Models of the Functional Perspective and Control Flow
6.6.3 UML Activity Diagrams
6.7 Requirements Modeling in the Behavioral Perspective
6.7.1 Statecharts
6.7.2 UML State Diagrams
6.8 Summary
7 Requirements Validation and Negotiation
7.1 Fundamentals of Requirements Validation
7.2 Fundamentals of Requirements Negotiation
7.3 Quality Aspects of Requirements
7.3.1 Quality Aspect "Content"
7.3.2 Quality Aspect "Documentation"
7.3.3 Quality Aspect "Agreement"
7.4 Principles of Requirements Validation
7.4.1 Principle 1: Involvement of the Correct Stakeholders
7.4.2 Principle 2: Separating the Identification and the Correction of Errors
7.4.3 Principle 3: Validation from Different Views
7.4.4 Principle 4: Adequate Change of Documentation Type
7.4.5 Principle 5: Construction of Development Artifacts
7.4.6 Principle 6: Repeated Validation
7.5 Requirements Validation Techniques
7.5.1 Commenting
7.5.2 Inspection
7.5.3 Walk-Through
7.5.4 Perspective-Based Reading
7.5.5 Validation through Prototypes
7.5.6 Using Checklists for Validation
7.6 Requirements Negotiation
7.6.1 Conflict Identification
7.6.2 Conflict Analysis
7.6.3 Conflict Resolution
7.6.4 Documentation of the Conflict Resolution
7.7 Summary
8 Requirements Management
8.1 Assigning Attributes to Requirements
8.1.1 Attributes for Natural Language Requirements and Models
8.1.2 Attribute Scheme
8.1.3 Attribute Types of Requirements
8.2 Views on Requirements
8.2.1 Selective Views on the Requirements
8.2.2 Condensed Views on the Requirements
8.3 Prioritizing Requirements
8.3.1 Method for Requirements Prioritization
8.3.2 Techniques for Requirements Prioritization
8.4 Traceability of Requirements
8.4.1 Advantages of Traceable Requirements
8.4.2 Purpose-Driven Definition of Traceability
8.4.3 Classification of Traceability Relations
8.4.4 Representation of Requirements Traceability
8.5 Versioning of Requirements
8.5.1 Requirements Versions
8.5.2 Requirements Configurations
8.5.3 Requirements Baselines
8.6 Management of Requirements Changes
8.6.1 Requirements Changes
8.6.2 The Change Control Board
8.6.3 The Change Request
8.6.4 Classification of Incoming Change Requests
8.6.5 Basic Method for Corrective and Adaptive Changes
8.7 Measurement of Requirements
8.7.1 Product vs. Process Metric
8.7.2 Examples of Product and Process Metrics
8.8 Summary
9 Tool Support
9.1 General Tool Support
9.2 Modeling Tools
9.3 Requirements Management Tools
9.3.1 Specialized Tools for Requirements Management
9.3.2 Standard Office Applications
9.4 Introducing Tools
9.5 Evaluating Tools
9.5.1 Project View
9.5.2 User View
9.5.3 Product View
9.5.4 Process View
9.5.5 Provider View
9.5.6 Technical View
9.5.7 Economic View
9.6 Summary
References
Index
A
B
C
D
E
F
G
H
I
K
L
M
N
O
P
Q
R
S
T
U
V
W