skip to main content
10.1145/1029894.1029900acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
Article

Automating comprehensive safety analysis of concurrent programs using verisoft and TXL

Published:31 October 2004Publication History

ABSTRACT

In run-time safety analysis the executions of a concurrent program are monitored and analyzed with respect to safety properties. Similar to testing, run-time analysis is quite efficient, but it also tends to be incomplete. The results pertain only to the observed executions which may constitute just a small subset of all possible executions.

In this paper, we describe a tool called ViP which uses the software model checker VeriSoft to perform comprehensive run-time safety analyses of concurrent C/C++ programs. A ViP analysis proceeds in three fully automated steps: First, the input program is prepared for a VeriSoft analysis through instrumentation. Next, VeriSoft is invoked to generate the traces corresponding to all possible executions of the program. Then, the traces are checked efficiently for specification violations. The instrumentation is based on the source code transformation language TXL. TXL allows for the instrumentation to be described in terms of rewrite rules and gives ViP a remarkable amount of flexibility.

The paper describes ViP together with its use of VeriSoft and TXL. Several sample analyses are discussed to illustrate the use of ViP.

References

  1. B. Abeysundara and A. Kamal. High-speed local area networks and their performance: A survey. ACM Computing Surveys, 23(2), June 1991.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. T. Andrews, S. Qadeer, S. Rajamani, J. Rehof, and Y. Xie. Zing: A model checker for concurrent software. Technical Report MSR-TR-2004-10, MSR, 2004.]]Google ScholarGoogle ScholarCross RefCross Ref
  3. K. Bhargavan, C. Gunter, M. Kim, I. Lee, D. Obradovic, O. Sokolsky, and M. Viswanathan. Verisim: Formal analysis of network simulations. IEEE Transactions on Software Engineering, 28(2):129--145, Feb. 2002.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. M. Clavel, F. Dur&3225;n, S. Eker, P. Lincoln, N. Martí-Oliet, J. Meseguer, and J. Quesada. The maude system. In 10th Intl. Conference on Rewriting Techniques and Applications (RTA '99), pages 240--243, 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. J. Corbett, M. Dwyer, J. Hatcliff, C. Pasareanu, Robby, S. Laubach, and H. Zheng. Bandera: Extracting finite-state models from Java source code. In 22nd International Conference on Software Engineering (ICSE '00), June 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. J. Cordy, T. Dean, A. Malton, and K. Schneider. Source transformation in software engineering using the TXL transformation system. Journal of Information and Software Technology, 44(13):827--837, Oct. 2002.]]Google ScholarGoogle ScholarCross RefCross Ref
  7. J. Dingel. Computer-assisted assume/guarantee reasoning with VeriSoft. In 25th International Conference on Software Engineering (ICSE'03), pages 138--148, Portland, Oregon, USA, May 2003.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. S. Ezust and G. von Bochmann. An automatic trace analysis tool generator for Estelle specifications. Computer Communication Review, 25(4):175--184, 1995.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. P. Godefroid. Partial-Order Methods for the Verification of Concurrent Systems --- An Approach to the State-Explosion Problem. Springer-Verlag, Jan. 1996.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. P. Godefroid. Model checking for programming languages using VeriSoft. In 24th ACM Symposium on Principles of Programming Languages, pages 174--186, Paris, Jan. 1997.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. P. Godefroid. Software model checking in practice: An industrial case study. In International Conference on Software Engineering (ICSE'02), Orlando, May 2002.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. X. Guo, J. Cordy, and T. Dean. Unique renaming of Java using source transformation. In 3rd International IEEE Workshop on Source Code Analysis and Manipulation, pages 151--160, Amsterdam, Holland, Sept. 2003.]]Google ScholarGoogle ScholarCross RefCross Ref
  13. K. Havelund and G. Roşu. An overview of the runtime verification tool Java PathExplorer. To appear in Journal of Formal Methods in System Design.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. K. Havelund and G. Roşu. Synthesizing monitors for safety properties. In International Conference on Tools and Algorithms for Construction and Analysis of Systems (TACAS '02), pages 342--356, 2002.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. G. Holzmann and M. Smith. Automating software feature verification. Bell Labs Technical Journal, 5(2):72--87, 1999.]]Google ScholarGoogle ScholarCross RefCross Ref
  16. M. Kim, S. Kannan, I. Lee, and O. Sokolsky. Java-MaC: a run-time assurance tool for Java. In 1st International Workshop on Run-time Verification, volume 55 of Electronic Notes in Theoretical Computer Science 55 No. 2 (2001), Paris, France, July 2001.]]Google ScholarGoogle Scholar
  17. E. Lee and P. Boulton. The principles and performance of HUBNET: A 50 mb/s fiber optics local area network. IEEE Journal on Selected Areas in Communications, SAC-1:711--720, Nov. 1983.]]Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Z. Manna and A. Pnueli. Temporal verification of reactive systems: Safety. Springer-Verlag, 1995.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. G. Peterson. Myths about the mutual exclusion problem. Information Processing Letters, 12:115--116, June 1981.]]Google ScholarGoogle ScholarCross RefCross Ref
  20. Robby, M. Dwyer, and J. Hatcliff. Bogor: An extensible and highly-modular model checking framework. In European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE 2003), Sept. 2003.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. K. Sen, G. Roşu, and G. Agha. Runtime safety analysis of multithreaded programs. In European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE 2003), Helsinki, Finland, Sept. 2003.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. K. Sen, A. Vardhan, G. Agha, and G. Roşu. Efficient decentralized monitoring of safety in distributed systems. In International Conference on Software Engineering (ICSE 2004), Edinburgh, Scotland, May 2004.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. W. Visser, K. Havelund, G. Brat, S. Park, and F. Lerda. Model checking programs. Automated Software Engineering Journal, 10(2), April 2003.]] Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Automating comprehensive safety analysis of concurrent programs using verisoft and TXL

                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
                  SIGSOFT '04/FSE-12: Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
                  October 2004
                  282 pages
                  ISBN:1581138555
                  DOI:10.1145/1029894
                  • cover image ACM SIGSOFT Software Engineering Notes
                    ACM SIGSOFT Software Engineering Notes  Volume 29, Issue 6
                    November 2004
                    275 pages
                    ISSN:0163-5948
                    DOI:10.1145/1041685
                    Issue’s Table of Contents

                  Copyright © 2004 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: 31 October 2004

                  Permissions

                  Request permissions about this article.

                  Request Permissions

                  Check for updates

                  Qualifiers

                  • Article

                  Acceptance Rates

                  Overall Acceptance Rate17of128submissions,13%

                PDF Format

                View or Download as a PDF file.

                PDF

                eReader

                View online with eReader.

                eReader