skip to main content
10.1145/1363686.1363781acmconferencesArticle/Chapter ViewAbstractPublication PagessacConference Proceedingsconference-collections
research-article

UML state machine diagram driven runtime verification of Java programs for message interaction consistency

Published:16 March 2008Publication History

ABSTRACT

In object-oriented programs, we often need to set some restrictions on the temporal orders of the message receiving for objects, which forms a class of safety requirements. In this paper, we use UML state machine diagrams as design specifications, and present an approach to runtime verification of Java programs, which is focused on the temporal order of message receiving based consistency verification between the behavior of state machine diagrams and the program execution traces. In the approach, we first instrument the program under verification so as to gather the program execution traces related to a given state machine diagram. Then we drive the instrumented program by random test cases so as to generate the program execution traces. Finally we check if the collected program execution traces are consistent with the behavior of the state machine diagram, which means that the temporal orders of the message receiving occurring in the program traces are consistent with the ones occurring in the state machine diagram. Our approach can be used to detect not only the program bugs resulting from the wrong temporal orders of message receiving, but also the imperfect state machine models constructed in reverse engineering for legacy systems, and leads to a testing tool which may proceed in a fully automatic fashion.

References

  1. J. Rumbaugh and I. Jacobson and G. Booch. The Unified Modeling Language Reference Manual, Addison-Wesley, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. OMG. UML2.0 Superstructure Specification, 2004. www.uml.org.Google ScholarGoogle Scholar
  3. Havelund, K. and G. Rosu, editors, Proceedings of First Workshop on Runtime Verification, Electronic Notes in Theoretical Computer Science, Vol.65, Issue 7, Elsevier, 2001.Google ScholarGoogle ScholarCross RefCross Ref
  4. Bernd Finkbeiner, Sriram Sankaranarayanan, Henny Sipma. Collecting Statistics over Runtime Executions. In Electronic Notes in Theoretical Computer Science, Vol.55, Issue 2, Elsevier, 2001.Google ScholarGoogle Scholar
  5. Russell C. Bjork. The Simulation of an Automated Teller Machine. http://www.math-cs.gordon.edu/local/courses/cs211/ATMExample/Links.html.Google ScholarGoogle Scholar
  6. Detlef Bartetzko, Clemens Fischer, Michael Moller, and Heike Wehrheim. Jass - Java with Assertions. In Electronic Notes in Theoretical Computer Science, Vol.55, Issue 2, Elsevier, 2001.Google ScholarGoogle Scholar
  7. Klaus Havelund and Grigore Rou. Monitoring Java Programs with Java PathExplorer. In Electronic Notes in Theoretical Computer Science, Vol.55, Issue 2, Elsevier, 2001.Google ScholarGoogle Scholar
  8. M. Kim, S. Kannan, I. Lee, O. Sokolsky and M. Viswanathan. Java-MaC: A Run-time Assurance Tool for Java Programs. In Electronic Notes in Theoretical Computer Science, Vol.55, Issue 2, Elsevier, 2001.Google ScholarGoogle Scholar
  9. Marcelo d'Amorim, Klaus Havelund. Event-Based Runtime Verification of Java Programs. In Proceedings of Third International Workshop on Dynamic Analysis (WODA2005), ACM Press, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. David Y. W. Park, Ulrich Stern, Jens U. Skakebak, and David L. Dill. Java Model Checking. In Proceedings of the First International Workshop on Automated Program Analysis, Testing, and Verification, 2000.Google ScholarGoogle ScholarCross RefCross Ref
  11. Klaus Havelund and Thomas Pressburger. Model checking JAVA programs using JAVA PathFinder. In International Journal on Software Tools for Technology Transfer, (2000) 2: 366--381.Google ScholarGoogle ScholarCross RefCross Ref
  12. Rajeev Alur. Trends and Challenges in Algorithmic Software Verification. In Proceedings of IFIP Working Conference on Verified Software: Theories, Tools, Experiments, 2005, http://vstte.ethz.ch/speakers.html.Google ScholarGoogle Scholar
  13. Rajeev Alur, Pavol Cerny, P. Madhusudan, Wonhong Nam. Synthesis of Interface Specifications for Java Classes. In Proceedings of POPL2005, ACM Press, 2005, pp.98--109. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Thomas A. Henzinger, Ranjit Jhala, Rupak Majumadar. Permissive Interfaces. In Proceedings of ESEC-FSE2005, ACM Press, 2005, Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Stefania Gnesi, Diego Latella, and Mieke Massink. Formal Test Case Generation for UML Statecharts. In Proceedings of Ninth IEEE International Conference on Engineering Complex Computer Systems (ICECCS'04), IEEE Computer Society Press, 2004, pp. 75--84. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Diego Latella and Mieke Massink. On Testing and Comformance Relations for UML Statechart Diagram Behaviors. In Proceedings of the ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA2002), ACM Sofyware Engineering Notes 27(4). Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. P. Chevalley and P. Thevenod-Fosse. Automated Generation of Statistical Test Cases from UML State Diagrams. In Proceedings of International Computer Software and Applications Conference, 2001, pp.205--214. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Y. G. Kim, H. S. Hong, S. M. Cho, D. H. Bae, and S. D. Cha. Test Case Generation from UML State Diagrams. In IEEE Proceedings - Software, 146(4), 1999, pp.187--192.Google ScholarGoogle ScholarCross RefCross Ref
  19. Li Xuandong, Wang Linzhang, Qiu Xiaokang, Lei Bin, Yuan Jiesong, Zhao Jianhua, Zheng Guoliang. Runtime Verification of Java Programs for Scenario-Based Specifications. In Proceedings of the 11th International Conference on Reliable Software Technologies (AE2006), LNCS 4006, Springer, 2006, pp.94--106. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. UML state machine diagram driven runtime verification of Java programs for message interaction consistency

                        Recommendations

                        Comments

                        Login options

                        Check if you have access through your login credentials or your institution to get full access on this article.

                        Sign in
                        • Published in

                          cover image ACM Conferences
                          SAC '08: Proceedings of the 2008 ACM symposium on Applied computing
                          March 2008
                          2586 pages
                          ISBN:9781595937537
                          DOI:10.1145/1363686

                          Copyright © 2008 ACM

                          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]

                          Publisher

                          Association for Computing Machinery

                          New York, NY, United States

                          Publication History

                          • Published: 16 March 2008

                          Permissions

                          Request permissions about this article.

                          Request Permissions

                          Check for updates

                          Qualifiers

                          • research-article

                          Acceptance Rates

                          Overall Acceptance Rate1,650of6,669submissions,25%

                        PDF Format

                        View or Download as a PDF file.

                        PDF

                        eReader

                        View online with eReader.

                        eReader