Efficient Modelling of Embedded Software Systems and their Formal Verification

We propose vectors of finite-state machines whose transitions are labeled by formulas of a common-sense logic as the modeling tool for embedded systems software. We have previously shown that this methodology is very efficient in producing succinct and clear models (e.g., in contrast to plain finite-state machines, Petri nets, or Behavior Trees). We show that we can capture requirements precisely and that we can simulate and validate the models. We can, therefore, directly apply Model-Driven Engineering and deploy the models into software for diverse platforms with full tractability of requirements. Moreover, the sequential semantics of our vector of finite-state machines enables model-checking, formally establishing the correctness of the model. Finally, our approach facilitates systematic Failure Modes and Effects Analysis (FMEA) for diverse target platforms. We demonstrate the effectiveness of our methodology with several examples widely discussed in the software engineering literature and compare this with other approaches, showing that we can prove more properties, and that some claims about verification in such approaches have been exaggerated or are incomplete.

[1]  Douglas C. Schmidt,et al.  Guest Editor's Introduction: Model-Driven Engineering , 2006, Computer.

[2]  Peter A. Lindsay,et al.  Experience with fault injection experiments for FMEA , 2011, Softw. Pract. Exp..

[3]  R. Geoff Dromey,et al.  From Requirements to Embedded Software - Formalising the Key Steps , 2009, 2009 Australian Software Engineering Conference.

[4]  Edmund M. Clarke,et al.  Model Checking , 1999, Handbook of Automated Reasoning.

[5]  Stephen J. Mellor,et al.  Executable UML - A Foundation for Model-Driven Architecture , 2002, Addison Wesley object technology series.

[6]  Ian J. Hayes,et al.  A semantics for behavior trees , 2010 .

[7]  V. Estivill-Castro,et al.  Efficient Model Checking and FMEA Analysis with Deterministic Scheduling of Transition-Labeled Finite-State Machines , 2012, 2012 Third World Congress on Software Engineering.

[8]  Stephan Merz,et al.  Model Checking , 2000 .

[9]  Joscha Bach,et al.  Designing Agent Behavior with the Extensible Agent Behavior Specification Language XABSL , 2003, RoboCup.

[10]  Mariusz Wzorek,et al.  Control System Framework for Autonomous Robots Based on Extended State Machines , 2006, International Conference on Autonomic and Autonomous Systems (ICAS'06).

[11]  Stuart Kent,et al.  Model Driven Engineering , 2002, IFM.

[12]  Vladimir Estivill-Castro,et al.  Visual-Trace Simulation of Concurrent Finite-State Machines for Validation and Model-Checking of Complex Behaviour , 2012, SIMPAR.

[13]  Rene Hexel,et al.  Module Interactions for Model-Driven Engineering of Complex Behaviour of Autonomous Robots , 2011, ICSEA 2011.

[14]  Rene Hexel,et al.  Failure mode and effects analysis (FMEA) and model-checking of software for embedded systems by sequential scheduling of vectors of logic-labelled finite-state machines , 2012 .

[15]  Ferdinand Wagner,et al.  Modeling Software with Finite State Machines : A Practical Approach , 2006 .