Static verification of software is becoming ever more effective and efficient. Still, static techniques either have high precision, in which case powerful judgements are hard to achieve automatically, or they use abstractions supporting increased automation, but possibly losing important aspects of the concrete system in the process. Runtime verification has complementary strengths and weaknesses. It combines full precision of the model with full automation, but cannot judge future and alternative runs. Another drawback of runtime verification can be the computational overhead of monitoring the running system which, although typically not very high, can still be prohibitive in certain settings. The StaRVOOrS project (Unified Static and Runtime Verification of Object-Oriented Software} will develop a framework to combine static and runtime verification with the aim of getting the best of both techniques. Our own implementation of the framework will be based on the deductive theorem prover KeY and the runtime verification tool LARVA. Apart from combining static and runtime verification, a new specification language will combine data centric and control centric aspects of system properties. An advantage of the approach is that, through the use of a single specification which can be used by both analysis techniques, parts of the analysis can be moved to the static phase, allowing the runtime monitor to make significant assumptions, dropping parts of expensive checks at runtime.
Docent vid Software Technology (Chalmers)
Funding Chalmers participation during 2013–2015