Skip to Content

Requirements Engineering for Software and Systems

By Phillip A. Laplante

Published March 27th 2009 by Auerbach Publications – 264 pages

Series: Applied Software Engineering Series

Purchasing Options:

Description

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.

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

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

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

Complexity

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?

Stakeholders

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

Introduction

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

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

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

Imperatives

Continuances

Directives

Options

Weak Phrases

Formal Methods

Motivation

What are Formal Methods?

A Little History

Using Formal Methods

Formal Methods Types

Examples

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)

Scrum

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

Introduction

Traceability Support

Commercial Requirements Engineering Tools

DOORS

Rational RequisitePro

Requirements and Traceability Management

CaliberRM

QFD/Capture

Open Source Requirements Engineering Tools

FreeMind

Open Source Requirements Management Tool (OSRMT)

FitNesse

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

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 Period

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

Glossary

Index

Name: Requirements Engineering for Software and Systems (Hardback)Auerbach Publications 
Description: By Phillip A. Laplante. 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...
Categories: Software Engineering & Systems Development, Systems & Control Engineering, Engineering Project Management