An axiomatic basis for computer programming
Communications of the ACM
Dynamically Discovering Likely Program Invariants to Support Program Evolution
IEEE Transactions on Software Engineering - Special issue on 1999 international conference on software engineering
Verisim: Formal Analysis of Network Simulations
IEEE Transactions on Software Engineering
A Dynamic Logic for the Formal Verification of Java Card Programs
JavaCard '00 Revised Papers from the First International Workshop on Java on Smart Cards: Programming and Security
InVeST: A Tool for the Verification of Invariants
CAV '98 Proceedings of the 10th International Conference on Computer Aided Verification
A program verifier
Java-MaC: A Run-Time Assurance Approach for Java Programs
Formal Methods in System Design
LOLA: Runtime Monitoring of Synchronous Systems
TIME '05 Proceedings of the 12th International Symposium on Temporal Representation and Reasoning
Event-based runtime verification of java programs
WODA '05 Proceedings of the third international workshop on Dynamic analysis
Adding trace matching with free variables to AspectJ
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A case study of specification and verification using JML in an avionics application
JTRES '06 Proceedings of the 4th international workshop on Java technologies for real-time and embedded systems
Bogor/Kiasan: A k-bounded Symbolic Execution for Checking Strong Heap Properties of Open Systems
ASE '06 Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering
Verifying the Mondex Case Study
SEFM '07 Proceedings of the Fifth IEEE International Conference on Software Engineering and Formal Methods
Finding programming errors earlier by evaluating runtime monitors ahead-of-time
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
COSTA: Design and Implementation of a Cost and Termination Analyzer for Java Bytecode
Formal Methods for Components and Objects
Challenges in the Specification of Full Contracts
IFM '09 Proceedings of the 7th International Conference on Integrated Formal Methods
TACAS '09 Proceedings of the 15th International Conference on Tools and Algorithms for the Construction and Analysis of Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009,
Dynamic Event-Based Runtime Monitoring of Real-Time and Contextual Properties
Formal Methods for Industrial Critical Systems
LARVA --- Safer Monitoring of Real-Time Java Programs (Tool Paper)
SEFM '09 Proceedings of the 2009 Seventh IEEE International Conference on Software Engineering and Formal Methods
Combined Static and Dynamic Analysis
Electronic Notes in Theoretical Computer Science (ENTCS)
XRT-- Exploring Runtime for .NET Architecture and Applications
Electronic Notes in Theoretical Computer Science (ENTCS)
Efficient monitoring of parametric context-free patterns
Automated Software Engineering
Generating unit tests from formal proofs
TAP'07 Proceedings of the 1st international conference on Tests and proofs
White-box testing by combining deduction-based specification extraction and black-box testing
TAP'07 Proceedings of the 1st international conference on Tests and proofs
Collaborative runtime verification with tracematches
RV'07 Proceedings of the 7th international conference on Runtime verification
Verification of object-oriented software: The KeY approach
Verification of object-oriented software: The KeY approach
Collaborative Runtime Verification with Tracematches
Journal of Logic and Computation
A visual interactive debugger based on symbolic execution
Proceedings of the IEEE/ACM international conference on Automated software engineering
Clara: a framework for partially evaluating finite-state runtime monitors ahead of time
RV'10 Proceedings of the First international conference on Runtime verification
A decade of software model checking with SLAM
Communications of the ACM
The spec# programming system: an overview
CASSIS'04 Proceedings of the 2004 international conference on Construction and Analysis of Safe, Secure, and Interoperable Smart Devices
Formalisation and verification of java card security properties in dynamic logic
FASE'05 Proceedings of the 8th international conference, held as part of the joint European Conference on Theory and Practice of Software conference on Fundamental Approaches to Software Engineering
Java-MOP: a monitoring oriented programming environment for java
TACAS'05 Proceedings of the 11th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Interactive testing with HOL-TestGen
FATES'05 Proceedings of the 5th international conference on Formal Approaches to Software Testing
Our experience with the codecontracts static checker
VSTTE'12 Proceedings of the 4th international conference on Verified Software: theories, tools, experiments
A staged static program analysis to improve the performance of runtime monitoring
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Runtime verification: the application perspective
ISoLA'12 Proceedings of the 5th international conference on Leveraging Applications of Formal Methods, Verification and Validation: technologies for mastering change - Volume Part I
Hi-index | 0.00 |
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 (including the real deployment environment) 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. In this paper we propose a framework to combine static analysis techniques and runtime verification with the aim of getting the best of both techniques. In particular, we discuss an instantiation of our framework for the deductive theorem prover KeY, and the runtime verification tool Larva. Apart from combining static and dynamic verification, this approach also combines the data centric analysis of KeY with the control centric analysis of Larva. An advantage of the approach is that, through the use of a single specification which can be used by both analysis techniques, expensive parts of the analysis could be moved to the static phase, allowing the runtime monitor to make significant assumptions, dropping parts of expensive checks at runtime. We also discuss specific applications of our approach.