Runtime Verification of Java Programs for Scenario-Based Specifications
In this paper, we use UML sequence diagrams as scenario-based specifications, and give the solution to runtime verification of Java programs for the safety consistency and the mandatory consistency. The safety consistency requires that any forbidden scenario described by a given sequence diagram never happens during the execution of a program, and the mandatory consistency requires that if a reference scenario described by the given sequence diagrams occurs during the execution of a program, it must immediately adhere to a scenario described by the other given sequence diagram. In the solution, we first instrument the program under verification so as to gather the program execution traces related to a given scenario-based specification; then we drive the instrumented program by random test cases so as to generate the program execution traces; last we check if the collected program execution traces satisfy the given specification. Our work leads to a testing tool which may proceed in a fully automatic and push-button fashion.
KeywordsSequence Diagram Java Program Reference Scenario Hash Code Automate Teller Machine
Unable to display preview. Download preview PDF.
- 1.ITU-T. Recommendation Z.120. ITU - Telecommunication Standardization Sector, Geneva, Switzerland (May 1996)Google Scholar
- 2.Rumbaugh, J., Jacobson, I., Booch, G.: The Unified Modeling Language Reference Manual. Addison-Wesley, Reading (1999)Google Scholar
- 3.OMG. UML2.0 Superstructure Specification (October 2005), availabe at http://www.uml.org
- 5.Bjork, R.C.: The Simulation of an Automated Teller Machine, http://www.math-cs.gordon.edu/local/courses/cs211/ATMExample/Links.html
- 6.Bartetzko, D., Fischer, C., Moller, M., Wehrheim, H.: Jass - Java with Assertions. Electronic Notes in Theoretical Computer Science 55(2) (2001)Google Scholar
- 7.Havelund, K., Rou, G.: Monitoring Java Programs with Java PathExplorer. Electronic Notes in Theoretical Computer Science 55(2) (2001)Google Scholar
- 8.Kim, M., Kannan, S., Lee, I., Sokolsky, O., Viswanathan, M.: Java-MaC: A Run-time Assurance Tool for Java Programs. Electronic Notes in Theoretical Computer Science 55(2) (2001)Google Scholar
- 9.Brorkens, M., Moller, M.: Dynamic Event Generation for Runtime Checking using the JDI. Electronic Notes in Theoretical Computer Science 70(4) (2002)Google Scholar
- 10.Park, D.Y.W., Stern, U., Skakebak, J.U., Dill, D.L.: Java Model Checking. In: Proceedings of the First International Workshop on Automated Program Analysis, Testing, and Verification (2000)Google Scholar
- 15.Heitmeyer, C.L., Jeffords, R.D., Labaw, B.G.: Comparing Different Approaches for Specifying and Verifying Real-Time Systems. In: Proc. 10th IEEE Workshop on Real-Time Operating Syatems abd Software, New York, pp. 122–129 (1993)Google Scholar