Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article

An overview of the MOP runtime verification framework

Published: 01 June 2012 Publication History

Abstract

This article gives an overview of the, monitoring oriented programming framework (MOP). In MOP, runtime monitoring is supported and encouraged as a fundamental principle for building reliable systems. Monitors are automatically synthesized from specified properties and are used in conjunction with the original system to check its dynamic behaviors. When a specification is violated or validated at runtime, user-defined actions will be triggered, which can be any code, such as information logging or runtime recovery. Two instances of MOP are presented: JavaMOP (for Java programs) and BusMOP (for monitoring PCI bus traffic). The architecture of MOP is discussed, and an explanation of parametric trace monitoring and its implementation is given. A comprehensive evaluation of JavaMOP attests to its efficiency, especially in comparison with similar systems. The implementation of BusMOP is discussed in detail. In general, BusMOP imposes no runtime overhead on the system it is monitoring.

References

[1]
Abercrombie, P., Karaorman, M.: jContractor: Bytecode instrumentation techniques for implementing DBC in Java. In Runtime Verification (RV'02), ENTCS, vol. 70, Elsevier, Amsterdam (2002)
[2]
Aho A.V., Sethi R., Ullman J.D.: Compilers, Principles, Techniques, and Tools, pp. 215---246. Addison-Wesley, New York (1986)
[3]
Allan, C., Avgustinov, P., Christensen, A.S., Hendren, L.J., Kuzins, S., Lhoták, O., de Moor, O., Sereni, D., Sittampalam, G., Tibble, J.: Adding trace matching with free variables to AspectJ. In: Object-Oriented Programming, Systems, Languages and Applications (OOPSLA'05), pp. 345---364. ACM, New York (2005)
[4]
Alur, R., Etessami, K., Madhusudan, P.: A temporal logic of nested calls and returns. In: Tools and Algorithms for the Construction and Analysis of Systems (TACAS'04), LNCS, vol. 2988, pp. 467---481. Springer, Berlin (2004)
[5]
AspectC++. http://www.aspectc.org/
[6]
AspectJ. http://eclipse.org/aspectj/
[7]
Avgustinov, P., Tibble, J., de Moor, O.: Making trace monitors feasible. In: Object-Oriented Programming, Systems, Languages and Applications (OOPSLA'07), pp. 589---608. ACM, New York (2007)
[8]
Barnett, M., Leino, K.R.M., Schulte, W.: The Spec# programming system: An overview. In: Construction and Analysis of Safe, Secure and Interoperable Smart devices (CASSIS'04), LNCS, vol. 3362, pp. 49---69. Springer, Berlin (2004)
[9]
Barringer, H., Finkbeiner, B., Gurevich, Y., Sipma, H. (eds): Runtime Verification (RV'05), ENTCS, vol. 144. Elsevier, Amsterdam (2005)
[10]
Barringer, H., Goldberg, A., Havelund, K., Sen, K.: Rule-Based Runtime Verification. In: Verification, Model Checking, and Abstract Interpretation (VMCAI'04), LNCS, vol. 2937, pp. 44---57. Springer, Berlin (2004)
[11]
Barringer, H., Rydeheard, D., Havelund, K.: Rule systems for run-time monitoring: from EAGLE to RULER. J. Logic Comput. (2008)
[12]
Bartetzko, D., Fischer, C., Moller, M., Wehrheim, H.: Jass-Java with Assertions. In: Runtime Verification (RV'01), ENTCS, vol. 55, pp. 103---117. Elsevier, Amsterdam (2001)
[13]
Bison. http://www.gnu.org/software/bison/
[14]
Blackburn, S.M., Garner, R., Hoffman, C., Khan, A.M., McKinley, K.S., Bentzur, R., Diwan, A., Feinberg, D., Frampton, D., Guyer, S.Z., Hirzel, M., Hosking, A., Jump, M., Lee, H., Moss, J.E.B., Phansalkar, A., Stefanović, D., VanDrunen, T., von Dincklage, D., Wiedermann, B.: The DaCapo benchmarks: Java benchmarking development and analysis. In: Object-Oriented Programming, Systems, Languages and Applications (OOPSLA'06), pp. 169---190. ACM, New York (2006)
[15]
Bodden, E.: J-LO, a tool for runtime-checking temporal assertions. Master's thesis, RWTH Aachen University, Aachen (2005)
[16]
Bodden, E., Chen, F., Roşu, G.: Dependent advice: A general approach to optimizing history-based aspects. In: Aspect-Oriented Software Development (AOSD'09), pp. 3---14. ACM, New York (2009)
[17]
Bodden, E., Hendren, L., Lhoták, O.: A staged static program analysis to improve the performance of runtime monitoring. In: European Conference on Object-Oriented Programming (ECOOP'07), LNCS, vol. 4609, pp. 525---549. Springer, Berlin (2007)
[18]
Chaudhuri, S., Alur, R.: Instumenting C programs with nested word monitors. In: Model Checking Software (SPIN'07), LNCS, vol. 4595, pp. 279---283. Springer, Berlin (2007)
[19]
Chen, F., D'Amorim, M., Roşu, G.: A formal monitoring-based framework for software development and analysis. In: International Conference on Formal Engineering Methods (ICFEM'04), LNCS, vol. 3308, pp. 357---372. Springer, Berlin (2004)
[20]
Chen, F., Meredith, P., Jin, D., Roşu, G.: Efficient formalism-independent monitoring of parametric properties. In: Automated Software Engineering (ASE'09), pp. 383---394. IEEE, New York (2009)
[21]
Chen, F., Roşu, G.: Towards monitoring-oriented programming: A paradigm combining specification and implementation. In: Runtime Verification (RV'03), ENTCS, vol. 89, pp. 108---127. Elsevier, Amsterdam (2003)
[22]
Chen, F., Roşu, G.: MOP: An efficient and generic runtime verification framework. In: Object-Oriented Programming, Systems, Languages and Applications (OOPSLA'07), pp. 569---588. ACM, New York (2007)
[23]
Chen, F., Roşu, G.: Parametric trace slicing and monitoring. In: Tools and Algorithms for the Construction and Analysis of Systems (TACAS'09), LNCS, vol. 5505, pp. 246---261. Springer, Berlin (2009)
[24]
d'Amorim M., Havelund K.: Event-based runtime verification of Java programs. ACM SIGSOFT Softw. Eng. Notes 30(4), 1---7 (2005)
[25]
Drusinsky, D.: The Temporal Rover and the ATG Rover. In: Model Checking and Software Verification (SPIN'00), LNCS, vol. 1885, pp. 323---330. Springer, Berlin (2000)
[26]
Eagle Technology. PCI 703 Series User's Manual. http://www.eagledaq.com/display_product_36.htm
[27]
Eiffel Language. http://www.eiffel.com/
[28]
Goldsmith, S., O'Callahan, R., Aiken, A.: Relational queries over program traces. In: Object-Oriented Programming, Systems, Languages and Applications (OOPSLA'05), pp. 385---402. ACM, New York (2005)
[29]
Havelund, K., Nunez, M., Roşu, G., Wolff, B. (eds): Formal Approaches to Testing and Runtime Verification (FATES/RV'06), LNCS, vol. 4264. Springer, Berlin (2006)
[30]
Havelund, K., Roşu, G.: Monitoring Java programs with Java PathExplorer. In: Runtime Verification (RV'01), ENTCS, vol. 55, pp. 97---114. Elsevier, Amsterdam (2001)
[31]
Havelund, K., Roşu, G.: Monitoring Java programs with Java PathExplorer. In: Runtime Verification (RV'01), ENTCS, vol. 55, Elsevier, Amsterdam (2001)
[32]
Havelund, K., Roşu, G.: Monitoring programs using rewriting. In: Automated Software Engineering (ASE'01), pp. 135---143. IEEE, New York (2001)
[33]
Havelund, K., Roşu, G. (eds): Runtime Verification (RV'02), ENTCS, vol. 70. Elsevier, Amsterdam (2002)
[34]
Havelund, K., Roşu, G. (eds): Runtime Verification (RV'04), ENTCS, vol. 113. Elsevier, Amsterdam (2004)
[35]
Havelund, K., Roşu, G.: Synthesizing Monitors for Safety Properties. In: Tools and Algorithms for the Construction and Analysis of Systems (TACAS'02), LNCS, vol. 2280, pp. 342---356. Springer, Berlin (2002)
[36]
Havelund K., Rosu G.: Efficient monitoring of safety properties. J. Softw. Tools Technol. Transf. 6(2), 158---173 (2004)
[37]
Hoare C.: Communicating Sequential Processes. Prentice-Hall Intl., New York (1985)
[38]
Hopcroft, J.E.: An n log n algorithm for minimizing states in a finite automaton. Technical report (1971)
[39]
ISO/IEC 14977:1996, Information technology--syntactic metalanguage--Extended BNF. ISO, Geneva, Switzerland
[40]
JBoss. http://www.jboss.org
[41]
Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An overview of AspectJ. In: European Conference on Object-Oriented Programming (ECOOP'01), LNCS, vol. 2072, pp. 327---353. Springer, Berlin (2001)
[42]
Kiczales, G., Lamping, J., Menhdhekar, A., Maeda, C., Lopes, C., Loingtier, J.-M., Irwin, J.: Aspect-oriented programming. In: European Conference on Object-Oriented Programming (ECOOP'97), LNCS, vol. 1241, pp. 220---242. Springer, Berlin (1997)
[43]
Kim, M., Viswanathan, M., Ben-Abdallah, H., Kannan, S., Lee, I., Sokolsky, O.: Formally specified monitoring of temporal properties. In: Europoean Conference on Real-Time Systems (ECRTS'99) (1999)
[44]
Leavens, G.T., Leino, K.R.M., Poll, E., Ruby, C., Jacobs, B.: JML: notations and tools supporting detailed design in Java. In: Object-Oriented Programming, Systems, Languages and Applications (OOPSLA'00), pp. 105---106. ACM, New York (2000)
[45]
Lu, H., Forin, A.: The design and implementation of P2V, an architecture for zero-overhead online verification of software programs. Technical Report MSR-TR-2007---99, Microsoft Research (2007)
[46]
Martin, M., Livshits, V.B., Lam, M.S.: Finding application errors and security flaws using PQL: a program query language. In: Object-Oriented Programming, Systems, Languages and Applications (OOPSLA'07), pp. 365---383. ACM, New York (2005)
[47]
Meredith, P., Jin, D., Chen, F., Roşu, G.: Efficient monitoring of parametric context-free patterns. In: Automated Software Engineering (ASE '08), pp. 148---157. IEEE, New York (2008)
[48]
Meredith P., Jin D., Chen F., Roşu G.: Efficient monitoring of parametric context-free patterns. J. Autom. Softw. Eng. 17(2), 149---180 (2010)
[49]
Meyer B.: Object-Oriented Software Construction, 2nd edn. Prentice Hall, New Jersey (2000)
[50]
PCI SIG. Conventional PCI 3.0, PCI-X 2.0 and PCI-E 2.0 Specifications. http://www.pcisig.com
[51]
Pellizzoni, R., Buy, B.D., Caccamo, M., Sha, L.: Coscheduling of real-time tasks and PCI bus transactions. Technical report, University of Illinois at Urbana-Champaign. http://netfiles.uiuc.edu/rpelliz2/www/techreps/ (2008)
[52]
Pellizzoni, R., Meredith, P., Caccamo, M., Roşu, G.: Hardware runtime monitoring for dependable cots-based real-time embedded systems. In: Real-Time System Symposium (RTSS'08), pp. 481---491. IEEE, New York (2008)
[53]
Pellizzoni, R., Meredith, P., Nam, M.-Y., Sun, M., Caccamo, M., Sha, L.: Handling mixed-criticality in soc-based real-time embedded systems. In: Embedded Software (Emsoft'09), pp. 235---244 (2009)
[54]
Pnueli, A.: The temporal logic of programs. In Foundations of Computer Science (FOCS'77), pages 46---57. IEEE, New York (1977)
[55]
Roşu G., Havelund K.: Rewriting-based techniques for runtime verification. J. Autom. Softw Eng. 12(2), 151---197 (2004)
[56]
Roşu, G., Chen, F., Ball, T.: Synthesizing monitors for safety properties--this time with calls and returns. In: Runtime Verification (RV'08), LNCS, vol. 5289, pp. 51---68. Springer, Berlin (2008)
[57]
Sen, K., Roşu, G.: Generating optimal monitors for extended regular expressions. In: Runtime Verification (RV'03), ENTCS, vol. 89, pp. 162---181. Elsevier, Amsterdam (2003)
[58]
Sokolsky, O., Viswanathan, M. (eds): Runtime Verification (RV'03), ENTCS, vol. 89. Elsevier, Amsterdam (2003)
[59]
Soot website. http://www.sable.mcgill.ca/soot/
[60]
Thompson K.: Regular expression search algorithm. Commun. ACM 11(6), 419---422 (1968)
[61]
Vallée-Rai, R., Hendren, L., Sundaresan, V., Lam, P., Gagnon, E., Co, P.: Soot - a Java optimization framework. In: IBM Centre for Advanced Studies Conference (CASCON'99), pp. 125---135. ACM, New York (1999)
[62]
Xilinx, Inc. Virtex-4 ML455 PCI/PCI-X Development Kit User Guide. http://www.xilinx.com/support/documentation/boards_and_kits/ug084.pdf

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image International Journal on Software Tools for Technology Transfer (STTT)
International Journal on Software Tools for Technology Transfer (STTT)  Volume 14, Issue 3
June 2012
136 pages
ISSN:1433-2779
EISSN:1433-2787
Issue’s Table of Contents

Publisher

Springer-Verlag

Berlin, Heidelberg

Publication History

Published: 01 June 2012

Author Tags

  1. Monitoring
  2. Real time systems
  3. Runtime verification
  4. Testing

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 11 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2019)From simulation to runtime verification and backProceedings of the Annual Simulation Symposium10.5555/3338027.3338054(1-10)Online publication date: 29-Apr-2019
  • (2019)An Automata-Theoretic Approach to Model-Checking Systems and Specifications Over Infinite Data DomainsJournal of Automated Reasoning10.1007/s10817-018-9494-063:4(1077-1101)Online publication date: 1-Dec-2019
  • (2019)On the Runtime Enforcement of Timed PropertiesRuntime Verification10.1007/978-3-030-32079-9_4(48-69)Online publication date: 8-Oct-2019
  • (2019)Explaining Violations of Properties in Control-Flow Temporal LogicRuntime Verification10.1007/978-3-030-32079-9_12(202-220)Online publication date: 8-Oct-2019
  • (2018)An Automated Method for the Study of Human Reliability in Railway Supervision SystemsIEEE Transactions on Intelligent Transportation Systems10.1109/TITS.2017.277956519:10(3360-3375)Online publication date: 1-Oct-2018
  • (2017)R2U2Formal Methods in System Design10.5555/3135630.313563651:1(31-61)Online publication date: 1-Aug-2017
  • (2016)Use runtime verification to improve the quality of medical care practiceProceedings of the 38th International Conference on Software Engineering Companion10.1145/2889160.2889233(112-121)Online publication date: 14-May-2016
  • (2016)ModelPlexFormal Methods in System Design10.1007/s10703-016-0241-z49:1-2(33-74)Online publication date: 1-Oct-2016
  • (2016)Monitoring modulo theoriesInternational Journal on Software Tools for Technology Transfer (STTT)10.1007/s10009-015-0380-318:2(205-225)Online publication date: 1-Apr-2016
  • (2015)Monitoring Metric First-Order Temporal PropertiesJournal of the ACM10.1145/269944462:2(1-45)Online publication date: 6-May-2015
  • Show More Cited By

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media