skip to main content
10.1145/1401827.1401837acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

Efficient runtime invariant checking: a framework and case study

Published: 21 July 2008 Publication History

Abstract

This paper describes a general and powerful framework for efficient runtime invariant checking. The framework supports (1) declarative specification of arbitrary invariants using high-level queries, with easy use of information from any data in the execution, (2) powerful analysis and transformations for automatic generation of instrumentation for efficient incremental checking of invariants, and (3) convenient mechanisms for reporting errors, debugging, and taking preventive or remedial actions, as well as recording history data for use in queries. We demonstrate the advantages and effectiveness of the framework through implementations and case studies with abstract syntax tree transformations, authentication in a SMB client, and the BitTorrent peer-to-peer file distribution protocol.

References

[1]
C. Artho, V. Schuppan, A. Biere, P. Eugster, M. Baur, and B. Zweimüller. JNuke: Efficient dynamic analysis for Java. Lecture Notes in Computer Science, 3114: 462--465, 2004.
[2]
M. Barnett, B. Chang, R. DeLine, B. Jacobs, and K. Leino. Boogie: A modular reusable verifier for object-oriented programs. Proc. of the 4th Intl. Symp. on Formal Methods for Components and Objects, pages 364--387, 2006.
[3]
M. Barnett, R. DeLine, M. Fahndrich, K. Leino, and W. Schulte. Verification of object-oriented programs with invariants. Journal of Object Technology, 3(6): 27--56, 2004.
[4]
H. Barringer, A. Goldberg, K. Havelund, and K. Sen. Rule-based runtime verification. Proc. of the 5th Intl. Conf. on Verification, Model Checking and Abstract Interpretation, pages 44--57, 2004.
[5]
D. Bartetzko, C. Fischer, M. Möller, and H. Wehrheim. Jass Java with assertions. Electronic Notes in Theoretical Computer Science, 55(2): 103--117, 2001.
[6]
F. Chen and G. Roşu. Mop: an efficient and generic runtime verification framework. Proc. of the 22nd annual ACM SIGPLAN Conf. on Object Oriented Programming Systems and Applications, pages 569--588, 2007.
[7]
Y. Cheon. A Runtime Assertion Checker for the Java Modeling Language. PhD thesis, Iowa State University, 2003.
[8]
L. Clarke and D. Rosenblum. A historical perspective on runtime assertion checking in software development. ACM SIGSOFT Software Engineering Notes, 31(3): 25--37, 2006.
[9]
T. Gibbs and B. Malloy. Weaving aspects into C++ applications for validation of temporal invariants. Proc. of the 7th European Conf. on Software Maintenance and Reengineering, pages 249--258, 2003.
[10]
D. Goyal. Transformational derivation of an improved alias analysis algorithm. Higher-Order and Symbolic Computation, 18(1/2), Feb. 2005.
[11]
D. Gries. The Science of Programming. Springer, 1981.
[12]
A. Gupta, I. Mumick, and V. Subrahmanian. Maintaining views incrementally. Proc. of the 1993 ACM SIGMOD Intl. Conf. on Management of Data, pages 157--166, 1993.
[13]
K. Havelund and G. Roşu. An Overview of the runtime verification tool Java PathExplorer. Formal Methods in System Design, 24(2): 189--215, 2004.
[14]
G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. Griswold. An overview of AspectJ. Lecture Notes in Computer Science, 2072: 327--355, 2001.
[15]
M. Kim, M. Viswanathan, S. Kannan, I. Lee, and O. Sokolsky. Java-MaC: a run-time assurance approach for Java programs. Formal Methods in System Design, 24(2): 129--155, 2004.
[16]
B. Krause and T. Wahls. jmle: a tool for executing JML specifications via constraint programming. Lecture Notes in Computer Science, 4346: 293--296, 2007.
[17]
V. Kuncak and M. Rinard. An overview of the Jahob analysis system: project goals and current status. 20th Intl. Parallel and Distributed Processing Symp., pages 8--16, 2006.
[18]
G. Leavens, A. Baker, and C. Ruby. Preliminary design of JML: a behavioral interface specification language for Java. ACM SIGSOFT Software Engineering Notes, 31(3): 1--38, 2006.
[19]
G. T. Leavens, Y. Cheon, C. Clifton, C. Ruby, and D. R. Cok. How the design of jml accommodates both runtime assertion checking and formal verification. Science of Computer Programming, 55(1-3): 185--208, 2005.
[20]
Y. Liu, S. Stoller, M. Gorbovitski, T. Rothamel, and Y. Liu. Incrementalization across object abstraction. Proc. of the 20th Annual ACM SIGPLAN Conf. on Object Oriented Programming Systems Languages and Applications, pages 473--486, 2005.
[21]
M. Martin, B. Livshits, and M. Lam. Finding application errors and security flaws using PQL: a program query language. ACM SIGPLAN Notices, 40(10): 365--383, 2005.
[22]
R. Paige and S. Koenig. Finite differencing of computable expressions. ACM Transactions on Programming Languages and Systems, 4(3): 402--454, 1982.
[23]
A. Potanin, J. Noble, and R. Biddle. Snapshot query-based debugging. Proc. of Australian Software Engineering Conf, pages 251--259, 2004.
[24]
A. Shankar and R. Bodík. DITTO: automatic incrementalization of data structure invariant checks (in Java). Proc. of the 2007 ACM SIGPLAN Conf. on Programming Language Design and Implementation, pages 310--319, 2007.
[25]
F Steimann. The paradoxical success of aspect-oriented programming. Proc. of the 21st Annual ACM SIGPLAN Conf. on Object-oriented Programming Languages, Systems, and Applications, pages 481--497, 2006.
[26]
V. Stolz and E. Bodden. Temporal assertions using AspectJ. Electronic Notes in Theoretical Computer Science, 144(4): 109--124, 2006.
[27]
D. Willis, D. Pearce, and J. Noble. Efficient object querying for Java. Proc. of the European Conf. on Object-Oriented Programming, pages 28--49, 2006.
[28]
K. Zee, V. Kuncak, M. Taylor, and M. Rinard. Lecture Notes in Computer Science, 4839: 202--213, 2007.

