Prototyping Formal System Models with Active Objects
arXiv:1810.02470 · doi:10.4204/EPTCS.279.7
Abstract
We propose active object languages as a development tool for formal system models of distributed systems. Additionally to a formalization based on a term rewriting system, we use established Software Engineering concepts, including software product lines and object orientation that come with extensive tool support. We illustrate our modeling approach by prototyping a weak memory model. The resulting executable model is modular and has clear interfaces between communicating participants through object-oriented modeling. Relaxations of the basic memory model are expressed as self-contained variants of a software product line. As a modeling language we use the formal active object language ABS which comes with an extensive tool set. This permits rapid formalization of core ideas, early validity checks in terms of formal invariant proofs, and debugging support by executing test runs. Hence, our approach supports the prototyping of formal system models with early feedback.
arXiv commentIn Proceedings ICE 2018, arXiv:1810.02053
References in corpus (1)
Cited by in corpus (4)
- Tool Support for Validation of Formal System Models: Interactive Visualization and Requirements Traceability
- The Right Kind of Non-Determinism: Using Concurrency to Verify C Programs with Underspecified Semantics
- Crowbar: Behavioral Symbolic Execution for Deductive Verification of Active Objects
- Deductive Verification of Programs with Underspecified Semantics by Model Extraction