
Design Methods for Reactive Systems
Yourdon, Statemate, and the UML
Free Global Shipping
No minimum orderDescription
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.
Readership
Students, engineers, teachers, and researchers in software development or software engineering.
Table of 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
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
There are currently no reviews for "Design Methods for Reactive Systems"