CRESCO Framework and Checker: Automatic generation of Reflective UML State Machine’s C++ Code and Checker

Software Systems are becoming increasingly complex leading to new Validation & Verification challenges. Model checking and testing techniques are used at development time while runtime verification aims to verify that a system satisfies a given property at runtime. This second technique complements the first one. This paper presents a tool that enables the developers to generate automatically reflective UML State Machine controllers and the Runtime Safety Properties Checker (RSPC) which checks a component-based software system’s safety properties defined at design phase. We address embedded systems whose software components are designed by Unified Modelling Language-State Machines (UML-SM) and their internal information can be observed in terms of model elements at runtime. RESCO (REflective State Machines-based observable software COmponents) framework, generates software components that provide this runtime observability. The checker uses software components’ internal status information to check system level safety properties. The checker detects when a system safety property is violated and starts a safe adaptation process to prevent the hazardous scenario. Thus, as demonstrated in the evaluated experiment but not shown in the paper due to the space limitation, the safety of the system is enhanced.

[1]  Bradley R. Schmerl,et al.  Model-based adaptation for self-healing systems , 2002, WOSS '02.

[2]  Adrian Francalanza,et al.  Runtime Adaptation for Actor Systems , 2015, RV.

[3]  Ann Q. Gates,et al.  A taxonomy and catalog of runtime software-fault monitoring tools , 2004, IEEE Transactions on Software Engineering.

[4]  Goiuria Sagardui Mendieta,et al.  Runtime observable and adaptable UML state machines: models@run.time approach , 2019, SAC.

[5]  Hans P. Zima,et al.  Adaptive Fault Tolerance for Many-Core Based Space-Borne Computing , 2010, Euro-Par.

[6]  Mauro Pezzè,et al.  Model-driven generation of runtime checks for system properties , 2014, International Journal on Software Tools for Technology Transfer.

[7]  Rohit Dhall Designing Graceful Degradation in Software Systems , 2017, RICE.

[8]  Elena Gómez-Martínez,et al.  A methodology for model-based verification of safety contracts and performance requirements , 2016 .

[9]  Jeffrey J. P. Tsai,et al.  A Noninterference Monitoring and Replay Mechanism for Real-Time Software Testing and Debugging , 1990, IEEE Trans. Software Eng..

[10]  Philip Koopman,et al.  Monitor Based Oracles for Cyber-Physical System Testing: Practical Experience Report , 2014, 2014 44th Annual IEEE/IFIP International Conference on Dependable Systems and Networks.

[11]  Pattie Maes,et al.  Concepts and experiments in computational reflection , 1987, OOPSLA '87.

[12]  Kishor S. Trivedi,et al.  A Classification of Software Faults , 2011 .