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, with additional examples on the companion Web site.


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 o


No. of pages:
© 2003
Morgan Kaufmann
Print ISBN:
Electronic ISBN:

About the editor

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


"This book presents a refreshing but serious and conscientious approach to the work of developing useful software. Roel Wieringa, being a philosopher as well as an engineer, is determined to convey understanding along with practice, and insight along with information. He is not blinded by ephemeral fashions in notation, but draws eclectically from both new and old ideas and techniques. He looks critically at widely used techniques and notations, and judges clearly what should be adopted because it is simple and good, what must be supplemented from another source because it is deficient, and what must be discarded because it is too complicated." —From the Foreword by Michael Jackson, Independent Consultant, UK "Design Methods for Reactive Systems is a most welcome addition to the literature on systems and software engineering. It is serious and balanced, refreshingly general and hype-free, and is one of the very few books in this area that is not a user manual for a particular methodology. It concentrates admirably on the difficult subject of reactive systems and their behavior, going to considerable lengths to present an impartial view of the main approaches to this subject." —Dr. David Harel, Dean, Faculty of Mathematics and Computer Science, The Weizmann Institute of Science, Israel "Wieringa's book is one of the most significant design textbooks of the decade. Wieringa uses his undoubted experience in both practical and theoretical design to create a textbook that moves beyond the "statics" of transformational (predetermined) systems to the "dynamics" of reactive systems. In its turn, it lays down the foundations and provides the rationale for a subsequent subject on software product engineering. As such, it fills a very definite need." —M. Whitelaw, Charles Stuart University, Wagga Wagga, Australia "To use methods well, it's vi