Integration of Runtime Verification into Metamodeling F. Macias T. - - PowerPoint PPT Presentation

integration of runtime verification into metamodeling
SMART_READER_LITE
LIVE PREVIEW

Integration of Runtime Verification into Metamodeling F. Macias T. - - PowerPoint PPT Presentation

Integration of Runtime Verification into Metamodeling F. Macias T. Scheffel M. Schmitz R. Wang M. Leucker A. Rutle V. Stolz 28th Nordic Workshop on Programming Theory (NWPT16), Denmark 1 / 23 Why Runtime Verification? DSML do not


slide-1
SLIDE 1

Integration of Runtime Verification into Metamodeling

  • F. Macias
  • T. Scheffel
  • M. Schmitz
  • R. Wang
  • M. Leucker
  • A. Rutle
  • V. Stolz

28th Nordic Workshop on Programming Theory (NWPT’16), Denmark

1 / 23

slide-2
SLIDE 2

Why Runtime Verification?

◮ DSML do not shield the software from design errors ◮ Runtime Verification checks the execution of real system

◮ Consider environmental influences ◮ React to failures

◮ Testing is seldom exhaustive ◮ Model Checking can not always gurantee the correctness

  • f executing system

2 / 23

slide-3
SLIDE 3

Runtime Verification

◮ Use runtime monitors to observe the run of systems ◮ Check whether the current execution of such systems

violates given correctness properties

◮ Such correctness properties can be formulated in

linear-time temporal logic, LTL

3 / 23

slide-4
SLIDE 4

Integrating RV into Modeling

Goal

⇒ Integrate RV into software engineering process ⇒ Domain experts and verification engineers use same model DSML Model Simulation Source Code RV

4 / 23

slide-5
SLIDE 5

Multilevel Metamodeling

. . . DSML Model

  • ntologically typed
  • ntologically typed

LTL (Ling. metamodel) Property

  • ntol. typed

linguistically typed

M State

System Specification

Snapshot Subformula

Simulation

  • ntol. typed
  • ntologically typed

5 / 23

slide-6
SLIDE 6

Example Scenario

GoFwd GoBck GoBck TurnL TurnR Obstacle Border Timeout

Input Start Task Transition

G(obs → X(¬ obs U to))

◮ Generate Python code for the robot and monitor

6 / 23

slide-7
SLIDE 7

Example Execution

GoFwd GoBck GoBck TurnL TurnR Obstacle Border Timeout : GoFwd

7 / 23

slide-8
SLIDE 8

Example Execution

GoFwd GoBck GoBck TurnL TurnR Obstacle Border Timeout : GoFwd : GoFwd : GoBck : Border

8 / 23

slide-9
SLIDE 9

Example Execution

GoFwd GoBck GoBck TurnL TurnR Obstacle Border Timeout : GoFwd : GoFwd : GoBck : Border : GoBck

9 / 23

slide-10
SLIDE 10

Example Execution

GoFwd GoBck GoBck TurnL TurnR Obstacle Border Timeout : GoFwd : GoFwd : GoBck : Border : GoBck : GoBck : TurnR : Timeout

10 / 23

slide-11
SLIDE 11

Example Execution

GoFwd GoBck GoBck TurnL TurnR Obstacle Border Timeout : GoFwd : GoFwd : GoBck : Border : GoBck : GoBck : TurnR : Timeout : TurnR

11 / 23

slide-12
SLIDE 12

Example Execution

GoFwd GoBck GoBck TurnL TurnR Obstacle Border Timeout : GoFwd : GoFwd : GoBck : Border : GoBck : GoBck : TurnR : Timeout : TurnR : GoFwd : TurnR : Timeout

12 / 23

slide-13
SLIDE 13

Example Execution II

GoFwd GoBck GoBck TurnL TurnR Obstacle Border Timeout : GoFwd G(obs → X(¬ obs U to))

13 / 23

slide-14
SLIDE 14

Example Execution II

GoFwd GoBck GoBck TurnL TurnR Obstacle Border Timeout : GoFwd G(obs → X(¬ obs U to)) : GoFwd : GoBck : Obstacle G(obs → X(¬ obs U to))

14 / 23

slide-15
SLIDE 15

Example Execution II

GoFwd GoBck GoBck TurnL TurnR Obstacle Border Timeout : GoFwd G(obs → X(¬ obs U to)) : GoFwd : GoBck : Obstacle G(obs → X(¬ obs U to)) : GoBck ¬ obs U to

15 / 23

slide-16
SLIDE 16

Example Execution II

GoFwd GoBck GoBck TurnL TurnR Obstacle Border Timeout : GoFwd G(obs → X(¬ obs U to)) : GoFwd : GoBck : Obstacle G(obs → X(¬ obs U to)) : GoBck ¬ obs U to : GoBck : Obstacle ¬ obs U to

16 / 23

slide-17
SLIDE 17

Coupled Model Transformation Rules

x: Task y: Task i: Input t: Transition META FROM TO : x : i

: x : i : y : t

17 / 23

slide-18
SLIDE 18

Model Transformation Rules

Sn

Current Snapshot

Si,n

Intermediate Snapshot

Sn+1

Next Snapshot

qn

Current State

qn+1

Next State

Environment Rules Behavior Rules Monitor Rules query query

18 / 23

slide-19
SLIDE 19

Example Video

19 / 23

slide-20
SLIDE 20

Communication

Goal

⇒ Model distributed systems

◮ Current scenario: two robots meet ◮ Client/Server Model ◮ Sockets - send and receive data ◮ UDP (The User Datagram Protocol)

◮ No handshaking dialogues ◮ No guarantee of delivery, ordering, or duplicate protection ◮ Suitable for purposes where error checking and correction

are performed in the application

◮ Broadcasting information 20 / 23

slide-21
SLIDE 21

Broadcast

◮ Romba/Spinner simple "Found" message ◮ More advanced messages for robots explore area

and share updates to a common map

◮ Broadcast Hello messages (ID, timestamp and data) ◮ The number of retransmission, reTx, is counted ◮ Maximum number of transmissions: MaxReTx

21 / 23

slide-22
SLIDE 22

Example Scenario for communication

GoFwd Idle GoBack TurnLeft GoFwd TurnLeft Happy GoBack TurnLeft Border Found Obstacle FarObstacle Bump Timeout TurnRight TurnLeft GoFwd Happy GoBack Idle Found Obstacle FarObstacle Bump Timeout

Romba Spinner

Found Found

22 / 23

slide-23
SLIDE 23

Conclusion and outlook

◮ Present a metamodel that captures

a wider range of aspects of the robots

◮ Sensors ◮ Motors ◮ Communication

◮ Integrate runtime verification into the whole

software engineering process

◮ Design ◮ Simulation ◮ Code generation for the robot and monitor

◮ Allow the design of distributed systems in the future

◮ Distribution can be modeled through replication

  • f existing instances on the modeling level

◮ Use models for Model-based testing

23 / 23