Skip to main content

Monitoring Method Call Sequences Using Annotations

  • Conference paper
Formal Aspects of Component Software (FACS 2010)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 6921))

Included in the following conference series:

Abstract

In this paper we introduce JMSeq, a Java-based tool for the specification and runtime verification via monitoring of sequences of possibly nested method calls. JMSeq provides a simple but expressive way to specify the sequential execution of a Java program using code annotations via user-given sequences of methods calls. Similar to many monitoring-oriented environments, verification in JMSeq is done at run-time, but differently from all other approaches based on aspect-oriented programming, JMSeq does not use code instrumentation, and therefore is suitable for component-based software verification.

This research is partly funded by the EU project FP7-231620 HATS: Highly Adaptable and Trustworthy Software using Formal Models ( http://www.hats-project.eu/ )

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. AspectJ Language Semantics, http://eclipse.org/aspectj/doc/released/progguide/semantics-pointcuts.html

  2. Eclipse Debug Platform, http://www.eclipse.org/eclipse/debug/

  3. Java 5 Annotations, http://java.sun.com/j2se/1.5.0/docs/guide/language/annotations.html

  4. JPDA Reference Home Page, http://java.sun.com/javase/technologies/core/toolsapis/jpda/

  5. JUnit Test Framework, http://www.junit.org/

  6. MOP: Monitoring-oriented programming, http://fsl.cs.uiuc.edu/index.php/MOP

  7. Allan, C., Avgustinov, P., Christensen, A.S., Hendren, L., Kuzins, S., Lhotak, O., de Moor, O., Sereni, D., Sittampalam, G., Tibble, J.: Adding trace matching with free variables to AspectJ. In: OOPSLA (2005)

    Google Scholar 

  8. Alur, R., Madhusudan, P.: Adding nesting structure to words. J. ACM 56, 16:1–16:43 (2009)

    Google Scholar 

  9. Anercrombie, P., Karaorman, M.: jContractor: Bytecode instrumentation techniques for implementing dbc in Java. In: RV 2002 (2002)

    Google Scholar 

  10. Barringer, H., Goldberg, A., Havelund, K., Sen, K.: Rule-Based Runtime Verification. In: VMCI 2004 (2004)

    Google Scholar 

  11. Bartetzko, D., Fischer, C., Moller, M., Wehrheim, H.: Jass - Java with Assertions. In: RV 2001 (2001)

    Google Scholar 

  12. Bodden, E.: J-lo, a tool for runtime-checking temporal assertions. Master Thesis, RWTH Aachen University (2005)

    Google Scholar 

  13. Chen, F., Rosu, G.: Towards Monitoring-Oriented programming: A paradigm combining specification and implementation. Electronic Notes in Theoretical Computer Science 89(2), 108–127 (2003)

    Article  Google Scholar 

  14. Chen, F., Rosu, G.: Java-MOP: A monitoting oriented programming environment for Java. In: Halbwachs, N., Zuck, L.D. (eds.) TACAS 2005. LNCS, vol. 3440, pp. 546–550. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  15. Chen, F., Rosu, G.: MOP: An Efficient and Generic Runtime Verification Framework. In: OOPSLA. ACM Press, New York (2007)

    Google Scholar 

  16. Cheon, Y., Perummandla, A.: Specifying and checking method call sequences of Java programs. Software Qual J. 15, 7–25 (2007)

    Article  Google Scholar 

  17. de Gouw, S., Vinju, J., de Boer, F.S.: Prototyping a tool environment for run-time assertion checking in JML with Communication Histories. In: FTfJP 2010 (2010)

    Google Scholar 

  18. Havelund, K., Rosu, G.: Monitoring Java programs with Java PathExplorer. In: RV 2001 (2001)

    Google Scholar 

  19. Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.: Getting started with ASPECTJ. In: ACM CACM (2001)

    Google Scholar 

  20. Kim, M., Kannan, S., Lee, I., Sokolsky, O.: Java-MaC: a Runtime Assurance Tool for Java. In: RV 2001 (2001)

    Google Scholar 

  21. Knuth, D.E.: Semantics of context-free languages. Mathematical Systems Theory 2(2), 127–145 (1968)

    Article  MATH  MathSciNet  Google Scholar 

  22. Leavens, G.T., Baker, A.L., Ruby, C.: Preliminary Design of JML: A Behavioral Interface Specification Language for Java. ACM SIGSOFT Software Engineering (2006)

    Google Scholar 

  23. Martin, M., Livshits, V.B., Lam, M.S.: Finding application erros and security flaws using PQL: a program query language. In: OOPSLA (2005)

    Google Scholar 

  24. Meyer, B.: Object-Oriented Software Construction, 2nd edn. Prentice Hall, New Jersey (2000)

    MATH  Google Scholar 

  25. Necula, G.C.: Proof-carrying code. In: Proceedings of the 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 1997, pp. 106–119. ACM, New York (1997)

    Google Scholar 

  26. Rebelo, H., Soares, S., Lima, R., Borba, P., Cornelio, M.: JML and Aspects: The benefits of instrumenting JML features with AspectJ (2008)

    Google Scholar 

  27. Szyperski, C., Gruntz, D., Murer, S.: Component software: beyond object-oriented programming. Addison-Wesley, Reading (2002)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2012 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Nobakht, B., Bonsangue, M.M., de Boer, F.S., de Gouw, S. (2012). Monitoring Method Call Sequences Using Annotations. In: Barbosa, L.S., Lumpe, M. (eds) Formal Aspects of Component Software. FACS 2010. Lecture Notes in Computer Science, vol 6921. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-27269-1_4

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-27269-1_4

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-27268-4

  • Online ISBN: 978-3-642-27269-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics