Skip to main content

Crafting a Promela Front-End with Abstract Data Types to Mitigate the Sensitivity of (Compositional) Analysis to Implementation Choices

  • Conference paper
Model Checking Software (SPIN 2005)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 3639))

Included in the following conference series:

  • 531 Accesses

Abstract

Recently, an active research topic in software verification is applying model checkers to programs, such as multi-threaded Java code. However, a program typically consists of more behaviors, such as operations on complicated data structures or implementation details which are typically made for some criteria like performance. A brute-force model extraction may produce a poor model for analysis engine. In this paper, we give examples to show how subtle changes in implementation may result in considerable differences in analysis, particularly to compositional analysis. Unfortunately, these implementation choices are made by programmers – people who typically do not possess the knowledge of verification. To mitigate such sensitivity, we advocate that verification tools should recognize and support abstract data types and, in the meantime, prohibit or suppress the use of array. Programming process behaviors with abstract data types can hide and converge the implementation choices. More importantly, abstract data types are informative. They provide essential information for tool automation to select a best implementation for analysis. In this paper, we describe the design and implementation of such a prototype tool which can parse systems written in Promela syntax.

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. Avrunin, G.S., Corbett, J.C., Dwyer, M.B., Pasareanu, C.S., Siegel, S.F.: Comparing finite-state verification techniques for concurrent software. Technical Report UM-CS-1999-069, Dept. of CS, University of Massachusetts (November 1999) (in preparation)

    Google Scholar 

  2. Bartlett, K.A., Scantlebury, R.A., Wilkinson, P.T.: A note on reliable full-duplex transmission over half-duplex lines. Communications of ACM 12(5), 260–261 (1969)

    Article  Google Scholar 

  3. Bryant, R.E.: Graph-based algorithms for boolean function manipulations. IEEE Transactions on Computers C-35(8), 677–691 (1986)

    Article  MATH  Google Scholar 

  4. Cheng, Y.: Refactoring design models for inductive verification. In: Proceedings of International Symposium on Software Testing and Analysis (ISSTA 2002), Rome, Italy, July 2002, pp. 164–168 (2002)

    Google Scholar 

  5. Cheng, Y.-P., Young, M., Huang, C.-L., Pan, C.-Y.: Towards scalable compositional analysis by refactoring design models. In: Proceedings of the ACM SIGSOFT 2003 Symposium on the Foundations of Software Engineering, pp. 247–256 (2003)

    Google Scholar 

  6. Cheung, S.C., Giannakopoulou, D., Kramer, J.: Verification of liveness properties using compositional reachability analysis. In: 5th ACM SIGSOFT Symposium on Foundations of Software Engineering, Zurich, Switzerland, September 1997, pp. 227–243 (1997)

    Google Scholar 

  7. Cheung, S.C., Kramer, J.: Context constraints for compositional reachability analysis. ACM Transactions on Software Engineering and Methodology 5(4), 334–377 (1996)

    Article  Google Scholar 

  8. Cheung, S.C., Kramer, J.: Checking safety properties using compositional reachability analysis. ACM Transactions on Software Engineering and Methodology 8, 49–78 (1999)

    Article  Google Scholar 

  9. Clarke, E.M., Long, D.E., McMillan, K.L.: Compositional model checking. In: Proceedings of 4th IEEE Symposium on Logic in Computer Sciences, pp. 353–362. IEEE Computer Society Press, Los Alamitos (1989)

    Google Scholar 

  10. Corbett, J.C.: Evaluating deadlock detection methods for concurrent software. IEEE Transactions on Software Engineering 2(3), 161–180 (1996)

    Article  Google Scholar 

  11. Corbett, J.C., Dwyer, M.B., Hatcliff, J., Laubach, S., Păsăreanu, C.S., Robby, Zheng, H.: Bandera: extracting finite-state models from java source code. In: International Conference on Software Engineering, pp. 439–448 (2000)

    Google Scholar 

  12. Graf, S., Steffen, B.: Compositional minimization of finite state systems. In: Clarke, E., Kurshan, R.P. (eds.) CAV 1990. LNCS, vol. 531, pp. 186–204. Springer, Heidelberg (1991)

    Chapter  Google Scholar 

  13. Havelund, K., Pressburger, T.: Model checking JAVA programs using JAVA pathfinder. International Journal on Software Tools for Technology Transfer 2(4), 366–381 (2000)

    Article  MATH  Google Scholar 

  14. Holzmann, G.J.: Design and Validation of Computer Protocols. Prentice-Hall, Englewood Cliffs (1991)

    Google Scholar 

  15. Holzmann, G.J.: The model checker SPIN. Software Engineering 23(5), 279–295 (1997)

    Article  MathSciNet  Google Scholar 

  16. Holzmann, G.J.: Designing executable abstractions. In: Proceedings of the second workshop on formal methods in software practice, Clearwater Beach, Florida USA, March 1998, pp. 103–108 (1998)

    Google Scholar 

  17. Keller, R.K., Cameron, M., Taylor, R.N., Troup, D.B.: User interface development and software environments: The Chiron-1 system. In: Proceedings of the Thirteenth International Conference on Software Engineering, Austin, TX, May 1991, pp. 208–218 (1991)

    Google Scholar 

  18. Madelaine, E., de Simone, R.: The FC2 Reference Manual. Available by ftp from http://cma.cma.fr:pub/verif as file http://fc2refman.ps INRIA

  19. McMillan, K.L.: Symbolic model checking. Kluwer Academic Publishers, Massachusetts (1993)

    MATH  Google Scholar 

  20. Milner, R.: A Calculus of Communication Systems. LNCS, vol. 92. Springer, New York (1980)

    MATH  Google Scholar 

  21. Richardson, D.J., Aha, S.L., O’Malley, T.O.: Specification-based test oracles for reactive systems. In: Proceedings of the Fourteenth International Conference on Software Engineering, Melbourne, Australia, May 1992, pp. 105–118 (1992)

    Google Scholar 

  22. Yeh, W.J., Young, M.: Re-designing tasking structure of Ada programs for analysis: A case study. Software Testing, Verification, and Reliability 4, 223–253 (1994)

    Article  Google Scholar 

  23. Young, M., Taylor, R., Levine, D., Nies, K.A., Brodbeck, D.: A concurrency analysis tool suite for Ada programs: Rationale, design, and preliminary experience. ACM Transactions on Software Engineering and Methodology 4(1), 65–106 (1995)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2005 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Cheng, YP. (2005). Crafting a Promela Front-End with Abstract Data Types to Mitigate the Sensitivity of (Compositional) Analysis to Implementation Choices. In: Godefroid, P. (eds) Model Checking Software. SPIN 2005. Lecture Notes in Computer Science, vol 3639. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11537328_13

Download citation

  • DOI: https://doi.org/10.1007/11537328_13

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-28195-5

  • Online ISBN: 978-3-540-31899-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics