Skip to main content

Lightweight Verification of a Multi-Task Threaded Server: A Case Study With The Plural Tool

  • Conference paper
Formal Methods for Industrial Critical Systems (FMICS 2011)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 6959))

Abstract

In this case study, we used the Plural tool to verify the design of a commercial multi-task threaded application (MTTS) implemented by Novabase, which has been used for massively parallelising computational tasks. The effort undertaken in this case study has revealed several issues related with the design of the MTTS, with programming practices used in its implementation, and with domain specific properties of the MTTS. This case study has also provided insight on how the analysis done by the Plural tool can be improved. The Plural tool performs lightweight verification of Java programs. Plural specification language combines typestates and access permissions, backed by Linear Logic. The Plural specifications we wrote for the MTTS are based on its code, its informal documentation, sometimes embedded in the code, and our discussions with Novabase’s engineers, who validated our understanding of the MTTS application.

This work has been supported by the Portuguese Research Agency FCT through the CMU-Portugal program, R&D Project Æminium, CMU-PT/SE/0038/2008.

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. Ahmed, I., Cataño, N.: Architecture of Novabase’ MTTS application. Technical report, The University of Madeira (2010), http://www3.uma.pt/ncatano/aeminium/Documents_files/mtts.pdf

  2. Barnett, M., DeLine, R., Fhndrich, M., Rustan, K., Leino, M., Schulte, W.: Verification of object-oriented programs with invariants. Journal of Object Technology 3 (2004)

    Article  Google Scholar 

  3. Bierhoff, K., Aldrich, J.: Modular typestate checking of aliased objects. In: Proceedings of the 22nd Annual ACM SIGPLAN Conference on Object-Oriented Programming Systems and Applications, OOPSLA, pp. 301–320 (2007)

    Google Scholar 

  4. Bierhoff, K., Beckman, N.E., Aldrich, J.: Practical API protocol checking with access permissions. In: Drossopoulou, S. (ed.) ECOOP 2009. LNCS, vol. 5653, pp. 195–219. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  5. Bierhoff, N.B.K., Aldrich, J.: Verifying correct usage of atomic blocks and typestate. In: OOPSLA (2008)

    Google Scholar 

  6. Boyland, J.: Checking interference with fractional permissions. In: Proceedings of the 10th International Conference on Static Analysis, SAS, pp. 55–72 (2003)

    Google Scholar 

  7. Burdy, L., Cheon, Y., Cok, D., Ernst, M.D., Kiniry, J., Leavens, G.T., Rustan, K., Leino, M., Poll, E.: An overview of JML tools and applications (2003)

    Google Scholar 

  8. Cataño, N., Wahls, T.: Executing JML specifications of java card applications: A case study. In: 24th ACM Symposium on Applied Computing, Software Engineering Track (SAC-SE), Honolulu, Hawaii, March 8-12, pp. 404–408 (2009)

    Google Scholar 

  9. DeLine, R., Fähndrich, M.: Enforcing high-level protocols in low-level software. In: Proceedings of the ACM SIGPLAN 2001 Conference on Programming Language Design and Implementation, PLDI, pp. 59–69 (2001)

    Google Scholar 

  10. DeLine, R., Fähndrich, M.: The Fugue protocol checker: Is your software baroque (2003)

    Google Scholar 

  11. Girard, J.-Y.: Linear logic. Theoretical Computer Science 50, 1–102 (1987)

    Article  MathSciNet  MATH  Google Scholar 

  12. Leavens, G.T., Baker, A.L., Ruby, C.: Preliminary design of JML: A behavioral interface specification language for Java. ACM SIGSOFT (Software Engineering Symposium) 31(3), 1–38 (2006)

    Article  Google Scholar 

  13. Novabase, http://www.novabase.pt

  14. The Plural Tool, http://code.google.com/p/pluralism/

  15. Roux, P., Siminiceanu, R.: Model checking with edge-valued decision diagrams. In: NASA Formal Methods Symposium (NFM), NASA/CP-2010-216215, pp. 222–226. Langley Research Center, NASA (April 2010)

    Google Scholar 

  16. Stork, S., Marques, P., Aldrich, J.: Concurrency by default: using permissions to express dataflow in stateful programs. In: Conference on Object-Oriented Programming Systems and Applications, OOPSLA, pp. 933–940 (2009)

    Google Scholar 

  17. Strom, R.E., Yemini, S.: Typestate: A programming language concept for enhancing software reliability. IEEE Transactions on Software Engineering 12, 157–171 (1986)

    Article  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2011 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Cataño, N., Ahmed, I. (2011). Lightweight Verification of a Multi-Task Threaded Server: A Case Study With The Plural Tool. In: Salaün, G., Schätz, B. (eds) Formal Methods for Industrial Critical Systems. FMICS 2011. Lecture Notes in Computer Science, vol 6959. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-24431-5_3

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-24431-5_3

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-24430-8

  • Online ISBN: 978-3-642-24431-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics