Communicating sequential processes
Communicating sequential processes
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
JML (poster session): notations and tools supporting detailed design in Java
OOPSLA '00 Addendum to the 2000 proceedings of the conference on Object-oriented programming, systems, languages, and applications (Addendum)
The Art of the Metaobject Protocol
The Art of the Metaobject Protocol
Acceptability-oriented computing
OOPSLA '03 Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
abc: an extensible AspectJ compiler
Proceedings of the 4th international conference on Aspect-oriented software development
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
Finding application errors and security flaws using PQL: a program query language
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Relational queries over program traces
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
The DaCapo benchmarks: java benchmarking development and analysis
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Making trace monitors feasible
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Checking and Correcting Behaviors of Java Programs at Runtime with Java-MOP
Electronic Notes in Theoretical Computer Science (ENTCS)
Experiments with test case generation and runtime analysis
ASM'03 Proceedings of the abstract state machines 10th international conference on Advances in theory and practice
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
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
FATES'06/RV'06 Proceedings of the First combined international conference on Formal Approaches to Software Testing and Runtime Verification
A staged static program analysis to improve the performance of runtime monitoring
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Making trace monitors feasible
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Relational aspects as tracematches
Proceedings of the 7th international conference on Aspect-oriented software development
jPredictor: a predictive runtime analysis tool for java
Proceedings of the 30th international conference on Software engineering
A case study for monitoring-oriented programming in multi-core architecture
Proceedings of the 1st international workshop on Multicore software engineering
Towards a methodology for lifelong validation of service compositions
Proceedings of the 2nd international workshop on Systems development in SOA environments
The CLOSER: automating resource management in java
Proceedings of the 7th international symposium on Memory management
Redundancy-free residual dispatch: using ordered binary decision diagrams for efficient dispatch
Proceedings of the 7th workshop on Foundations of aspect-oriented languages
Efficient runtime invariant checking: a framework and case study
WODA '08 Proceedings of the 2008 international workshop on dynamic analysis: held in conjunction with the ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2008)
Runtime Verification of C Programs
TestCom '08 / FATES '08 Proceedings of the 20th IFIP TC 6/WG 6.1 international conference on Testing of Software and Communicating Systems: 8th International Workshop
QVM: an efficient runtime for detecting defects in deployed systems
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Enforcing object protocols by combining static and runtime analysis
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Typestate-like analysis of multiple interacting objects
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Synthesizing Monitors for Safety Properties: This Time with Calls and Returns
Runtime Verification
Runtime Monitoring of Object Invariants with Guarantee
Runtime Verification
A Lightweight Container Architecture for Runtime Verification
Runtime Verification
AOP as a formal framework for runtime monitoring
Proceedings of the 2008 Foundations of Software Engineering Doctoral Symposium
Dependent advice: a general approach to optimizing history-based aspects
Proceedings of the 8th ACM international conference on Aspect-oriented software development
AOP for the domain of runtime monitoring: breaking out of the code-based model
Proceedings of the 4th workshop on Domain-specific aspect languages
Parametric Trace Slicing and Monitoring
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 shape analysis via degree metrics
Proceedings of the 2009 international symposium on Memory management
On the expressiveness and complexity of randomization in finite state monitors
Journal of the ACM (JACM)
PPDP '09 Proceedings of the 11th ACM SIGPLAN conference on Principles and practice of declarative programming
Handling mixed-criticality in SoC-based real-time embedded systems
EMSOFT '09 Proceedings of the seventh ACM international conference on Embedded software
Dynamically inferring, refining, and checking API usage protocols
Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications
Efficient Monitoring of Parametric Context-Free Patterns
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
Reducing the Cost of Path Property Monitoring Through Sampling
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
Experiences with embedding MPL security monitors into Java programs
CompSysTech '09 Proceedings of the International Conference on Computer Systems and Technologies and Workshop for PhD Students in Computing
Efficient monitoring of parametric context-free patterns
Automated Software Engineering
Collaborative runtime verification with tracematches
RV'07 Proceedings of the 7th international conference on Runtime verification
Runtime checking for program verification
RV'07 Proceedings of the 7th international conference on Runtime verification
Runtime checking for separation logic
VMCAI'08 Proceedings of the 9th international conference on Verification, model checking, and abstract interpretation
Applying the composition filter model for runtime verification of multiple-language software
ISSRE'09 Proceedings of the 20th IEEE international conference on software reliability engineering
Jinn: synthesizing dynamic bug detectors for foreign language interfaces
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
Property-aware program sampling
Proceedings of the 9th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Efficient hybrid typestate analysis by determining continuation-equivalent states
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Online inference and enforcement of temporal properties
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Effective interprocedural resource leak detection
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Enabling multi-core based monitoring and fault tolerance in C++/Java
Proceedings of the 3rd International Workshop on Multicore Software Engineering
Supporting dynamic aspect-oriented features
ACM Transactions on Software Engineering and Methodology (TOSEM)
Monitor optimization via stutter-equivalent loop transformation
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Extending Ada to support multi-core based monitoring and fault tolerance
Proceedings of the ACM SIGAda annual international conference on SIGAda
Proceedings of the FSE/SDP workshop on Future of software engineering research
Prototyping a tool environment for run-time assertion checking in JML with communication histories
Proceedings of the 12th Workshop on Formal Techniques for Java-Like Programs
An effective sequential statistical test for probabilistic monitoring
Information and Software Technology
Runtime verification in context: can optimizing error detection improve fault diagnosis?
RV'10 Proceedings of the First international conference on Runtime verification
Clara: partially evaluating runtime monitors at compile time tutorial supplement
RV'10 Proceedings of the First international conference on Runtime verification
You should better enforce than verify
RV'10 Proceedings of the First international conference on Runtime verification
Runtime verification with the RV system
RV'10 Proceedings of the First international conference on Runtime verification
Clara: a framework for partially evaluating finite-state runtime monitors ahead of time
RV'10 Proceedings of the First international conference on Runtime verification
Checking the correspondence between UML models and implementation
RV'10 Proceedings of the First international conference on Runtime verification
Reducing configurations to monitor in a software product line
RV'10 Proceedings of the First international conference on Runtime verification
2ndStrike: toward manifesting hidden concurrency typestate bugs
Proceedings of the sixteenth international conference on Architectural support for programming languages and operating systems
Mining parametric specifications
Proceedings of the 33rd International Conference on Software Engineering
Garbage collection for monitoring parametric properties
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Runtime Verification for LTL and TLTL
ACM Transactions on Software Engineering and Methodology (TOSEM)
Retroactive aspects: programming in the past
Proceedings of the Ninth International Workshop on Dynamic Analysis
TRACECONTRACT: a scala DSL for trace analysis
FM'11 Proceedings of the 17th international conference on Formal methods
Improved multithreaded unit testing
Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering
Stateful breakpoints: a practical approach to defining parameterized runtime monitors
Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering
Past time LTL runtime verification for microcontroller binary code
FMICS'11 Proceedings of the 16th international conference on Formal methods for industrial critical systems
Monitoring aspects for the customization of automatically generated code for big-step models
Proceedings of the 10th ACM international conference on Generative programming and component engineering
QVM: An Efficient Runtime for Detecting Defects in Deployed Systems
ACM Transactions on Software Engineering and Methodology (TOSEM)
Lattice-Based Sampling for Path Property Monitoring
ACM Transactions on Software Engineering and Methodology (TOSEM)
A dynamic assertion-based verification platform for validation of UML designs
ACM SIGSOFT Software Engineering Notes
Using AOP for detailed runtime monitoring instrumentation
WODA '09 Proceedings of the Seventh International Workshop on Dynamic Analysis
Tiddle: a trace description language for generating concurrent benchmarks to test dynamic analyses
WODA '09 Proceedings of the Seventh International Workshop on Dynamic Analysis
Monitoring method call sequences using annotations
FACS'10 Proceedings of the 7th international conference on Formal Aspects of Component Software
Recon: verifying file system consistency at runtime
FAST'12 Proceedings of the 10th USENIX conference on File and Storage Technologies
Partially Evaluating Finite-State Runtime Monitors Ahead of Time
ACM Transactions on Programming Languages and Systems (TOPLAS)
Residual investigation: predictive and precise bug detection
Proceedings of the 2012 International Symposium on Software Testing and Analysis
Proceedings of the 34th International Conference on Software Engineering
Statically checking API protocol conformance with mined multi-object specifications
Proceedings of the 34th International Conference on Software Engineering
JavaMOP: efficient parametric runtime monitoring framework
Proceedings of the 34th International Conference on Software Engineering
RV'11 Proceedings of the Second international conference on Runtime verification
CoMA: conformance monitoring of java programs by abstract state machines
RV'11 Proceedings of the Second international conference on Runtime verification
Automated test-trace inspection for microcontroller binary code
RV'11 Proceedings of the Second international conference on Runtime verification
Runtime verification of data-centric properties in service based systems
RV'11 Proceedings of the Second international conference on Runtime verification
MOPBox: a library approach to runtime verification
RV'11 Proceedings of the Second international conference on Runtime verification
Monitoring finite state properties: algorithmic approaches and their relative strengths
RV'11 Proceedings of the Second international conference on Runtime verification
Information and Software Technology
Asynchronous distributed monitoring for multiparty session enforcement
TGC'11 Proceedings of the 6th international conference on Trustworthy Global Computing
Specification and monitoring of data-centric temporal properties for service-based systems
Journal of Systems and Software
JMF: Java measurement framework: language-supported runtime integrity measurement
Proceedings of the seventh ACM workshop on Scalable trusted computing
Recon: Verifying file system consistency at runtime
ACM Transactions on Storage (TOS)
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
Delta-Oriented monitor specification
ISoLA'12 Proceedings of the 5th international conference on Leveraging Applications of Formal Methods, Verification and Validation: technologies for mastering change - Volume Part I
InterAspect: aspect-oriented instrumentation with GCC
Formal Methods in System Design
Generating sound and effective memory debuggers
Proceedings of the 2013 international symposium on memory management
Proceedings of the 28th Annual ACM Symposium on Applied Computing
EnforceMOP: a runtime property enforcement system for multithreaded programs
Proceedings of the 2013 International Symposium on Software Testing and Analysis
Inlined monitors for security policy enforcement in web applications
Proceedings of the 17th Panhellenic Conference on Informatics
Runtime verification of microcontroller binary code
Science of Computer Programming
Software and Systems Modeling (SoSyM)
Hi-index | 0.00 |
Monitoring-Oriented Programming (MOP1) [21, 18, 22, 19] is a formal framework for software development and analysis, in which the developer specifies desired properties using definable specification formalisms, along with code to execute when properties are violated or validated. The MOP framework automatically generates monitors from the specified properties and then integrates them together with the user-defined code into the original system. The previous design of MOP only allowed specifications without parameters, so it could not be used to state and monitor safety properties referring to two or more related objects. In this paper we propose a parametric specification formalism-independent extension of MOP, together with an implementation of JavaMOP that supports parameters. In our current implementation, parametric specifications are translated into AspectJ code and then weaved into the application using off-the-shelf AspectJ compilers; hence, MOP specifications can be seen as formal or logical aspects. Our JavaMOP implementation was extensively evaluated on two benchmarks, Dacapo [14] and Tracematches [8], showing that runtime verification in general and MOP in particular are feasible. In some of the examples, millions of monitor instances are generated, each observing a set of related objects. To keep the runtime overhead of monitoring and event observation low, we devised and implemented a decentralized indexing optimization. Less than 8% of the experiments showed more than 10% runtime overhead; in most cases our tool generates monitoring code as efficient as the hand-optimized code. Despite its genericity, JavaMOP is empirically shown to be more efficient than runtime verification systems specialized and optimized for particular specification formalisms. Many property violations were detected during our experiments; some of them are benign, others indicate defects in programs. Many of these are subtle and hard to find by ordinary testing.