Monitoring method call sequences using annotations

In this paper we introduce JMSeq, a Java-based tool for monitoring sequences of method calls. JMSeq provides a simple but expressive language to specify the observables of a Java program in terms of sequences of possibly nested method calls. Similar to many monitoring-oriented environments, verification in JMSeq is done at runtime; unlike all other approaches based on aspect-oriented programming, JMSeq uses code annotation rather than instrumentation, and therefore is suitable for component-based software verification.

[1]  Benjamin Livshits,et al.  Finding application errors and security flaws using PQL: a program query language , 2005, OOPSLA '05.

[2]  Jim Shore,et al.  Fail Fast , 2004, IEEE Softw..

[3]  Grigore Rosu,et al.  Towards Monitoring-Oriented Programming: A Paradigm Combining Specification and Implementation , 2003, RV@CAV.

[4]  Yoonsik Cheon,et al.  Specifying and checking method call sequences of Java programs , 2006, Software Quality Journal.

[5]  Manish Mahajan,et al.  Proof carrying code , 2015 .

[6]  Ondrej Lhoták,et al.  Adding trace matching with free variables to AspectJ , 2005, OOPSLA '05.

[7]  Bertrand Meyer,et al.  Object-Oriented Software Construction, 2nd Edition , 1997 .

[8]  R. Alur,et al.  Adding nesting structure to words , 2006, JACM.

[9]  Mahesh Viswanathan,et al.  Java-MaC: A Run-Time Assurance Approach for Java Programs , 2004, Formal Methods Syst. Des..

[10]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[11]  Koushik Sen,et al.  Rule-Based Runtime Verification , 2004, VMCAI.

[12]  Frank S. de Boer,et al.  Java Test Driver Generation from Object-Oriented Interaction Traces , 2009, Electron. Notes Theor. Comput. Sci..

[13]  Sérgio Soares,et al.  A JML Compiler Based on AspectJ , 2008, 2008 1st International Conference on Software Testing, Verification, and Validation.

[14]  Paulo Borba,et al.  JML and Aspects: The Benefits of Instrumenting JML Features with AspectJ , 2008 .

[15]  Grigore Rosu,et al.  Mop: an efficient and generic runtime verification framework , 2007, OOPSLA.

[16]  William G. Griswold,et al.  Getting started with ASPECTJ , 2001, CACM.

[17]  Murat Karaorman,et al.  jContractor: Bytecode Instrumentation Techniques for Implementing Design by Contract in Java , 2002, Electron. Notes Theor. Comput. Sci..

[18]  Frank S. de Boer,et al.  Prototyping a tool environment for run-time assertion checking in JML with communication histories , 2010, FTfJP@ECOOP.

[19]  Heike Wehrheim,et al.  Jass - Java with Assertions , 2001, RV@CAV.

[20]  Donald E. Knuth,et al.  Semantics of context-free languages , 1968, Mathematical systems theory.

[21]  Albert L. Baker,et al.  Preliminary design of JML: a behavioral interface specification language for java , 2006, SOEN.

[22]  Grigore Rosu,et al.  Java-MOP: A Monitoring Oriented Programming Environment for Java , 2005, TACAS.

[23]  Grigore Rosu,et al.  Monitoring Java Programs with Java PathExplorer , 2001, RV@CAV.

[24]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming , 2002 .