1st Edition

Software Requirements Encapsulation, Quality, and Reuse

By Rick Lutowski Copyright 2005
    264 Pages 49 B/W Illustrations
    by Auerbach Publications

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


    Rick Lutowski