International School on Formal Methods for the Design of Computer, Communication and Software Systems

SFM 2014: Formal Methods for Executable Software Models pp 1-25

Part of the Lecture Notes in Computer Science book series (LNCS, volume 8483) | Cite as

Analysis of Executable Software Models

  • Richard Bubel
  • Antonio Flores Montoya
  • Reiner Hähnle

Abstract

In this tutorial we focus on the Abstract Behavioral Modeling (ABS) language, a highly modular, executable modeling language for concurrent systems. We show how three analyses for ABS models are working: resource consumption, deadlock detection, and functional verification. The acceptance of incomplete ABS models together with the capability to analyse them makes ABS extremely useful as a precise modeling language to be used in the design phases of software development.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    The ABS Language Specification, ABS version 1.2.0 edition (April 2013), http://tools.hats-project.eu/download/absrefmanual.pdf
  2. 2.
    Albert, E., Arenas, P., Flores-Montoya, A., Genaim, S., Gómez-Zamalloa, M., Martin-Martin, E., Puebla, G., Román-Díez, G.: SACO: Static Analyzer for Concurrent Objects. In: Ábrahám, E., Havelund, K. (eds.) TACAS 2014 (ETAPS). LNCS, vol. 8413, pp. 562–567. Springer, Heidelberg (2014)CrossRefGoogle Scholar
  3. 3.
    Albert, E., Arenas, P., Genaim, S., Gómez-Zamalloa, M., Puebla, G.: Cost Analysis of Concurrent OO programs. In: Yang, H. (ed.) APLAS 2011. LNCS, vol. 7078, pp. 238–254. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  4. 4.
    Albert, E., Arenas, P., Genaim, S., Puebla, G.: Closed-form upper bounds in static cost analysis. Journal of Automated Reasoning 46(2), 161–203 (2011)MathSciNetCrossRefMATHGoogle Scholar
  5. 5.
    Albert, E., Arenas, P., Genaim, S., Puebla, G., Zanardini, D.: Cost analysis of Java bytecode. In: De Nicola, R. (ed.) ESOP 2007. LNCS, vol. 4421, pp. 157–172. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  6. 6.
    Albert, E., Arenas, P., Genaim, S., Puebla, G., Zanardini, D.: COSTA: Design and implementation of a cost and termination analyzer for Java bytecode. In: de Boer, F.S., Bonsangue, M.M., Graf, S., de Roever, W.-P. (eds.) FMCO 2007. LNCS, vol. 5382, pp. 113–132. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  7. 7.
    Albert, E., Flores-Montoya, A.E., Genaim, S.: Analysis of May-Happen-in-Parallel in Concurrent Objects. In: Giese, H., Rosu, G. (eds.) FMOODS/FORTE 2012. LNCS, vol. 7273, pp. 35–51. Springer, Heidelberg (2012)Google Scholar
  8. 8.
    Albert, E., Flores-Montoya, A., Genaim, S., Martin-Martin, E.: Termination and cost analysis of loops with concurrent interleavings. In: Van Hung, D., Ogawa, M. (eds.) ATVA 2013. LNCS, vol. 8172, pp. 349–364. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  9. 9.
    Albert, E., Genaim, S., Masud, A.N.: More precise yet widely applicable cost analysis. In: Jhala, R., Schmidt, D. (eds.) VMCAI 2011. LNCS, vol. 6538, pp. 38–53. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  10. 10.
    Alias, C., Darte, A., Feautrier, P., Gonnord, L.: Multi-dimensional rankings, program termination, and complexity bounds of flowchart programs. In: Cousot, R., Martel, M. (eds.) SAS 2010. LNCS, vol. 6337, pp. 117–133. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  11. 11.
    Alonso-Blas, D.E., Arenas, P., Genaim, S.: Precise cost analysis via local reasoning. In: Van Hung, D., Ogawa, M. (eds.) ATVA 2013. LNCS, vol. 8172, pp. 319–333. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  12. 12.
    Beckert, B., Hähnle, R.: Reasoning and verification. IEEE Intelligent Systems (to appear, 2014)Google Scholar
  13. 13.
    Beckert, B., Hähnle, R., Schmitt, P.H. (eds.): Verification of Object-Oriented Software. LNCS (LNAI), vol. 4334. Springer, Heidelberg (2007)Google Scholar
  14. 14.
    Boehm, B.W., Papaccio, P.N.: Understanding and controlling software costs. IEEE Trans. Software Eng. 14(10), 1462–1477 (1988)CrossRefGoogle Scholar
  15. 15.
    Brockschmidt, M., Emmes, F., Falke, S., Fuhs, C., Giesl, J.: Alternating runtime and size complexity analysis of integer programs. In: Ábrahám, E., Havelund, K. (eds.) TACAS 2014 (ETAPS). LNCS, vol. 8413, pp. 140–155. Springer, Heidelberg (2014)CrossRefGoogle Scholar
  16. 16.
    de Boer, F.S., Hähnle, R., Johnsen, E.B., Schlatte, R., Wong, P.Y.H.: Formal modeling of resource management for cloud architectures: An industrial case study. In: De Paoli, F., Pimentel, E., Zavattaro, G. (eds.) ESOCC 2012. LNCS, vol. 7592, pp. 91–106. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  17. 17.
    Report on the Core ABS Language and Methodology: Parts A and B. Deliverable 1.1 of project FP7-231620 (HATS) (March 2010), http://www.hats-project.eu
  18. 18.
    Din, C.C., Dovland, J., Johnsen, E.B., Owe, O.: Observable behavior of distributed systems: Component reasoning for concurrent objects. Journal of Logic and Algebraic Programming 81(3), 227–256 (2012)MathSciNetCrossRefMATHGoogle Scholar
  19. 19.
    Giachino, E., Grazia, C.A., Laneve, C., Lienhardt, M., Wong, P.Y.H.: Deadlock analysis of concurrent objects: Theory and practice (2013), http://www.cs.unibo.it/~laneve (submitted)
  20. 20.
    Giachino, E., Laneve, C.: A beginner’s guide to the deadLock Analysis Model. In: Palamidessi, C., Ryan, M.D. (eds.) TGC 2012. LNCS, vol. 8191, pp. 49–63. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  21. 21.
    Gulavani, B.S., Gulwani, S.: A numerical abstract domain based on expression abstraction and max operator with application in timing analysis. In: Gupta, A., Malik, S. (eds.) CAV 2008. LNCS, vol. 5123, pp. 370–384. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  22. 22.
    Gulwani, S., Mehra, K.K., Chilimbi, T.M.: Speed: Precise and efficient static estimation of program computational complexity. In: Principles of Programming Languages (POPL 2009), pp. 127–139. ACM (2009)Google Scholar
  23. 23.
    Hähnle, R.: The Abstract Behavioral Specification Language: A Tutorial Introduction. In: Giachino, E., Hähnle, R., de Boer, F.S., Bonsangue, M.M. (eds.) Formal Methods for Components and Objects. LNCS, vol. 7866, pp. 1–37. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  24. 24.
    Jan Hoffmann, M.H., Aehlig, K.: Multivariate amortized resource analysis. In: Principles of Programming Languages (POPL 2011), pp. 357–370. ACM (2011)Google Scholar
  25. 25.
    Johnsen, E.B., Hähnle, R., Schäfer, J., Schlatte, R., Steffen, M.: ABS: A core language for abstract behavioral specification. In: Aichernig, B.K., de Boer, F.S., Bonsangue, M.M. (eds.) Formal Methods for Components and Objects. LNCS, vol. 6957, pp. 142–164. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  26. 26.
    Johnsen, E.B., Owe, O.: An asynchronous communication model for distributed concurrent objects. Software and System Modeling 6(1), 35–58 (2007)CrossRefGoogle Scholar
  27. 27.
    Jones, C.B.: Development Methods for Computer Programs including a Notion of Interference. PhD thesis, Oxford University, jun, Printed as: Programming Research Group, Technical Monograph 25 (1981)Google Scholar
  28. 28.
    Meyer, B.: Applying “design by contract”. IEEE Computer 25(10), 40–51 (1992)CrossRefGoogle Scholar
  29. 29.
    Milanova, A., Rountev, A., Ryder, B.G.: Parameterized object sensitivity for points-to analysis for java. ACM Trans. Softw. Eng. Methodol. 14, 1–41 (2005)CrossRefGoogle Scholar
  30. 30.
    Misra, J., Chandy, K.M.: Proofs of networks of processes. IEEE Transactions on Software Engineering 7(4), 417–426 (1981)MathSciNetCrossRefMATHGoogle Scholar
  31. 31.
    Schaefer, I., Bettini, L., Bono, V., Damiani, F., Tanzarella, N.: Delta-oriented programming of software product lines. In: Bosch, J., Lee, J. (eds.) SPLC 2010. LNCS, vol. 6287, pp. 77–91. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  32. 32.
    Schäfer, J., Poetzsch-Heffter, A.: JCoBox: Generalizing active objects to concurrent components. In: D’Hondt, T. (ed.) ECOOP 2010. LNCS, vol. 6183, pp. 275–299. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  33. 33.
    Sinn, M., Zuleger, F., Veith, H.: A simple and scalable static analysis for bound analysis and amortized complexity analysis. CoRR, abs/1401.5842 (2014)Google Scholar
  34. 34.
    Wong, P.Y.H., Albert, E., Muschevici, R., Proença, J., Schäfer, J., Schlatte, R.: The ABS tool suite: modelling, executing and analysing distributed adaptable object-oriented systems. Journal on Software Tools for Technology Transfer 14(5), 567–588 (2012)CrossRefGoogle Scholar
  35. 35.
    Wong, P.Y.H., Bubel, R., de Boer, F.S., Gómez-Zamalloa, M., de Gouw, S., Hähnle, R., Meinke, K., Sindhu, M.A.: Testing abstract behavioral specifications. Software Tools for Technology Transfer (to appear, 2014)Google Scholar
  36. 36.
    Zuleger, F., Gulwani, S., Sinn, M., Veith, H.: Bound analysis of imperative programs with the size-change abstraction. In: Yahav, E. (ed.) Static Analysis. LNCS, vol. 6887, pp. 280–297. Springer, Heidelberg (2011)CrossRefGoogle Scholar

Copyright information

© Springer International Publishing Switzerland 2014

Authors and Affiliations

  • Richard Bubel
    • 1
  • Antonio Flores Montoya
    • 1
  • Reiner Hähnle
    • 1
  1. 1.Dept. of Computer ScienceTU DarmstadtGermany

Personalised recommendations