Cited By

View all
  • (2021)Evaluating verification awareness as a method for assessing adaptation riskFuture Generation Computer Systems10.1016/j.future.2021.01.034Online publication date: Feb-2021
  • (2020)Assurance of Distributed Algorithms and Systems: Runtime Checking of Safety and LivenessRuntime Verification10.1007/978-3-030-60508-7_3(47-66)Online publication date: 6-Oct-2020
  • (2017)Embedding Verification Concerns in Self-Adaptive System Code2017 IEEE 11th International Conference on Self-Adaptive and Self-Organizing Systems (SASO)10.1109/SASO.2017.21(121-130)Online publication date: Sep-2017
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
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)
July 2008
81 pages
ISBN:9781605580548
DOI:10.1145/1401827
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 21 July 2008

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. alias analysis
  2. incrementalization
  3. program transformation
  4. runtime verification

Qualifiers

  • Research-article

Funding Sources

Conference

ISSTA '08
Sponsor:

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)7
  • Downloads (Last 6 weeks)1
Reflects downloads up to 03 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2021)Evaluating verification awareness as a method for assessing adaptation riskFuture Generation Computer Systems10.1016/j.future.2021.01.034Online publication date: Feb-2021
  • (2020)Assurance of Distributed Algorithms and Systems: Runtime Checking of Safety and LivenessRuntime Verification10.1007/978-3-030-60508-7_3(47-66)Online publication date: 6-Oct-2020
  • (2017)Embedding Verification Concerns in Self-Adaptive System Code2017 IEEE 11th International Conference on Self-Adaptive and Self-Organizing Systems (SASO)10.1109/SASO.2017.21(121-130)Online publication date: Sep-2017
  • (2015)A compositional automata-based semantics and preserving transformation rules for testing property patternsFormal Aspects of Computing10.1007/s00165-014-0328-527:4(641-664)Online publication date: 1-Jul-2015
  • (2012)JMFProceedings of the seventh ACM workshop on Scalable trusted computing10.1145/2382536.2382542(21-32)Online publication date: 15-Oct-2012
  • (2012)Composing transformations for instrumentation and optimizationProceedings of the ACM SIGPLAN 2012 workshop on Partial evaluation and program manipulation10.1145/2103746.2103759(53-62)Online publication date: 23-Jan-2012
  • (2009)A language and framework for invariant-driven transformationsACM SIGPLAN Notices10.1145/1837852.162161745:2(55-64)Online publication date: 4-Oct-2009
  • (2009)A language and framework for invariant-driven transformationsProceedings of the eighth international conference on Generative programming and component engineering10.1145/1621607.1621617(55-64)Online publication date: 4-Oct-2009
  • (2009)GC assertionsACM SIGPLAN Notices10.1145/1543135.154250344:6(235-244)Online publication date: 15-Jun-2009
  • (2009)GC assertionsProceedings of the 30th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/1542476.1542503(235-244)Online publication date: 15-Jun-2009
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media