Design Methods for Reactive Systems

Design Methods for Reactive Systems

Yourdon, Statemate, and the UML

1st Edition - December 26, 2002

Write a review

  • Authors: Michael Jackson, R. Wieringa
  • eBook ISBN: 9780080503950

Purchase options

Purchase options
DRM-free (PDF)
Sales tax will be calculated at check-out

Institutional Subscription

Free Global Shipping
No minimum order


Design Methods for Reactive Systems describes methods and techniques for the design of software systems—particularly reactive software systems that engage in stimulus-response behavior. Such systems, which include information systems, workflow management systems, systems for e-commerce, production control systems, and embedded software, increasingly embody design aspects previously considered alone—such as complex information processing, non-trivial behavior, and communication between different components—aspects traditionally treated separately by classic software design methodologies. But, as this book illustrates, the software designer is better served by the ability to intelligently pick and choose from among a variety of techniques according to the particular demands and properties of the system under development.Design Methods for Reactive Systems helps the software designer meet today's increasingly complex challenges by bringing together specification techniques and guidelines proven useful in the design of a wide range of software systems, allowing the designer to evaluate and adapt different techniques for different projects. Written in an exceptionally clear and insightful style, Design Methods for Reactive Systems is a book that students, engineers, teachers, and researchers will undoubtedly find of great value.

Key Features

  • Shows how the techniques and design approaches of the three most popular design methods can be combined in a flexible, problem-driven manner.
  • Pedagogical features include summaries, rehearsal questions, exercises, discussion questions, and numerous case studies.


Students, engineers, teachers, and researchers in software development or software engineering.

