Run-time checking of data- and protocol-oriented properties of Java programs: an industrial case study

We introduce SAGA, a general framework that combines monitoring and run-time assertion checking. SAGA integrates both data-flow and control flow properties of Java classes and interfaces in a single formalism. We evaluate the framework by conducting an industrial case study.

[1]  Marieke Huisman,et al.  Extending JML Specifications with Temporal Logic , 2002, AMAST.

[2]  Frank S. de Boer,et al.  Monitoring Method Call Sequences Using Annotations , 2010, FACS.

[3]  Michael D. Ernst,et al.  An overview of JML tools and applications , 2003, International Journal on Software Tools for Technology Transfer.

[4]  Görel Hedin Incremental Attribute Evaluation with Side-effects , 1988, CC.

[5]  Frank S. de Boer,et al.  Run-Time Verification of Black-Box Components Using Behavioral Specifications: An Experience Report on Tool Development , 2012, FACS.

[6]  Patrice Chalin,et al.  Towards an industrial grade IVE for Java and next generation research platform for JML , 2010, International Journal on Software Tools for Technology Transfer.

[7]  Amir Pnueli,et al.  PSL Model Checking and Run-Time Verification Via Testers , 2006, FM.

[8]  Robert DeLine,et al.  Typestates for Objects , 2004, ECOOP.

[9]  Mark Brörkens,et al.  Dynamic Event Generation for Runtime Checking using the JDI , 2002, Electron. Notes Theor. Comput. Sci..

[10]  Tijs van der Storm,et al.  RASCAL: A Domain Specific Language for Source Code Analysis and Manipulation , 2009, 2009 Ninth IEEE International Working Conference on Source Code Analysis and Manipulation.

[11]  Martin Leucker,et al.  Comparing LTL Semantics for Runtime Verification , 2010, J. Log. Comput..

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

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

[14]  Clément Hurlin Specifying and checking protocols of multithreaded classes , 2009, SAC '09.

[15]  Russell W. Quong,et al.  Adding Semantic and Syntactic Predicates To LL(k): pred-LL(k) , 1994, CC.

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

[17]  David S. Rosenblum,et al.  A historical perspective on runtime assertion checking in software development , 2006, SOEN.

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

[19]  Michael Sipser,et al.  Introduction to the Theory of Computation , 1996, SIGA.

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

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

[22]  Gordon J. Pace,et al.  LARVA --- Safer Monitoring of Real-Time Java Programs (Tool Paper) , 2009, 2009 Seventh IEEE International Conference on Software Engineering and Formal Methods.

[23]  Terence Parr The Definitive ANTLR Reference: Building Domain-Specific Languages , 2007 .