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.
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
Tree
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
Appendices
A Software Requirements Specification
B Cost Savings Estimate Details
C Glossary
Biography
Rick Lutowski