Download polyRV User Manual

Transcript
Contents
1 Introduction
1.1 Runtime Verification . . . .
1.2 Larva Runtime Monitor . .
1.2.1 Larva Architecture
1.2.2 ATM Example . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2 PolyLarva Specification Language
2.1 Events . . . . . . . . . . . . . . . . . . . . .
2.1.1 Event Variations . . . . . . . . . . .
2.2 States . . . . . . . . . . . . . . . . . . . . .
2.2.1 Separating Monitor Side and System
2.2.2 Saving Monitor State . . . . . . . .
2.3 Conditions and Actions . . . . . . . . . . .
2.4 Rules . . . . . . . . . . . . . . . . . . . . . .
2.4.1 Enabling / Disabling Rules . . . . .
2.4.2 Extended Rules . . . . . . . . . . . .
2.5 Timers . . . . . . . . . . . . . . . . . . . . .
2.5.1 Timer Events . . . . . . . . . . . . .
2.5.2 Timer Conditions . . . . . . . . . . .
2.5.3 Timer Actions . . . . . . . . . . . .
2.6 Specification Script Setup . . . . . . . . . .
2.7 Contexts . . . . . . . . . . . . . . . . . . . .
2.7.1 Nesting of Contexts . . . . . . . . .
2.8 Internal Events . . . . . . . . . . . . . . . .
2.9 Imports . . . . . . . . . . . . . . . . . . . .
2.10 Comments . . . . . . . . . . . . . . . . . . .
2.11 Sample Script . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4
4
5
5
8
. . . . . . .
. . . . . . .
. . . . . . .
Side States
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
11
11
15
16
16
17
18
20
21
22
22
22
23
23
24
25
25
26
29
30
30
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3 Usage
33
3.1 Generating the PolyLarva Monitor . . . . . . . . . . . . . . . . . 33
3.1.1 The PolyLarva Compiler Output . . . . . . . . . . . . . 34
3.1.2 Running the PolyLarva Monitor . . . . . . . . . . . . . . 35
3.1.3 Viewing the PolyLarva Monitor Logs . . . . . . . . . . . 35
3.2 Generating the PolyLarva Language Specific Monitoring Code . 37
3.2.1 The PolyLarva Language Specific Compiler for Java . . . 38
3.2.2 Using PolyLarva to Monitor a System . . . . . . . . . . . 39
3.2.3 Viewing the PolyLarva Monitor Logs on System Side . . 40
3.3 PolyLarva Monitoring Example . . . . . . . . . . . . . . . . . . 42
3.3.1 Pin Validation . . . . . . . . . . . . . . . . . . . . . . . . 43
3.3.2 Cash Withdrawal . . . . . . . . . . . . . . . . . . . . . . . 44
3.3.3 The PolyLarva Monitor Log File for ATM System . . . . 45
3.3.4 The PolyLarva Monitor System Side Log File for ATM
System . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2