Software Requirements: Encapsulation, Quality, and Reuse, 1st Edition (Hardback) book cover

Software Requirements

Encapsulation, Quality, and Reuse, 1st Edition

By Rick Lutowski

Auerbach Publications

264 pages | 49 B/W Illus.

Purchasing Options:$ = USD
Hardback: 9780849328480
pub: 2005-05-23
Currently out of stock
eBook (VitalSource) : 9780429117084
pub: 2016-04-19
from $67.50

FREE Standard Shipping!


Software Requirements: Encapsulation, Quality, and Reuse describes how to make requirements easy to change by using encapsulation. It introduces the Freedom methodology that shows how to encapsulate requirements thereby promoting reuse and quality. Encapsulating requirements reduces software life cycle costs by making requirements and the code that implements them more adaptable to changing technology and business needs.

The book examines the definition of requirements and explains how they can be encapsulated within software so developers, software engineers, and analysts better understand the requirements used to create software. With the theoretical underpinnings established, the book provides an overview of the Freedom methodology and details the individual tasks of the methodology in a "how-to" fashion, explaining relevant terminology, recording notations, and more. It also shows how the Freedom requirements methodology can be used as a part of any overall software development methodology.

Table of Contents


Why Freedom?

Freedom Methodology Overview

Methodology Benefits of Freedom

Economic Benefits of Freedom

Information-Hiding Secrets

Chapter Overview

Information-Hiding Concepts

Contrast with Traditional Design

Contrast with Current OO Practice

What Are Requirements?

Chapter Overview

Definition of Requirements

Definition of Design

Definition of Implementation

Design and Implementation Constraints

Freedom Requirements Process

Chapter Overview

Enterprise Process Models

Bounding the Black Box

Context Diagrams

Requirements Process

Example Problem Enterprise Process Model

Example Problem Black Box Bounding

Example Problem Context Diagram

Quality Requirements

Chapter Overview

Types of Requirements

Measuring Software Quality

Where's the Developer?

'ility Mapping

Example Problem Quality Requirements

Stimulus Identification and Cohesion

Chapter Overview

What Is a Stimulus?

Stimulus Sets

Functionality Screens

Programmatic Protocols

Example Problem Functionality Screen

Example Problem Programmatic Protocol

Stimulus Organization and Architecture

Chapter Overview

Stimulus Set Architecture

New Stimulus Response

Functionality Trees

Sample Functionality Tree

Example Problem: Programmatic Interface Functionality


Example Problem: Reverse Engineering the External

Interface Architecture

Example Problem Functionality Tree

Alternate Kickoff Approaches

Functionality Tree Neutrality

Reusable Requirements

Chapter Overview

Repetitive and Reusable Stimulus Sets

Reusable Requirements Components

Example Reusable Requirements Component

Example Problem Reusable Requirements

Incremental Development

Chapter Overview

Requirements Prioritization

Example Problem Requirements Priorities

Responses and Behavior Tables

Chapter Overview

Types of Responses

Behavior Tables

Response Recording Languages

Response Recording Syntax

Example Problem Behavior Tables

Requirements Encapsulation Design

Chapter Overview

Requirements Encapsulation Design Rule

Canonical Design Architecture

Example Problem Functionality Module Architecture

Requirements Encapsulation

Chapter Overview

Functionality Modules

Common Service Modules

Functionality Module Structure

Example Problem Functionality Module

Interface Prototyping

Chapter Overview

Purpose of Prototypes

Types of Prototypes

Example Problem Interface Mockup

Requirements Evolution

Chapter Overview

Handling the Ripple Effect of Change

Requirements Change Example


A Software Requirements Specification

B Cost Savings Estimate Details

C Glossary

Subject Categories

BISAC Subject Codes/Headings:
COMPUTERS / Software Development & Engineering / General
COMPUTERS / Computer Engineering