𝔖 Scriptorium
✦   LIBER   ✦

📁

Requirements Engineering for Software and Systems

✍ Scribed by Phillip A. Laplante


Publisher
Auerbach Publications
Year
2017
Tongue
English
Leaves
399
Series
Applied Software Engineering Series
Edition
3
Category
Library

⬇  Acquire This Volume

No coin nor oath required. For personal study only.

✦ Synopsis


Solid requirements engineering has increasingly been recognized as the key to improved, on-time, and on-budget delivery of software and systems projects. This textbook provides a comprehensive treatment of the theoretical and practical aspects of discovering, analyzing, modeling, validating, testing, and writing requirements for systems of all kinds, with an intentional focus on software-intensive systems. It brings into play a variety of formal methods, social models, and modern requirements for writing techniques to be useful to the practicing engineer.

This book was written to support both undergraduate and graduate requirements engineering courses. Each chapter includes simple, intermediate, and advanced exercises. Advanced exercises are suitable as a research assignment or independent study and are denoted by an asterisk. Various exemplar systems illustrate points throughout the book, and four systems in particular―a baggage handling system, a point of sale system, a smart home system, and a wet well pumping system―are used repeatedly. These systems involve application domains with which most readers are likely to be familiar, and they cover a wide range of applications from embedded to organic in both industrial and consumer implementations. Vignettes at the end of each chapter provide mini-case studies showing how the learning in the chapter can be employed in real systems.

Requirements engineering is a dynamic field and this text keeps pace with these changes. Since the first edition of this text, there have been many changes and improvements. Feedback from instructors, students, and corporate users of the text was used to correct, expand, and improve the material. This third edition includes many new topics, expanded discussions, additional exercises, and more examples. A focus on safety critical systems, where appropriate in examples and exercises, has also been introduced. Discussions have also been added to address the important domain of the Internet of Things. Another significant change involved the transition from the retired IEEE Standard 830, which was referenced throughout previous editions of the text, to its successor, the ISO/IEC/IEEE 29148 standard.

✦ Table of Contents


