1.What is runtime verification?

Runtime verification of Java
programs using ITL
Vladimir Valkanov,
Damyan Mitev
Plovdiv, Bulgaria
SEERE, Neum 2009
1.What is runtime verification?
- technique that combines formal verification
and program execution.
- detecting faults in a system by passively
observing its I/O behavior during normal
operations.
SEERE, Neum 2009
Is runtime verification better?


Normal testing techniques, e.g. unit testing, ample
only a partial proof of correctness. It does not
guarantee that the system will operate as expected
under untested inputs. Undiscovered faults may
result in failures in runtime.
Monitoring the software, during the runtime for
correctness, failures can be catch when they
happened, for any input which causes them to occur.
SEERE, Neum 2009



Behavior may depend heavily on the
environment of the target system
Some information is available only at runtime
or is convenient to be checked at runtime
The correctness of the system model has to
imply correctness of the implementation.
SEERE, Neum 2009
2.Infostation middleware




Agent-oriented middleware
Manage mobile users and services
Four basic scenarios
Time dependant
SEERE, Neum 2009
SEERE, Neum 2009
I
N
F
O
S
T
A
T
I
O
N
Agent and
Service
layer
Support
Agent layer
Interface Agents
DB
Simple Service
Connection
Adviser Agent
List with
devices
Bluetooth
Agent
layer
ACL with filtered devices
AAA Service
Query Manager
Agent
ACL
Create agent and give it
connection
Scanner Agent
Connection
Initiator Agent
Bluetooth API
Connection Agent
Send
Thread
Receive
Thread
Create conn
Mobile
Device
Bluetooth service and
address
SEERE, Neum 2009
Detection and control of the scenario



Formal description of the scenarios
Mechanism for interpretation of that
description
Strategies for runtime verification
SEERE, Neum 2009
Scenario formalism

Interval Temporal Logic
–
–
–
propositional and first-order logical reasoning
finite sequences – time intervals
capable of handling sequential and parallel
composition
SEERE, Neum 2009
Interpretation of the discription




Tempura - executable ITL framework
written in C
open source
rewriting in Java
SEERE, Neum 2009
Assert point-based verification




points directly written in the source code
every assertion point is a set of variables
we can tell the system what to do in case of
failure
we do not know when the check will be
executed
SEERE, Neum 2009
Event-based verification






depend on some event, e.g. timer
using parallel thread of the main program
the thread generate state and compare it
with system state
we know the exact time of check
it is difficult to control the main program
the resource usage if higher
SEERE, Neum 2009
Which strategy to choose?

Depends on the implementation
-every agent to have his own verification
mechanism
SEERE, Neum 2009
THANKS FOR YOUR ATTENTION
SEERE, Neum 2009