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
- Cover
- Half Title
- Title Page
- Copyright Page
- Table of Contents
- Preface
- Acknowledgments
- Authors
-
1 Introduction to Requirements Engineering
- Motivation
- What Is Requirements Engineering?
- You Probably Don’t Do Enough Requirements Engineering
- What Are Requirements?
- Requirements Engineering Activities
- The Requirements Engineer
- Requirements Engineer Roles
- Role of the Customer
- Problems with Traditional Requirements Engineering
- Difficulties in Enveloping System Behavior
- Exercises
- References
-
2 Preparing for Requirements Elicitation
- Product Business Goals and Mission Statements
- Encounter with a Customer
- Identifying the System Boundaries
- Stakeholders
- Customer Wants and Needs
- Why Do Customers Change Their Minds?
- Stakeholder Prioritization
- Communicating with Customers and Other Stakeholders
- Stakeholder Negotiations
- Uncovering Stakeholder Goals
- Exercises
- Note
- References
-
3 Requirements Elicitation
- Introduction
- Requirements Elicitation - First Step
-
Elicitation Techniques Survey
- Brainstorming
- Card Sorting
- Crowdsourcing
- 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
- Reverse Engineering
- Scenarios
- Task Analysis
- Use Cases
- User Stories
- Viewpoints
- Workshops
- Eliciting Nonfunctional Requirements
- Elicitation Summary
- Eliciting Hazards
- Exercises
- Notes
- References
- 4 Writing the Requirements Document
- 5 On Nonfunctional Requirements
- 6 Requirements Validations and Verifications
-
7 Formal Methods
- Motivation
- What Are 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
- Other Notable Formal Methods for Requirements Engineering
- Requirements Validation
- Theorem Proving
- Model Checking
- Integrated Tools
- Which Formal Approach to Use?
- Objections, Myths, and Limitations
- Combining Formal and Informal Methods
- Exercises
- Notes
- References
-
8 Requirements Specification and Agile Methodologies
- Introduction to Agile Methodologies
- Extreme Programming
- Scrum
- Kanban
- Lean Development
- Requirements Engineering for Agile Methodologies
- Gathering User Stories
- Writing User Stories
- Estimating User Stories
- Prioritizing User Stories
- User Stories vs. Use Cases
- Agile Requirements Engineering vs. Requirements Engineering in Agile
- Challenges for Requirements Engineering in Agile Methodologies
- Exercises
- Notes
- References
- 9 Tool Support for Requirements Engineering
-
10 Requirements Management
- Introduction
- Requirements Management Process
- Configuration Management and Control
- Reconciling Differences
- Expectation Revisited: Pascal’s Wager
- Global Requirements Management
- Antipatterns in Requirements Management
- Other Paradigms for Requirements Management
- Standards for Requirements Management
- Exercises
- Notes
- References
-
11 Value Engineering of Requirements
- What, Why, When, and How of Value Engineering
- Estimating Software Effort
- Estimating Using Function Points
- Estimating Using COSMIC
- The Relationship between Functional Size and Effort
- Estimating Using COCOMO and Its Derivatives
- Considerations for Nonfunctional Requirements in Size Measurements
- Software Effort Estimation in Practice
- Requirements Feature Cost Justification
- Putting It All Together
- Exercises
- Note
- References
- 12 Requirements Engineering: A Road Map to the Future
- 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
Product information
- Title: Requirements Engineering for Software and Systems, 4th Edition
- Author(s):
- Release date: June 2022
- Publisher(s): Auerbach Publications
- ISBN: 9781000593815
You might also like
book
Requirements Engineering for Software and Systems
Solid requirements engineering has become increasingly essential to on-time and on-budget delivery of software and systems …
book
INCOSE Systems Engineering Handbook, 5th Edition
SYSTEMS ENGINEERING HANDBOOK A comprehensive reference on the discipline and practice of systems engineering Systems engineering …
book
Software Requirements, 3rd Edition
Now in its third edition, this classic guide to software requirements engineering has been fully updated …
book
System Analysis and Design, Fifth Edition
Alan Dennis' 5th Edition of Systems Analysis and Design continues to build upon previous issues with …