Runtime Verification of Executable Models
Fernando Macías – fernando.macias@hib.no Adrian Rutle – adrian.rutle@hib.no Volker Stolz – volker.stolz@hib.no
Runtime Verification of Executable Models Fernando Macas - - PowerPoint PPT Presentation
NWPT 2015 Runtime Verification of Executable Models Fernando Macas fernando.macias@hib.no Adrian Rutle adrian.rutle@hib.no Volker Stolz volker.stolz@hib.no Motivation Modelling offers one more level of abstraction above
Fernando Macías – fernando.macias@hib.no Adrian Rutle – adrian.rutle@hib.no Volker Stolz – volker.stolz@hib.no
› Different views of the system › The solution can be specified in the problem space
2
Problem space Domain experts Solution space Software engineers
3
› Applied on small parts of the model › Cumbersome in big models › Not exhaustive
› Exhaustive and strong › Bad scalability
4
› Temporal properties: Invariants, implications of present/past events in future events, global properties (e.g: termination) › Monitors: Check properties against running instances
5
› Interpreted: The model itself is run in a custom runtime
transformations1 › Compiled: The model is transformed into a machine- readable representation, e.g: imperative code2
6
Fernando Macías – fernando.macias@hib.no Adrian Rutle – adrian.rutle@hib.no Volker Stolz – volker.stolz@hib.no
8
› Convolution of models › Bad maintainability
Meta-metamodel Metamodel Model
8
› Convolution of models › Bad maintainability
Meta-metamodel Metamodel Typed by Model Typed by
9
9
Model Model Model Model Instance Typed by Typed by Typed by Typed by
10
Model Model Model Model Instance Typed by Typed by Typed by Typed by
10
Model Model Model Model Instance Typed by Typed by Typed by Typed by Typed by Typed by
11
› Define custom executable modelling languages › Create models according to those languages › Run the instances with default semantics › Customize semantics › Simulation › Deployment › Runtime verification over the running instances
Model Model Model Model Instance Typed by Typed by Typed by Typed by Typed by Typed by
12
Model Model Model Model Instance Typed by Typed by Typed by Typed by Typed by Typed by
12
Model Model Model Model Instance Typed by Typed by Typed by Typed by Typed by Typed by Property Specification Language
13
14
14
14
14
15
Model Model Model Model Instance Typed by Typed by Typed by Typed by Typed by Typed by Property Specification Language 1
15
Model Model Model Model Instance Typed by Typed by Typed by Typed by Typed by Typed by Property Specification Language 1 Property Specification Language 2
15
Property Language Metamodel Model Model Model Model Instance Typed by Typed by Typed by Typed by Typed by Typed by Property Specification Language 1 Property Specification Language 2
15
Property Language Metamodel Model Model Model Model Instance Typed by Typed by Typed by Typed by Typed by Typed by Property Specification Language 1 Property Specification Language 2
16
17
Model Model F G
18
1
n n
19
F1 (t) F2 (t) Mp(t) Unrolling (MT) F1 (t) F2 (t) Mp(t) Compare with instance (query) Mr (t) F1 (t+1) F2 (t+1) Mp(t+1) Reduction (MT) F1 (t) F2 (t) Mp(t+1)
abstract rule processX { from input : mmProperties!X to
formula <- input.formula.formula ) }
20
21
22
23
23
Thank you for your attention!