Abstract

The increasing complexity of reactive systems can be mitigated with the use of components and composition languages in model-driven engineering. Designing composition languages is a challenge itself as both practical applicability (support for different composition approaches in various application domains), and precise formal semantics (support for verification and code generation) have to be taken into account. In our Gamma Statechart Composition Framework, we designed and implemented a composition language for the synchronous, cascade synchronous and asynchronous composition of statechart-based reactive components. We formalized the semantics of this composition language that provides the basis for generating composition-related Java source code as well as mapping the composite system to a back-end model checker for formal verification and model-based test case generation. In this paper, we present the composition language with its formal semantics, putting special emphasis on design decisions related to the language and their effects on verifiability and applicability. Furthermore, we demonstrate the design and verification functionality of the composition framework by presenting case studies from the cyber-physical system domain.

Highlights

  • Reactive systems process events coming from the environment and react to them in accordance with their internal states

  • We present the formal semantics of the language, discussing the related design decisions that coped with practical applicability and verifiability of the composed system and allowed the implementation of the above-mentioned code generation, formal verification, and test case generation functionalities

  • The raison d’etre of the cascade composite semantic variant is twofold. Even though it requires the same amount of memory to represent as synchronous composite components, the effect of an input event on output events is computed in a single step, further compressing the state space

Read more

Summary

Introduction

Reactive systems process events coming from the environment and react to them in accordance with their internal states. Modeling standards like UML and SysML have adopted the statechart formalism, but they intentionally left parts of its dynamic semantics formally un- or underspecified [3,4], even in the recently published specifications (fUML [5], PSSM [6] and PSCS [7]). These specifications provide execution semantics, but several aspects are not fixed (e.g., there are no assumptions about global synchronization). Design tools, such as Rhapsody, BridgePoint, MagicDraw, and Yakindu Statechart Tools support slightly different semantic variants of the formalism [8,9]

Objectives
Results
Discussion
Conclusion
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call