Statecharts: A visual formalism for complex systems
Science of Computer Programming
Communications of the ACM
Object lifecycles: modeling the world in states
Object lifecycles: modeling the world in states
The structure and performance of interpreters
Proceedings of the seventh international conference on Architectural support for programming languages and operating systems
Dhrystone: a synthetic systems programming benchmark
Communications of the ACM
Executable UML: A Foundation for Model-Driven Architectures
Executable UML: A Foundation for Model-Driven Architectures
Using UML Action Semantics for model execution and transformation
Information Systems - The 13th international conference on advanced information systems engineering (CAiSE*01)
Efficient Interpretation of State Charts
FCT '93 Proceedings of the 9th International Symposium on Fundamentals of Computation Theory
On the Algorithmics of Higraphs
On the Algorithmics of Higraphs
Formalizing the Semantics of UML Statecharts with Z*
CIT '04 Proceedings of the The Fourth International Conference on Computer and Information Technology
Model-based development of dynamically adaptive software
Proceedings of the 28th international conference on Software engineering
An efficient mechanism for matching multiple patterns with streamed XML data
SE'07 Proceedings of the 25th conference on IASTED International Multi-Conference: Software Engineering
MOCAS: A State-Based Component Model for Self-Adaptation
SASO '09 Proceedings of the 2009 Third IEEE International Conference on Self-Adaptive and Self-Organizing Systems
Interpretation of history pseudostates in orthogonal states of UML state machines
NGITS'09 Proceedings of the 7th international conference on Next generation information technologies and systems
A dynamic component model for cyber physical systems
Proceedings of the 15th ACM SIGSOFT symposium on Component Based Software Engineering
Execution of natural language requirements using State Machines synthesised from Behavior Trees
Journal of Systems and Software
Hi-index | 0.00 |
Modelling system behaviour by means of UML Behavioral State Machines is an established practice in software engineering. Usually, code generation is employed to create a system's software components. Although this approach yields software with a good runtime performance, the resulting system behaviour is static. Changes to the behaviour model necessarily provoke an iteration in the code generation workflow and a re-deployment of the generated artefacts. In the area of autonomic systems engineering, it is assumed that systems are able to adapt their runtime behaviour in response to a changing context. Thus, the constraints imposed by a code generation approach make runtime adaptation difficult, if not impossible. This article investigates a solution to this problem by employing interpretation techniques for the runtime execution of UML State Machines, enabling the adaptability of a system's runtime behaviour on the level of single model elements. This is done by devising concepts for behaviour model interpretation, which are then used in a proof-of-concept implementation to demonstrate the feasibility of the approach. For a quantitative evaluation we provide a performance comparison between the proof-of-concept implementation and generated code for a number of benchmark models. We find that UML State Machine interpretation has a performance overhead when compared with static code generation, but found it to be adequate for the majority of situations, except when dealing with high-throughput or delay-sensitive data.