140 likes | 162 Views
Explore runtime verification technique for detecting faults in software by observing I/O behavior during normal operations. Learn about formal description, interpretation, and strategies for runtime verification in Java.
E N D
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
I N F O S T A T I O N Interface Agents Agent and Service layer DB Simple Service AAA Service Connection Adviser Agent Support Agent layer Query Manager Agent ACL with filtered devices List with devices ACL Create agent and give it connection Blue-tooth Agent layer Connection Agent Scanner Agent Connection Initiator Agent Receive Thread Send Thread Bluetooth API 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