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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Alur, R., Černỳ, P., Madhusudan, P., Nam, W.: Synthesis of interface specifications for Java classes. In: POPL 2005, pp. 98–109 (2005)
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)
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/
Beckman, N., Nori, A.: Probabilistic, modular and scalable inference of typestate specifications. In: PLDI (2011)
Beschastnikh, I., Brun, Y., Sloan, S., Ernst, M.: Leveraging existing instrumentation to automatically infer invariant-constrained models. In: FSE 2011 (2011)
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-z
Bierhoff, K., Aldrich, J.: Plural: checking protocol compliance under aliasing. In: ICSE, pp. 971–972. ACM (2008)
de Caso, G., Braberman, V., Garbervetsky, D., Uchitel, S.: Automated abstractions for contract validation. IEEE Transactions on Software Engineering 38(1), 141–162 (2012)
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)
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)
Dallmeier, V., Lindig, C., Wasylkowski, A., Zeller, A.: Mining object behavior with ADABU. In: Workshop on Dynamic Systems Analysis 2006 (2006)
Dallmeier, V., Knopp, N., Mallon, C., Hack, S., Zeller, A.: Generating test cases for specification mining. In: ISSTA 2010 (2010)
DeLine, R., Fahndrich, M.: Enforcing high-level protocols in low-level software. In: PLDI 2001, pp. 59–69 (2001)
Demsky, B., Rinard, M.: Automatic extraction of heap reference properties in object-oriented programs. IEEE Transactions on Software Engineering 35, 305–324 (2009)
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/S016764230700161X
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/s002360050074
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)
Gabel, M., Su, Z.: Symbolic mining of temporal specifications. In: ICSE 2008, pp. 51–60 (2008), http://portal.acm.org/citation.cfm?id=1368096
Ghezzi, C., Mocci, A., Monga, M.: Synthesizing intensional behavior models by graph transformation. In: ICSE 2009, pp. 430–440 (2009)
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)
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)
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
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)
Henzinger, T., Jhala, R., Majumdar, R.: Permissive interfaces. In: ESEC/FSE 2005, pp. 31–40 (2005)
IEEE: IEEE Standard Glossary of Software Engineering Terminology (September 1990)
Kramer, J.: Is abstraction the key to computing? Commun. ACM 50, 36–42 (2007), http://doi.acm.org/10.1145/1232743.1232745
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)
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
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)
Lorenzoli, D., Mariani, L., Pezzè, M.: Automatic generation of software behavioral models. In: ICSE 2008, pp. 501–510 (2008)
Nanda, M., Grothoff, C., Chandra, S.: Deriving object typestates in the presence of inter-object references. ACM SIGPLAN Notices 40(10), 77–96 (2005)
Nipkow, T., Paulson, L.C., Wenzel, M.: Isabelle/HOL — A Proof Assistant for Higher-Order Logic. LNCS, vol. 2283. Springer, Heidelberg (2002)
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
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.28
Strom, R., Yemini, S.: Typestate: A programming language concept for enhancing software reliability. IEEE TSE 12(1), 157–171 (1986)
Uribe, T.: Abstraction-based Deductive-algorithmic Verification of Reactive Systems. Stanford University, Dept. of Computer Science (1999)
Valmari, A.: The State Explosion Problem. In: Reisig, W., Rozenberg, G. (eds.) APN 1998. LNCS, vol. 1491, pp. 429–528. Springer, Heidelberg (1998)
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.1984721
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2012 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
de Caso, G., Braberman, V., Garbervetsky, D., Uchitel, S. (2012). Abstractions for Validation in Action. In: Bernardo, M., Cortellessa, V., Pierantonio, A. (eds) Formal Methods for Model-Driven Engineering. SFM 2012. Lecture Notes in Computer Science, vol 7320. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-30982-3_6
Download citation
DOI: https://doi.org/10.1007/978-3-642-30982-3_6
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-30981-6
Online ISBN: 978-3-642-30982-3
eBook Packages: Computer ScienceComputer Science (R0)