Advertisement

Abstractions for Validation in Action

  • Guido de Caso
  • Victor Braberman
  • Diego Garbervetsky
  • Sebastian Uchitel
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7320)

Abstract

Many software engineering artefacts, such as source code or specifications, define a set of operations and impose restrictions to the ordering on which they have to be invoked. Enabledness Preserving Abstractions (EPAs) are concise representations of the behaviour space for such artefacts. In this paper, we exemplify how EPAs might be used for validation of software engineering artefacts by showing the use of EPAs to support some programming tasks on a simple C# class.

Keywords

Behaviour validation enabledness-preserving abstractions 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Alur, R., Černỳ, P., Madhusudan, P., Nam, W.: Synthesis of interface specifications for Java classes. In: POPL 2005, pp. 98–109 (2005)Google Scholar
  2. 2.
    Alur, R., Courcoubetis, C., Halbwachs, N., Henzinger, T., Ho, P., Nicollin, X., Olivero, A., Sifakis, J., Yovine, S.: The algorithmic analysis of hybrid systems. Theoretical Computer Science 138(1), 3–34 (1995)MathSciNetCrossRefzbMATHGoogle Scholar
  3. 3.
    Andersen, M., Barnett, M., Fahndrich, M., Grunkemeyer, B., King, K., Logozzo, F., Patel, V., Zuniga, D.: Code Contracts (2009), http://research.microsoft.com/en-us/projects/contracts/
  4. 4.
    Beckman, N., Nori, A.: Probabilistic, modular and scalable inference of typestate specifications. In: PLDI (2011)Google Scholar
  5. 5.
    Beschastnikh, I., Brun, Y., Sloan, S., Ernst, M.: Leveraging existing instrumentation to automatically infer invariant-constrained models. In: FSE 2011 (2011)Google Scholar
  6. 6.
    Beyer, D., Henzinger, T., Jhala, R., Majumdar, R.: The software model checker Blast. STTT 9, 505–525 (2007), http://www.springerlink.com/index/10.1007/s10009-007-0044-zCrossRefGoogle Scholar
  7. 7.
    Bierhoff, K., Aldrich, J.: Plural: checking protocol compliance under aliasing. In: ICSE, pp. 971–972. ACM (2008)Google Scholar
  8. 8.
    de Caso, G., Braberman, V., Garbervetsky, D., Uchitel, S.: Automated abstractions for contract validation. IEEE Transactions on Software Engineering 38(1), 141–162 (2012)CrossRefGoogle Scholar
  9. 9.
    de Caso, G., Braberman, V.A., Garbervetsky, D., Uchitel, S.: Program abstractions for behaviour validation. In: Proceedings of the 33rd International Conference on Software Engineering, ICSE 2011, Waikiki, Honolulu, HI, USA, May 21-28, pp. 381–390 (2011)Google Scholar
  10. 10.
    Chalin, P., James, P.R.: Non-null References by Default in Java: Alleviating the Nullity Annotation Burden. In: Bateni, M. (ed.) ECOOP 2007. LNCS, vol. 4609, pp. 227–247. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  11. 11.
    Dallmeier, V., Lindig, C., Wasylkowski, A., Zeller, A.: Mining object behavior with ADABU. In: Workshop on Dynamic Systems Analysis 2006 (2006)Google Scholar
  12. 12.
    Dallmeier, V., Knopp, N., Mallon, C., Hack, S., Zeller, A.: Generating test cases for specification mining. In: ISSTA 2010 (2010)Google Scholar
  13. 13.
    DeLine, R., Fahndrich, M.: Enforcing high-level protocols in low-level software. In: PLDI 2001, pp. 59–69 (2001)Google Scholar
  14. 14.
    Demsky, B., Rinard, M.: Automatic extraction of heap reference properties in object-oriented programs. IEEE Transactions on Software Engineering 35, 305–324 (2009)CrossRefGoogle Scholar
  15. 15.
    Ernst, M., Perkins, J., Guo, P., McCamant, S., Pacheco, C., Tschantz, M., Xiao, C.: The Daikon system for dynamic detection of likely invariants. Science of Computer Programming 69, 35–45 (2007), http://linkinghub.elsevier.com/retrieve/pii/S016764230700161XMathSciNetCrossRefzbMATHGoogle Scholar
  16. 16.
    Esparza, J.: Decidability of model checking for infinite-state concurrent systems. Acta Informatica 34, 85–107 (1997), http://www.springerlink.com/openurl.asp?genre=article&id=doi:10.1007/s002360050074MathSciNetCrossRefzbMATHGoogle Scholar
  17. 17.
    Flanagan, C., Leino, K.: Houdini, an Annotation Assistant for ESC/Java. In: Oliveira, J.N., Zave, P. (eds.) FME 2001. LNCS, vol. 2021, pp. 500–517. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  18. 18.
    Gabel, M., Su, Z.: Symbolic mining of temporal specifications. In: ICSE 2008, pp. 51–60 (2008), http://portal.acm.org/citation.cfm?id=1368096
  19. 19.
    Ghezzi, C., Mocci, A., Monga, M.: Synthesizing intensional behavior models by graph transformation. In: ICSE 2009, pp. 430–440 (2009)Google Scholar
  20. 20.
    Giannakopoulou, D., Păsăreanu, C.S.: Interface Generation and Compositional Verification in JavaPathfinder. In: Chechik, M., Wirsing, M. (eds.) FASE 2009. LNCS, vol. 5503, pp. 94–108. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  21. 21.
    Graf, S., Saïdi, H.: Construction of Abstract State Graphs with PVS. In: Grumberg, O. (ed.) CAV 1997. LNCS, vol. 1254, pp. 72–83. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  22. 22.
    Grieskamp, W., Kicillof, N., MacDonald, D., Nandan, A., Stobie, K., Wurden, F.: Model-based quality assurance of Windows protocol documentation. In: ICST 2008, pp. 502–506 (2008), http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=4539580
  23. 23.
    Heitmeyer, C.L., Jeffords, R.D., Labaw, B.G.: Automated consistency checking of requirements specifications. ACM Transactions on Software Engineering and Methodology (TOSEM) 5(3), 231–261 (1996)CrossRefGoogle Scholar
  24. 24.
    Henzinger, T., Jhala, R., Majumdar, R.: Permissive interfaces. In: ESEC/FSE 2005, pp. 31–40 (2005)Google Scholar
  25. 25.
    IEEE: IEEE Standard Glossary of Software Engineering Terminology (September 1990)Google Scholar
  26. 26.
    Kramer, J.: Is abstraction the key to computing? Commun. ACM 50, 36–42 (2007), http://doi.acm.org/10.1145/1232743.1232745CrossRefGoogle Scholar
  27. 27.
    Kwiatkowska, M., Norman, G., Parker, D.: PRISM 4.0: Verification of Probabilistic Real-Time Systems. In: Gopalakrishnan, G., Qadeer, S. (eds.) CAV 2011. LNCS, vol. 6806, pp. 585–591. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  28. 28.
    Lee, D., Yannakakis, M.: Online minimization of transition systems (extended abstract). In: STOC 1992, pp. 264–274 (1992), http://portal.acm.org/citation.cfm?doid=129712.129738
  29. 29.
    Liu, L., Meyer, B., Schoeller, B.: Using Contracts and Boolean Queries to Improve the Quality of Automatic Test Generation. In: Gurevich, Y., Meyer, B. (eds.) TAP 2007. LNCS, vol. 4454, pp. 114–130. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  30. 30.
    Lorenzoli, D., Mariani, L., Pezzè, M.: Automatic generation of software behavioral models. In: ICSE 2008, pp. 501–510 (2008)Google Scholar
  31. 31.
    Nanda, M., Grothoff, C., Chandra, S.: Deriving object typestates in the presence of inter-object references. ACM SIGPLAN Notices 40(10), 77–96 (2005)CrossRefGoogle Scholar
  32. 32.
    Nipkow, T., Paulson, L.C., Wenzel, M.: Isabelle/HOL — A Proof Assistant for Higher-Order Logic. LNCS, vol. 2283. Springer, Heidelberg (2002)zbMATHGoogle Scholar
  33. 33.
    Pradel, M., Gross, T.R.: Automatic Generation of Object Usage Specifications from Large Method Traces. In: ASE 2009, pp. 371–382. IEEE (November 2009), http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=5431756
  34. 34.
    Sasnauskas, R., Dustmann, O.S., Kaminski, B.L., Wehrle, K., Weise, C., Kowalewski, S.: Scalable symbolic execution of distributed systems. In: Proceedings of the 2011 31st International Conference on Distributed Computing Systems, ICDCS 2011, pp. 333–342. IEEE Computer Society, Washington, DC (2011), http://dx.doi.org/10.1109/ICDCS.2011.28CrossRefGoogle Scholar
  35. 35.
    Strom, R., Yemini, S.: Typestate: A programming language concept for enhancing software reliability. IEEE TSE 12(1), 157–171 (1986)zbMATHGoogle Scholar
  36. 36.
    Uribe, T.: Abstraction-based Deductive-algorithmic Verification of Reactive Systems. Stanford University, Dept. of Computer Science (1999)Google Scholar
  37. 37.
    Valmari, A.: The State Explosion Problem. In: Reisig, W., Rozenberg, G. (eds.) APN 1998. LNCS, vol. 1491, pp. 429–528. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  38. 38.
    Zoppi, E., Braberman, V., de Caso, G., Garbervetsky, D., Uchitel, S.: Contractor.net: inferring typestate properties to enrich code contracts. In: Proceedings of the 1st Workshop on Developing Tools as Plug-ins, TOPI 2011, pp. 44–47. ACM, New York (2011), http://doi.acm.org/10.1145/1984708.1984721Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Guido de Caso
    • 1
  • Victor Braberman
    • 1
  • Diego Garbervetsky
    • 1
  • Sebastian Uchitel
    • 1
    • 2
  1. 1.Departamento de Computación, FCEyNUniversidad de Buenos AiresBuenos AiresArgentina
  2. 2.Department of ComputingImperial CollegeLondonUK

Personalised recommendations