Abstract

Statechart is a visual modelling language for systems. Our variant of the statechart has local variables, which interact significantly with the remainder of the language semantics. It allows arbitrary interleaving of concurrently executing action code, which allows more precise modelling of systems and upstream analysis of the same. We also establish the criteria based on our semantics for defining conflicting transitions and valid simulations. Our semantics do not allow transition conflicts in simulations and are stricter than most other available semantics of statecharts in that sense. In this paper, we extend the work on modular statecharts and present updated operational semantics with concurrency. We present the operational semantics in the form of the simulation algorithm. Our executable semantics can be used to simulate statechart models and verify their correctness. We present a preliminary setup to carry out fuzz testing of statechart models, an idea that does not have precedent in the literature to the best of our knowledge. We have used our simulator in conjunction with a well-known fuzzer to do fuzz testing of statechart models of non-trivial sizes and have found issues in them that would have been hard to find through inspection.

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