Table of Contents


    PART I Reactive System Design

    1 Reactive Systems

    1.1 Examples of Reactive Systems

    1.2 Reactive versus Transformational Systems

    1.3 Four Case Studies and Three Examples

    1.4 Summary

    1.5 Questions and Exercises

    2 The Environment

    2.1 External Interactions

    2.2 Domains

    2.3 The Subject Domain

    2.3.1 Physical Entities

    2.3.2 Conceptual Entities

    2.3.3 Lexical Entities

    2.4 The Functions of Reactive Systems

    2.5 The Connection Domain

    2.6 Summary

    2.7 Questions and Exercises

    3 Stimulus-Response Behavior

    3.1 Cause and Effect Chains

    3.2 Events, Conditions, and Actions

    3.3 Events and Stimuli

    3.3.1 Assumptions about Observers

    3.3.2 Event Recognition

    3.3.3 Unobservable Events

    3.3.4 Observing Temporal Events

    3.4 Responses and Actions

    3.4.1 Assumptions about Actors

    3.4.2 Response Computation

    3.4.3 Unrealizable Actions

    3.5 Summary

    3.6 Questions and Exercises

    4 Software Specifications

    4.1 The System Engineering Argument

    4.2 Specifications

    4.3 The Role of Assumptions

    4.4 Operational Property Specifications

    4.5 Summary

    4.6 Questions and Exercises

    PART II Function Notations

    5 Mission Statement

    5.1 Notation

    5.2 Relating System Purpose to Environment Purpose

    5.2.1 Design Levels

    5.2.2 Goal Analysis

    5.3 Guidelines for Finding a Mission Statement

    5.3.1 Statement of Purpose

    5.3.2 Responsibilities

    5.3.3 Composition

    5.3.4 Exclusions

    5.4 Summary

    5.5 Questions and Exercises

    6 Function Refinement Tree

    6.1 Notation

    6.1.1 Connection with Other Notations

    6.2 Design Guidelines

    6.2.1 Construction

    6.2.2 Validation

    6.3 Summary

    6.4 Questions and Exercises

    7 Service Description

    7.1 Notation

    7.2 Guidelines

    7.3 Summary

    7.4 Questions and Exercises

    PART III Entity Notations

    8 Entity-Relationship Diagrams

    8.1 Entities and Attributes

    8.1.1 Entity Types

    8.1.2 Absolute Cardinality Properties

    8.2 Relationships

    8.2.1 Relative Cardinality Properties

    8.2.2 Association Entities

    8.3 Generalization

    8.4 Summary

    8.5 Questions and Exercises

    9 ERD Modeling Guidelines

    9.1 The Subject Domain Boundary

    9.2 Entities versus Attributes

    9.3 Entity versus Relationships

    9.4 Taxonomic Structures

    9.4.1 Rules of Classification

    9.4.2 Static versus Dynamic Specialization

    9.4.3 Classification and Counting

    9.4.4 Subtypes versus Roles

    9.5 Validation

    9.5.1 Consistency

    9.5.2 Checking Validity by Elementary Sentences

    9.5.3 Checking Validity by Snapshots

    9.5.4 Identification

    9.5.5 Validation Summary

    9.6 Summary

    9.7 Questions and Exercises

    10 The Dictionary

    10.1 Domain Ontology

    10.2 Syntactic Categories

    10.3 Path Expressions

    10.4 Extensional and Intensional Definitions

    10.5 Guidelines

    10.5.1 When to Define a Term

    10.5.2 Definitions by Genus and Difference

    10.5.3 Operational Definitions

    10.5.4 Abbreviations and Correspondence Rules

    10.6 Summary

    10.7 Questions and Exercises

    PART IV Behavior Notations

    11 State Transition Lists and Tables

    11.1 Event Lists

    11.2 State Transition Tables

    11.3 Decision Tables

    11.4 Summary

    11.5 Questions and Exercises

    12 State Transition Diagrams

    12.1 Mealy Diagrams

    12.2 Variables

    12.3 Statecharts

    12.3.1 State Reactions

    12.3.2 State Hierarchy

    12.3.3 Parallelism

    12.4 Summary

    12.5 Questions and Exercises

    13 Behavioral Semantics

    13.1 Discretization

    13.2 Wait States and Activity States

    13.3 Pre- and Postconditions

    13.4 Triggering

    13.5 Step Semantics versus Single-Transition Semantics

    13.5.1 Concurrent Transitions

    13.5.2 Concurrent Events

    13.6 Multistep Semantics

    13.7 Action Semantics

    13.8 Time

    13.9 Summary

    13.10 Questions and Exercises

    14 Behavior Modeling and Design Guidelines

    14.1 Two Examples

    14.1.1 The Training Department

    14.1.2 The Heating Controller

    14.2 Guidelines

    14.2.1 The System Engineering Argument

    14.2.2 Finding a Behavior Description

    14.2.3 From the Environment to the System

    14.3 Summary

    14.4 Questions and Exercises

    PART V Communication Notations

    15 Data Flow Diagrams

    15.1 External Entities

    15.2 Flows

    15.3 Stores

    15.4 Processes

    15.4.1 Kinds of Processes

    15.4.2 States of a Process

    15.4.3 Data Process Specification

    15.4.4 Control Process Specification

    15.5 Parameterized DFDs

    15.6 Summary

    15.7 Questions and Exercises

    16 Communication Diagrams

    16.1 Requirement-Level Components

    16.2 Communication Channels

    16.3 Decomposition

    16.4 Allocation and Flowdown

    16.5 Summary

    16.6 Questions and Exercises

    17 Communication Semantics

    17.1 Component Behavioral Semantics

    17.2 Communication Channels

    17.3 The Network

    17.4 The Environment

    17.5 Summary

    17.6 Questions and Exercises

    18 Context Modeling Guidelines

    18.1 The System Boundary

    18.2 Context Diagrams

    18.3 The Context Boundary

    18.4 Structuring the Context

    18.5 Summary

    18.6 Questions and Exercises

    19 Requirements-Level Decomposition Guidelines

    19.1 Architectures

    19.2 Encapsulation versus Layering

    19.3 Architectural Styles

    19.4 Requirements-Level Architecture Guidelines

    19.4.1 Functional Decomposition

    19.4.2 Subject-Oriented Decomposition

    19.4.3 Communication-Oriented Decomposition

    19.4.4 Behavior-Oriented Decomposition

    19.4.5 Choosing Decomposition Guidelines

    19.5 Evaluation

    19.5.1 Syntactic Coherence Checks

    19.5.2 Traceability Check

    19.5.3 Data Access Check

    19.5.4 Executing the Model

    19.5.5 The System Engineering Argument

    19.5.6 Generating a Throw-away Prototype

    19.5.7 Quality Attributes Check

    19.6 Summary

    19.7 Questions and Exercises

    PART VI Software Specification Methods

    20 Postmodern Structured Analysis (PSA)

    20.1 Notations

    20.2 Coherence Rules

    20.3 Choosing Notations

    20.4 Summary

    20.5 Questions and Exercises

    21 Statemate

    21.1 Notations

    21.1.1 Temporal Events

    21.1.2 Starting, Suspending, Resuming, and Stopping Activities

    21.2 Choosing Notations

    21.2.1 Placing Activity in a Statechart or in an Activity Chart

    21.2.2 Representing Parallelism in Statecharts or in Activity Charts

    21.3 Execution Semantics

    21.4 Summary

    21.5 Questions and Exercises

    22 The Unified Modeling Language (UML)

    22.1 Notations

    22.2 Activity Diagrams

    22.2.1 Wait State and Activity States

    22.2.2 Sequence

    22.2.3 Hierarchy

    22.2.4 Parallelism

    22.2.5 Choice

    22.3 Static Structure Diagrams

    22.3.1 SSDs and ERDs

    22.3.2 Representing Classes and Objects

    22.3.3 Stereotypes

    22.3.4 The Meaning of a SSD

    22.4 Behavior Specification

    22.4.1 Specifying the Effect of Operation Calls

    22.4.2 Specifying the Effect of Signal Receptions

    22.4.3 Specifying Object Life Cycles

    22.4.4 Differences between Operations and Signals

    22.5 Communication and Coherence

    22.6 Static Structure Design Guidelines

    22.7 Execution Algorithm

    22.8 Collaboration and Sequence Diagrams

    22.9 Summary

    22.10 Questions and Exercises

    23 Not Yet Another Method (NYAM)

    23.1 Software Design Context

    23.2 From Flyweight to Heavyweight Use of Notations

    23.3 Design Approach

    23.4 Engineering Arguments

    23.5 Formality and Precision

    23.6 Summary


    A A Training Information System

    B An Electronic Ticket System

    C A Heating Control System

    D An Elevator Control System

    E Answers to Selected Exercises


    Online Materials (
    E (continued) Answers to Selected Exercises (pass protected)
    F A Controller for a Compact Dynamic Bus Station
    G A Cruise Control System
    H A Logistics Information System
    Slides for Teachers
    Handout of the Slides
    Notes for Teachers

Product details

  • No. of pages: 500
  • Language: English
  • Copyright: © Morgan Kaufmann 2002
  • Published: December 26, 2002
  • Imprint: Morgan Kaufmann
  • eBook ISBN: 9780080503950

About the Authors

Michael Jackson

Affiliations and Expertise

Independent Consultant, U.K.

R. Wieringa

Roel Wieringa is professor in the Department of Computer Science at the University of Twente, The Netherlands. He is author of Requirements Engineering (Wiley) and has edited several other books and published over 50 papers on software design methods. He has been involved in several national and international research projects with academia and industry in the area of requirements specification, distributed information systems, and software design methods.

Affiliations and Expertise

University of Twente, Enschede, The Netherlands

Ratings and Reviews

Write a review

There are currently no reviews for "Design Methods for Reactive Systems"