Skip to main content

2018 | Buch

Modeling Companion for Software Practitioners

verfasst von: Prof. Dr. Egon Börger, Alexander Raschke

Verlag: Springer Berlin Heidelberg

insite
SUCHEN

Über dieses Buch

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

Inhaltsverzeichnis

Frontmatter

Modeling

Frontmatter
Chapter 1. Introduction: The Role of Modeling
Abstract
(Introduction) explains why modeling cannot be achieved by programming alone. It describes the role of models for a) building reliable software-intensive systems, and for b) intellectually managing their complexity. It explains the two fundamental conceptual features - abstraction and refinement - by which Abstract State Machines (ASMs), a pseudo-code form of models with a rigorously defined behavior, permit to realize this role. (Introduction) explains why modeling cannot be achieved by programming alone. It describes the role of models for a) building reliable software-intensive systems, and for b) intellectually managing their complexity. It explains the two fundamental conceptual features - abstraction and refinement - by which Abstract State Machines (ASMs), a pseudo-code form of models with a rigorously defined behavior, permit to realize this role.
Egon Börger, Alexander Raschke
Chapter 2. Seven Constructs for Modeling Single-Agent Behavior
Abstract
Introduces stepwise the seven basic constructs used to model single-agent systems by Abstract State Machines (ASMs). It starts from scratch and is focussed on the central role of the ASM abstraction and refinement concept. Via small control system examples, it is explained how to use those constructs a) to build abstract models for such systems, and b) to refine them in a controllable manner to executable code. It is illustrated how ASMs support reliable requirements capture, controlled reuse of models, integration of data and control features, separation of normal behavior from error handling, and componentwise construction.
Egon Börger, Alexander Raschke
Chapter 3. Modeling Concurrent Systems
Abstract
Extends the language of single-agent Abstract State Machines (ASMs) for modeling concurrent and/or communicating processes. It explains how to pass from synchronous to asynchronous process models and illustrates the role of model validation for concurrent systems (exploiting the executability of ASMs). Monitoring of asynchronous process networks is used as example for the application of communicating ASMs as modeling instrument.
Egon Börger, Alexander Raschke
Chapter 4. Modeling Context Awareness
Abstract
Explains context-aware Abstract State Machines (ASMs). It shows how the ASM parameterization mechanism permits a) to gently manage a rather general form of partitioning of states and distributed computations, and b) to effectively separate the descriptions of system and of environment features. Numerous programming patterns, communication patterns, and some common control flow schemes are modeled to illustrate the power of ASM parameterization.
Egon Börger, Alexander Raschke
Chapter 5. Modeling Business Processes
Abstract
Illustrates the usage of Abstract State Machines (ASMs) in the area of business process modeling (BPM). A commercially used web service modeling pattern (Virtual Provider) is defined. A BPM-specific class of ASM net diagrams is introduced and shown to support IBM’s Guard-State-Milestone approach and the central communication concept of the Subject-Oriented BPM method. The focus is on showing how ASM refinements offer a seamless integratation of data-oriented (textual) and control-flow oriented (graphical) modeling means.
Egon Börger, Alexander Raschke
Chapter 6. Modeling Distributed Systems
Abstract
Shows how to define high-level models to capture, explain and analyse the behavior of present-day distributed systems. Two concrete examples are developed: a) a ground model for the Ad hoc On-Demand Distance Vector routing protocol AODV, which serves to direct wireless communication between mobile independent agents, b) an abstract and a refined model for Cassandra, a noSQL database management system for concurrent processes. Both examples illustrate the role of ground models to provide a high-level yet complete explanation of complex system behavior, avoiding to bury behaviorally relevant design decisions into implementing code.
Egon Börger, Alexander Raschke

Implementation

Frontmatter
Chapter 7. Syntax and Semantics of ASMs
Abstract
Provides a detailed mathematical definition of the syntax and the semantics of basic and concurrent Abstract State Machines (ASMs).
Egon Börger, Alexander Raschke
Chapter 8. Debugging System Design (CoreASM)
Abstract
Defines a high-level model for the CoreASM interpreter, a tool which has been developed for the computer execution of Abstract State Machine (ASM) models. Also a debugger to debug CoreASM models is specified. Both definitions are given by basic ASM models.
Egon Börger, Alexander Raschke
Chapter 9. Control State Diagrams (Meta Model)
Abstract
Illustrates an ASM-based meta modeling approach to define the language of Control State Diagrams (CSDs), a flowchart-like graphical notation for control state ASMs. The behavioral meaning of CSDs is defined by a translator ASM which compiles CSDs to basic ASMs.
Egon Börger, Alexander Raschke
Backmatter
Metadaten
Titel
Modeling Companion for Software Practitioners
verfasst von
Prof. Dr. Egon Börger
Alexander Raschke
Copyright-Jahr
2018
Verlag
Springer Berlin Heidelberg
Electronic ISBN
978-3-662-56641-1
Print ISBN
978-3-662-56639-8
DOI
https://doi.org/10.1007/978-3-662-56641-1