Cover
Title Page
Copyright Page
Contents
Acknowledgments
Author
Introduction
Chapter 1: Introduction to Requirements Engineering
Motivation
What Is Requirements Engineering?
You Probably Don’t Do Enough Requirements Engineering
What Are Requirements?
Requirements vs. Goals
Requirements Level Classification
Requirements Specifications Types
Functional Requirements
Nonfunctional Requirements
Domain Requirements
Domain Vocabulary Understanding
Requirements Engineering Activities
Requirements Elicitation/Discovery
Requirements Analysis and Agreement
Requirements Representation
Requirements Validation
Requirements Management
Bodies of Knowledge
The Requirements Engineer
Requirements Engineer Roles
Requirements Engineer as Software or Systems 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
Complexity
Gold-Plating and Ridiculous Requirements
Obsolete Requirements
Four Dark Corners
Difficulties in Enveloping System Behavior
The Danger of “All” in Specifications
Exercises
References
Chapter 2: Preparing for Requirements Elicitation
Product Mission Statement
Encounter with a Customer
Identifying the System Boundaries
Context Diagrams
Stakeholders
Negative Stakeholders
Stakeholder Identification
Stakeholder Questions
Rich Pictures
Stakeholder/User Classes
User Characteristics
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
Exercises
References
Chapter 3: Requirements Elicitation
Introduction
Preparing for Requirements Elicitation
Elicitation Techniques Survey
Brainstorming
Card Sorting
Designer as Apprentice
Domain Analysis
Ethnographic Observation
Goal-Based Approaches
Group Work
Interviews
Introspection
Joint Application Design
Laddering
Protocol Analysis
Prototyping
Quality Function Deployment
Questionnaires/Surveys
Repertory Grids
Scenarios
Task Analysis
Use Cases
User Stories
Viewpoints
Workshops
Eliciting Nonfunctional Requirements
Elicitation Summary
Which Combination of Requirements Elicitation Techniques Should Be Used?
Prevalence of Requirements Elicitation Techniques
Eliciting Hazards
Misuse Cases
Antimodels
Formal Methods
Exercises
References
Chapter 4: Writing the Requirements Document
Requirements Agreement and Analysis
Requirements Representation 
Approaches to Requirements Representation
ISO/IEC/IEEE Standard 29148
Recommendations on Representing Nonfunctional Requirements
Recommendations on Representing Functional Requirements
Operating System
Command Validation
UML/SysML
The Requirements Document
Users of a Requirements Document
Requirements Document Requirements
Preferred Writing Style
Text Structure Analysis
Requirement Format
Use of Imperatives
Shall or Shall Not?
Avoiding Imprecision in Requirements
Requirements Document Size
Behavioral Specifications
Best Practices and Recommendations
Exercises
References
Chapter 5: Requirements Risk Management
What Is Requirements Risk Management?
Requirements Validation and Verification
Techniques for Requirements V&V
Walkthroughs
Inspections
Goal-Based Requirements Analysis
Requirements Understanding
Validating Requirements Use Cases
Prototyping
Tools for V&V
Requirements V&V Matrices
The Importance of Measurement in Requirements V&V
Goal/Question/Metric Analysis
Standards for V&V
ISO/IECIEEE Standard 29148
Singularity
Feasibility
Ambiguity
Completeness
Consistency
Verifiability
Traceability
Ranking
Example Validation of Requirements
NASA Requirements Testing
NASA ARM Tool
Imperatives
Continuances
Directives
Options
Weak Phrases
Incomplete
Subjects
Specification Depth
Readability Statistics
Summary of NASA Metrics
Exercises
References
Chapter 6: Formal Methods
Motivation
What Are Formal Methods?
Formal Methods Classification
A Little History
Using Formal Methods
Examples
Formalization of Train Station in B
Formalization of Space Shuttle Flight Software Using MurΦ
Formalization of an Energy Management System Using Category Theory
Example: An Energy Management System
Requirements Validation
Consistency Checking Using Truth Tables
Consistency Checking by Inspection
Consistency Checking Limitations
Theorem Proving
Program Correctness
Hoare Logic
Model Checking
Integrated Tools
Objections, Myths, and Limitations
Objections and Myths
Limitations of Formal Methods
Bowen and Hinchey’s Advice
Exercises
References
Chapter 7: Requirements Specification and Agile Methodologies
Introduction to Agile Methodologies
Principles Behind the Agile Manifesto
Benefits of Agile Software Development
Extreme Programming
Scrum
Requirements Engineering for Agile Methodologies
General Practices in Agile Methodologies
Example Application of Agile Software Development
When Is Agile Recommended?
Agile Requirements Best Practices
Requirements Engineering in XP
Requirements Engineering in Scrum
Writing User Stories
Agile Requirements Engineering
Story Test-Driven Development
Challenges for Requirements Engineering in Agile Methodologies
Exercises
References
Chapter 8: Tool Support for Requirements Engineering
Introduction
Traceability Support
Requirements Linkage Traceability Matrix
Requirements Source Traceability Matrix
Requirements Stakeholder Traceability Matrix
Requirements Management Tools
Tool Evaluation
Open-Source Requirements Engineering Tools
FreeMind
FitNesse
Requirements Engineering Tool Best Practices
Elicitation Support Technologies
Using Wikis for Requirements Elicitation
Mobile Technologies
Virtual Environments
Content Analysis
Requirements Metrics
Exercises
References
Chapter 9: Requirements Management
Introduction
Configuration Management and Control
Reconciling Differences
Managing Divergent Agendas
Consensus Building
Expectation Revisited: Pascal’s Wager
Global Requirements Management
Antipatterns in Requirements Management
Environmental Antipatterns
Divergent Goals
Process Clash
Management Antipatterns
Metric Abuse
Mushroom Management
Other Paradigms for Requirements Management
Requirements Management and Improvisational Comedy
Requirements Management as Scriptwriting
Standards for Requirements Management
Capability Maturity Model Integration
ISO 9001
ISO/IEEE 12207
Six Sigma
Exercises
References
Chapter 10: Value Engineering of Requirements
What, Why, When, and How of Value Engineering
What Is Value Engineering?
When Does Value Engineering Occur?
Challenges to Simple Cost vs. Risk Analysis
Estimating Using COCOMO and Its Derivatives
COCOMO
WEBMO
COSYSMO
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
Putting It All Together
Exercises
References
Appendix A: Software Requirements Specification for a Smart Home
Appendix B: Software Requirements for a Wastewater Pumping Station Wet Well Control System
Appendix C: Unified Modeling Language (UML)
Appendix D: User Stories
Appendix E: Use Cases
Appendix F: IBM DOORS Requirements Management Tool
Glossary
Index
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Z


📜 SIMILAR VOLUMES


Requirements Engineering for Software an
✍ Phillip A. Laplante 📂 Library 📅 2022 🏛 CRC Press 🌐 English

Solid requirements engineering has increasingly been recognized as the key to improved, on-time, and on-budget delivery of software and systems projects. New software tools are emerging that are empowering practicing engineers to improve their requirements engineering habits. However, these tools ar

Requirements Engineering for Software an
✍ Phillip A. Laplante 📂 Library 📅 2009 🏛 CRC Press,Auerbach Publications 🌐 English

<P>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, especiall

Requirements Engineering for Software an
✍ Phillip A. Laplante, Mohamad Kassab 📂 Library 📅 2022 🌐 English

<p><span>Solid requirements engineering has increasingly been recognized as the key to improved, on-time, and on-budget delivery of software and systems projects. New software tools are emerging that are empowering practicing engineers to improve their requirements engineering habits. However, these