Skip to Content

Requirements Engineering for Software and Systems, Second Edition

By Phillip A. Laplante

Auerbach Publications – 2013 – 324 pages

Series: Applied Software Engineering Series

Purchasing Options:

  • Add to CartHardback: $99.95
    978-1-46-656081-9
    October 17th 2013

Description

As requirements engineering continues to be recognized as the key to on-time and on-budget delivery of software and systems projects, many engineering programs have made requirements engineering mandatory in their curriculum. In addition, the wealth of new software tools that have recently emerged is empowering practicing engineers to improve their requirements engineering habits. However, these tools are not easy to use without appropriate training.

Filling this need, Requirements Engineering for Software and Systems, Second Edition has been vastly updated and expanded to include about 30 percent new material. In addition to new exercises and updated references in every chapter, this edition updates all chapters with the latest applied research and industry practices. It also presents new material derived from the experiences of professors who have used the text in their classrooms. Improvements to this edition include:

  • An expanded introductory chapter with extensive discussions on requirements analysis, agreement, and consolidation
  • An expanded chapter on requirements engineering for Agile methodologies
  • An expanded chapter on formal methods with new examples
  • An expanded section on requirements traceability
  • An updated and expanded section on requirements engineering tools
  • New exercises including ones suitable for research projects

Following in the footsteps of its bestselling predecessor, the text illustrates key ideas associated with requirements engineering using extensive case studies and three common example systems: an airline baggage handling system, a point-of-sale system for a large pet store chain, and a system for a smart home. This edition also includes an example of a wet well pumping system for a wastewater treatment station.

With a focus on software-intensive systems, but highly applicable to non-software systems, this text provides a probing and comprehensive review of recent developments in requirements engineering in high integrity systems.

Reviews

Praise for the Bestselling First Edition:

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.

Contents

Introduction to Requirements Engineering

Motivation

What Is Requirements Engineering?

You Probably Don’t Do Enough Requirements Engineering

What Are Requirements?

Requirements versus 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 Agreements

Requirements Representation

Requirements Validation

Requirements Management

Bodies of Knowledge

Requirements Engineer

Requirements Engineering Paradigms

Requirements Engineer as Software Systems Engineer

Requirements Engineer as Subject Matter Expert

Requirements Engineer as Architect

Requirements Engineer as Business Process Expert

Ignorance as Virtue

Customers’ Role

Problems with Traditional Requirements Engineering

Complexity

Four Dark Corners

Difficulties in Enveloping System Behavior

Danger of "All" in Specifications

Exercises

References

Preparing for Requirements Elicitation

Product Mission Statement

Encounter with a Customer

Stakeholders

Negative Stakeholders

Stakeholder Identification

Stakeholder Questions

Stakeholder/Customer Classes

Stakeholder 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

Uncovering Stakeholder Goals

Exercises

References

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 (JAD)

Laddering

Protocol Analysis

Prototyping

Quality Function Deployment

Questionnaires/Surveys

Repertory Grids

Scenarios

Task Analysis

User Stories

Viewpoints

Workshops

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

Writing the Requirements Document

Requirements Agreement and Analysis

Requirements Representation Approaches

IEEE Standard 830–1998

IEEE Standard 830 Recommendations on Representing Nonfunctional Requirements

IEEE Standard 830 Recommendations on Representing Functional Requirements

Operating System

Command Validation

ISO/IEC Standard 25030

Use Cases

Requirements Document

Users of a Requirements Document

Requirements Document Requirements

Preferred Writing Style

Text Structure Analysis

Requirement Format

Use of Imperatives

Behavioral Specifications

Best Practices and Recommendations

Exercises

References

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

Requirements Validation and Verification Matrices

Importance of Measurement in Requirements Validation and Verification

Goal/Question/Metric Analysis

Standards for Validation and Verification

IEEE Standard 830

Correctness

Ambiguity

Completeness

Consistency

Ranking

Verifiability

Modifiability

Traceability

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

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: Energy Management System

Requirements Validation

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

Requirements Specification and Agile Methodologies

Introduction to Agile Methodologies

Principles Behind Agile Manifesto

Extreme Programming (XP)

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

Tool Support for Requirements Engineering

Introduction

Traceability Support

Requirements Linkage Traceability Matrix

Requirements Source Traceability Matrix

Requirements Stakeholder Traceability Matrix

Requirements Management Tools

Open Source Requirements Engineering Tools

FreeMind

Open Source Requirements Management Tool (OSRMT)

FitNesse

Requirements Engineering Tool Best Practices

Elicitation Support Technologies

Using Wikis for Requirements Elicitation

Mobile Technologies

Virtual Environments

Content Analysis

Metrics

Exercises

References

Requirements Management

Introduction

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

ISO 9001

Six Sigma

Capability Maturity Model Integrative (CMMI)

IEEE 830

ISO/IEEE 12207

Usage of Standards

A Case Study: FBI Virtual Case File

Exercises

References

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 versus 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

Glossary

Index

Author Bio

Phillip A. Laplante, PhD, is professor of software engineering and a member of the graduate faculty at The Pennsylvania State University (Penn State). His research, teaching, and consulting focuses on software quality, particularly with respect to requirements, testing, and project management. Before joining Penn State he was a professor and senior academic administrator at several colleges and universities.

Dr. Laplante has consulted to Fortune 500 companies, small businesses, the US DOD, and NASA. He has also served on the technology advisory boards for several companies. Prior to his academic career, Dr. Laplante spent nearly a decade as a software engineer and project manager working on avionics (including the Space Shuttle), CAD, and software test systems. He was also director of business development for a software consulting firm. He has authored or edited 29 books and more than 200 papers, articles, reviews, and editorials.

Dr. Laplante received his BS, MEng, and PhD in computer science, electrical engineering, and computer science, respectively, from Stevens Institute of Technology and an MBA from the University of Colorado at Colorado Springs. He is licensed in Pennsylvania as a professional engineer and is a Certified Software Development Professional. He is a fellow of the IEEE and SPIE and a member of numerous professional societies, program committees, and boards.

Name: Requirements Engineering for Software and Systems, Second Edition (Hardback)Auerbach Publications 
Description: By Phillip A. Laplante. As requirements engineering continues to be recognized as the key to on-time and on-budget delivery of software and systems projects, many engineering programs have made requirements engineering mandatory in their curriculum. In addition, the wealth of...
Categories: Software Engineering & Systems Development, Systems & Control Engineering