This book uses a variety of applications to illustrate a modeling method that helps
practitioners to manage complex software-intensive systems. The proposed method relies on the
combination of its abstraction concept and its operational character with behavioral models in
the precise and simple form of Abstract State Machines (ASMs). The book introduces both the
modeling method (Part I) and the available tool support (Part II): In Part I the authors detail
(using numerous examples) how to construct explain debug explore extend and reuse accurate
system design models starting from scratch. Only an elementary knowledge of common
mathematical (including set-theoretic) notation and some basic experience with computational
processes (systems programs algorithms) is assumed. Part II then shows how the modeling
method can be supported by implementing tools that make design models executable and
debuggable. To illustrate how to build debug and maintain systems and to explain their
construction in a checkable manner a general problem-oriented refinement method is adopted to
construct system models from components. The method starts with abstract models and refines
them step by step incrementally adding further details that eventually lead to code. Intended
for practitioners who build software intensive systems and students specializing in software
engineering it can be used both for self-study and for teaching and it can serve as a
reference book. Exercises are included to help readers check their understanding of the
explained concepts. For many models defined in the book refinements to executable versions can
be downloaded for experimental validation from the book's website at http:
modelingbook.informatik.uni-ulm.de