modular transformation from af3 to nuxmv
play

Modular transformation from AF3 to nuXmv Sudeep Kanav, Vincent - PowerPoint PPT Presentation

Modular transformation from AF3 to nuXmv Sudeep Kanav, Vincent Aravantinos fortiss GmbH Abstract A transformation between a high-level and a low-level model Two way Modular Employs reusability Implemented in Java


  1. Modular transformation from AF3 to nuXmv Sudeep Kanav, Vincent Aravantinos fortiss GmbH

  2. Abstract • A transformation between a high-level and a low-level model • Two way • Modular • Employs reusability • Implemented in Java

  3. Motivation Support formal verification in our MDE tool AutoFOCUS3

  4. Preliminary: AutoFOCUS3 “AF3” (1/2) Behavior modelling Structure modelling Deployment modelling Hardware modelling …

  5. Preliminary: AutoFOCUS3 “AF3” (2/2) • Model-based development tool for embedded systems • Execution semantics à code generation, simulation, formal verification • Integrates most development phases in one tool and connects them à models for: requirements, architecture, behavior, hardware and for connections between those: traces, deployment https://af3.fortiss.org/

  6. nuXmv 1 • Classical symbolic model checker • Systems are modeled as finite state machines • Supports LTL 2 and CTL 3 specifications 1 https://nuxmv.fbk.eu 2 Linear temporal logic 3 Computational tree logic

  7. What is so special?

  8. What is so special? • Metamodel is not a toy metamodel • Reuse: reusing parts of the forward transformation in reverse transformation.

  9. Real world metamodel • Metamodel not designed for demonstrating model transformations • Legacy metamodel: it has been evolving for 8 years • Elements implement various interfaces related to other features of the tool (e.g., UI)

  10. Real world metamodel

  11. Reuse • Modular design makes reuse easier • Parts of the AF3 to nuXmv transformation used for the trace interpretation

  12. Transformation Description

  13. Chain of transformations

  14. Running example

  15. Running Example t = 1 t = 2

  16. Transformation on the running example

  17. Transformation on the running example ToStateAutomaton

  18. NoValResolution

  19. ArrayToStructure

  20. FlattenStructures

  21. StronglyToWeaklyCausal

  22. Counterexample Transformation • The user needs to observe the trace • Lifting the result to the user level • Instead of performing a reverse transformation, we reuse some parts of the above transformation to achieve this

  23. Counterexample Transformation [ip] – Value of “ip” in the trace

  24. Counterexample Transformation [ip] ⟹ [ip_PRESENT] ? [ip] : NoVal (applying NoValResolution transformation)

  25. Counterexample Transformation [ip] ⟹ [ip_PRESENT] ? [ip] : NoVal ⟹ [ip_PRESENT] ? [[ip_elem0], [ip_elem1]] : NoVal (applying ProductToSimpleTypes transformation)

Recommend


More recommend