Yourdon, Statemate, and the UML To order this title, and for more information, click here
By R. Wieringa, University of Twente, Enschede, The Netherlands
Description 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.
Audience
Students, engineers, teachers, and researchers in software development or software engineering.
Contents FOREWORD
PREFACE
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
Appendices
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
GLOSSARY
BIBLIOGRAPHIC
REMARKS
BIBLIOGRAPHY
INDEX
Online Materials (www.mkp.com/dmrs/)
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
Books and book related electronic products are priced in US dollars (USD), euro (EUR), and Great Britain Pounds (GBP). USD prices apply to the Americas and Asia Pacific. EUR prices apply in Europe and the Middle East. GBP prices apply to the UK and all other countries.