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
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
28th Nordic Workshop on Programming Theory (NWPT’16), Denmark
1 / 23
◮ 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
2 / 23
◮ Use runtime monitors to observe the run of systems ◮ Check whether the current execution of such systems
◮ Such correctness properties can be formulated in
3 / 23
4 / 23
linguistically typed
System Specification
Simulation
5 / 23
Input Start Task Transition
◮ Generate Python code for the robot and monitor
6 / 23
GoFwd GoBck GoBck TurnL TurnR Obstacle Border Timeout : GoFwd
7 / 23
GoFwd GoBck GoBck TurnL TurnR Obstacle Border Timeout : GoFwd : GoFwd : GoBck : Border
8 / 23
GoFwd GoBck GoBck TurnL TurnR Obstacle Border Timeout : GoFwd : GoFwd : GoBck : Border : GoBck
9 / 23
GoFwd GoBck GoBck TurnL TurnR Obstacle Border Timeout : GoFwd : GoFwd : GoBck : Border : GoBck : GoBck : TurnR : Timeout
10 / 23
GoFwd GoBck GoBck TurnL TurnR Obstacle Border Timeout : GoFwd : GoFwd : GoBck : Border : GoBck : GoBck : TurnR : Timeout : TurnR
11 / 23
GoFwd GoBck GoBck TurnL TurnR Obstacle Border Timeout : GoFwd : GoFwd : GoBck : Border : GoBck : GoBck : TurnR : Timeout : TurnR : GoFwd : TurnR : Timeout
12 / 23
GoFwd GoBck GoBck TurnL TurnR Obstacle Border Timeout : GoFwd G(obs → X(¬ obs U to))
13 / 23
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
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
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
17 / 23
Current Snapshot
Intermediate Snapshot
Next Snapshot
Current State
Next State
18 / 23
19 / 23
◮ 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
◮ Romba/Spinner simple "Found" message ◮ More advanced messages for robots explore area
◮ Broadcast Hello messages (ID, timestamp and data) ◮ The number of retransmission, reTx, is counted ◮ Maximum number of transmissions: MaxReTx
21 / 23
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
◮ Present a metamodel that captures
◮ Sensors ◮ Motors ◮ Communication
◮ Integrate runtime verification into the whole
◮ Design ◮ Simulation ◮ Code generation for the robot and monitor
◮ Allow the design of distributed systems in the future
◮ Distribution can be modeled through replication
◮ Use models for Model-based testing
23 / 23