Abstract
We have implemented a contract checker for asynchronous, message-passing applications to check that service implementations conform to behavioural contracts. Our contract checker is based on a process algebraic theory of conformance and is implemented on top of a software model checker, Zing. The purpose of this paper is to explain the model construction implemented by our contract checker and how it is related to a mathematical theory of conformance. In addition, we point out current and future research directions in model construction for conformance checking in the presence of channel-passing.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Zing Language Specification, http://research.microsoft.com/zing
Andrews, T., Qadeer, S., Rajamani, S.K., Rehof, J., Xie, Y.: Zing: A Model Checker for Concurrent Software. In: Alur, R., Peled, D.A. (eds.) CAV 2004. LNCS, vol. 3114, pp. 484–487. Springer, Heidelberg (2004)
Andrews, T., Qadeer, S., Rajamani, S.K., Rehof, J., Xie, Y.: Zing: Exploiting Program Structure for Model Checking Concurrent Software. In: Gardner, P., Yoshida, N. (eds.) CONCUR 2004. LNCS, vol. 3170, pp. 1–15. Springer, Heidelberg (2004)
Ball, T., Rajamani, S.K.: The SLAM project: Debugging system software via static analysis. In: POPL 2002: Principles of Programming Languages, pp. 1–3. ACM, New York (2002)
Brinksma, E., Heerink, L., Tretmans, J.: Developments in testing transition systems. In: Testing of Communicating Systems, IFIP TC6 10th International Workshop on Testing of Communicating Systems, pp. 143–166. Chapman & Hall, Boca Raton (1997)
Brookes, S.D., Hoare, C.A.R., Roscoe, A.W.: A theory of communicating sequential processes. Journal of the ACM 31(3), 560–599 (1984)
Chaki, S., Rajamani, S.K., Rehof, J.: Types as models: Model checking message-passing programs. In: POPL 2002: ACM Principles of Programming Languages. ACM, New York (2002)
Corbett, J., Dwyer, M., Hatcliff, J., Pasareanu, C., Robby, S.L., Zheng, H.: Bandera: Extracting finite-state models from Java source code. In: ICSE 2000: International Conference on Software Engineering, pp. 439–448. ACM, New York (2000)
Dwyer, M., Hatcliff, J., Joehanes, R., Laubach, S., Pasareanu, C., Robby, W.V., Zheng, H.: Tool-supported program abstraction for finite-state verification. In: ICSE 2001: International Conference on Software Engineering, pp. 177–187. ACM, New York (2001)
Fournet, C., Hoare, C.A.R., Rajamani, S.K., Rehof, J.: Stuck-free conformance theory for CCS. Technical Report MSR-TR-2004-09, Microsoft Research (2004)
Fournet, C., Hoare, C.A.R., Rajamani, S.K., Rehof, J.: Stuck-Free Conformance. In: Alur, R., Peled, D.A. (eds.) CAV 2004. LNCS, vol. 3114, pp. 242–254. Springer, Heidelberg (2004)
Hatcliff, J., Dwyer, M.B.: Using the Bandera Tool Set to Model-Check Properties of Concurrent Java Software. In: Larsen, K.G., Nielsen, M. (eds.) CONCUR 2001. LNCS, vol. 2154, p. 39. Springer, Heidelberg (2001)
Hoare, C.A.R.: Communicating Sequential Processes. Prentice Hall, Englewood Cliffs (1985)
Holzmann, G.: The model checker SPIN. IEEE Transactions on Software Engineering 23(5), 279–295 (1997)
Igarashi, A., Kobayashi, N.: A generic type system for the Pi-calculus. In: POPL 2001: Principles of Programming Languages, pp. 128–141. ACM, New York (2001)
Iosif, R., Sisto, R.: dSPIN: A Dynamic Extension of SPIN. In: Dams, D.R., Gerth, R., Leue, S., Massink, M. (eds.) SPIN 1999. LNCS, vol. 1680, pp. 261–276. Springer, Heidelberg (1999)
Larsen, K.G., Skou, A.: Bisimulation through probabilistic testing. In: POPL 1989: ACM Principles of Programming Languages, pp. 344–352. ACM, New York (1989)
Milner, R.: Communication and Concurrency. Prentice Hall, Englewood Cliffs (1989)
Milner, R.: Communicating and Mobile Systems: the π-Calculus. Cambridge University Press, Cambridge (1999)
Phillips, I.: Refusal testing. Theoretical Computer Science 50(2), 241–284 (1987)
Robby, D.M., Hatcliff, J.: Bogor: An extensible and highly-modular model checking framework. In: Johansson, T. (ed.) FSE 2003. LNCS, vol. 2887, pp. 267–276. Springer, Heidelberg (2003)
Roscoe, A.W.: The Theory and Practice of Concurrency. Prentice Hall, Englewood Cliffs (1998)
Stoller, S.D.: Model-checking multi-threaded distributed Java programs. International Journal on Software Tools for Technology Transfer 4(1), 71–91 (2002)
Visser, W., Havelund, K., Brat, G., Park, S.: Model checking programs. In: ASE 2000: Automated Software Engineering, pp. 3–12 (2000)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Rajamani, S.K., Rehof, J. (2006). Models for Contract Conformance. In: Margaria, T., Steffen, B. (eds) Leveraging Applications of Formal Methods. ISoLA 2004. Lecture Notes in Computer Science, vol 4313. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11925040_12
Download citation
DOI: https://doi.org/10.1007/11925040_12
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-48928-3
Online ISBN: 978-3-540-48929-0
eBook Packages: Computer ScienceComputer Science (R0)