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 vital to have a good grasp of their conceptual underpinnings. Most books in this area focus solely on notation and don't clarify the important issues. This book is different. It's intellectually rigorous, insightful, and original. In particular, the coverage of UML is far more substantial and reasoned than I have found in any of its 'official' texts. --Daniel Jackson, Laboratory for Computer Science, MIT This book makes a significant contribution to the software engineering literature. Although the emphasis is on the use of notations to express the functionality of reactive systems, the case studies used throughout the book also highlight the importance of nonfunctional or quality attributes. The summaries included in each chapter are very useful as a shortcut if the reader lacks the time to cover the chapter. The questions and exercises will be useful for instructors and students. --Dr. Mario R. Barbacci, Software Engineering Institute, Carnegie Mellon University This book is a primer for reactive system developers. I have worked for over 20 years developing telecom systems and automotive electronics. If this book had been around earlier, it could have helped us avoid many costly problems we encountered. --Felix Bachmann, Carnegie Mellon University, Software Engineering Institute