Automated Software Engineering

, Volume 2, Issue 4, pp 265–309 | Cite as

A specification-based approach to concurrency analysis

  • Ugo Buy
  • Robert Moll


The behavior of a concurrent program often depends on the arbitrary interleaving of computations performed by asynchronous processes. The resulting non-determinism can lead to such phenomena as deadlock and starvation, making program development extremely difficult, and consequently making the development of tools for formal analysis highly desirable.

A specification-based approach to concurrency analysis is a particularly promising way of addressing some of the difficulties inherent in concurrent program development. According to this approach, a programmer first writes a specification describing the interprocess communication behavior of a concurrent program. A set of formal analysis techniques are then applied in an effort to determine whether the specification can be fully satisfied. If the analysis is successful, target code is generated automatically that conforms to the specification.

This approach has a variety of benefits. While such properties as safety and liveness are rather difficult to discern in actual code, they are actually easy to include as part of a specification. Moreover, state spaces induced by specifications tend to be smaller and more manageable than state spaces of actual code, and this leads to more effective analysis techniques. Finally, the generation of interprocess communication code from formal specifications is accomplished in a relatively straightforward manner.


distributed software engineering formal models automated concurrency analysis state space based analysis automatic code generation 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. Avrunin, G.S., Buy, U.A., Corbett, J.C., Dillon, L.K., and Wileden, J.C. 1991. Automated analysis of concurrent systems with the constrained expression toolset.IEEE Trans. Softw. Eng., 17(11):1204–1222.Google Scholar
  2. Avrunin, G.S., Dillon, L.K., Wileden, J.C., and Riddle, W.E. 1986. Constrained expressions: Adding analysis capabilities to design methods for concurrent software systems.IEEE Trans. Softw. Eng., 12(2):278–292.Google Scholar
  3. Bryant, R.E. 1992. Symbolic boolean manipulation with ordered binary-decision diagrams.ACM Comput. Surv., 24(3):293–318.Google Scholar
  4. Buy, U. 1990.Automatic Synthesis of Resource Sharing Concurrent Programs. PhD Thesis, University of Massachusetts, Amherst, Massachusetts.Google Scholar
  5. Buy, U.A. and Moll, R. 1991a. Liveness analysis and the automatic generation of concurrent programs. In E.M. Clarke and R.P. Kurshan (Eds.),Computer-Aided Verification'90, DIMACS 3, pp. 535–550, American Mathematical Society.Google Scholar
  6. Buy, U.A. and Moll, R. 1991b. A proof lattice-based technique for analyzing liveness of resource controllers. In E.M. Clarke and R.P. Kurshan (Eds.),Computer-Aided Verification: 2nd Internat. Conf., CAV'90, LNCS 531, pp. 292–301, Springer-Verlag.Google Scholar
  7. Carriero, N. and Gelernter, D. 1989. Linda in context.Commun. ACM, 32(4):445–458.Google Scholar
  8. Clarke, E.M. and Emerson, E.A. 1981. Design and synthesis of synchronization skeletons using branching-time temporal logic. InProceedings of the Workshop on Logics of Programs, LNCS 131, pp. 52–71, Springer-Verlag.Google Scholar
  9. Clarke, E.M., Emerson, E.A., and Sistla, A.P. 1986. Automatic verification of finite-state concurrent systems using temporal logic specifications.ACM Trans. Prog. Lang. Syst., 8(2):244–263.Google Scholar
  10. Cormen, T.H., Leiserson, C.E., and Rivest, R.L. 1990.Introduction to Algorithms. MIT Press/McGraw-Hill.Google Scholar
  11. Desai, A. 1993. A specification based approach to concurrency analysis. Master's Thesis, University of Illinois at Chicago.Google Scholar
  12. Dijkstra, E.W. 1965. Cooperating sequential processes. Technical Report EWD-123, Technological University, Eindhoven, The Netherlands.Google Scholar
  13. Dijkstra, E.W. 1975. Guarded commands, nondeterminacy and formal derivation of programs.Commun. ACM, 18(8):453–457.Google Scholar
  14. Duri, S., Buy, U., Devarapalli, R., and Shatz, S.M. 1993. Using state space reduction methods for deadlock analysis in Ada tasking. InProc. 1993 Internat. Sympos. on Software Testing and Analysis, pp. 51–60, ACM.Google Scholar
  15. Emerson, E.A. and Lei, C.-L. 1987. Modalities for model checking: Branching time logic strikes back.Science of Computer Programming, 8:275–306.Google Scholar
  16. Genrich, H.J. and Lautenbach, K. 1981. System modelling with high-level Petri nets.Theoretical Computer Science 13, 13:109–136.Google Scholar
  17. Godefroid, P. and Wolper, P. 1992. Using partial orders for the efficient verification of deadlock freedom and safety properties. In K.G. Larsen and A. Skou (Eds.),Computer-Aided Verification: 3rd Internat. Conf., CAV'91, LNCS 575, pp. 332–342, Springer-Verlag.Google Scholar
  18. Harel, D., Lachover, H., Naamad, A., Pnueli, A., Politi, M., Sherman, R., Shtull-Trauring, A., and Trakhtenbrot, M. 1990. STATEMATE: a working environment for development of complex reactive systems.IEEE Trans. Softw. Eng., 16(4):403–414.Google Scholar
  19. Helmbold, D. and Luckham, D. 1985. Debugging Ada tasking programs.IEEE Software, 2(2):47–57.Google Scholar
  20. Hoare, C.A.R. 1985.Communicating Sequential Processes. Prentice-Hall International.Google Scholar
  21. Holzmann, G.J. 1991.Design and Validation of Computer Protocols. Prentice-Hall Software Series.Google Scholar
  22. Karam, G.M. and Buhr, R.J. 1990. Starvation and critical race analyzers for Ada.IEEE Trans. Softw. Eng., 16(8):829–843.Google Scholar
  23. Long, D.L. and Clarke, L.A. 1989. Task interaction graphs for concurrency analysis. InProceedings of the 11th International Conference on Software Engineering. Pittsburgh, PA, pp. 44–52.Google Scholar
  24. Manna, Z. and Wolper, P. 1984. Synthesis of communicating processes from temporal logic specifications.ACM Trans. Prog. Lang. Syst., 6(1):68–93.Google Scholar
  25. McDowell, C.E. 1989. A practical algorithm for static analysis of parallel programs.Journal of Parallel and Distributed Processing, pp. 515–536.Google Scholar
  26. McMillan, K.L. 1993.Symbolic Model Checking. Boston, Massachusetts: Kluwer Academic Publishers.Google Scholar
  27. Milner, R. 1989.Communication and Concurrency. Englewood Cliffs, New Jersey: Prentice-Hall.Google Scholar
  28. Morgan, E.T. and Razouk, R.R. 1987. Interactive state-space analysis of concurrent systems.IEEE Trans. Softw. Eng., 13(10):1080–1091.Google Scholar
  29. Murata, T., Shenker, B., and Shatz, S.M. 1989. Detection of Ada static deadlocks using Petri net invariants.IEEE Trans. Softw. Eng., 15(3):314–326.Google Scholar
  30. Owicki, S. and Lamport, L. 1982. Proving liveness properties of concurrent programs.ACM Trans. Prog. Lang. Syst., 4(3):455–495.Google Scholar
  31. Pnueli, A. 1977. The temporal logic of programs. InProceedings 18th Annual Symposium on Foundations of Computer Science, pp. 46–57.Google Scholar
  32. Ramamritham, K. 1985. Synthesizing code for resource controllers.IEEE Trans. Softw. Eng., 11(8):774–783.Google Scholar
  33. Ramamritham, K. and Keller, R.M. 1983. Specification of synchronizing processes.IEEE Trans. Softw. Eng., 9(6):722–733.Google Scholar
  34. Ramamritham, K. and Sundarrajan, P. 1983. Automatic generation of code for resource controller tasks in Ada. InProceedings of the IEEE Symposium on Application and Assessment of Automated Tools for Software Development, pp. 133–142.Google Scholar
  35. Roscoe, A.W. and Hoare, C.A.R. 1988. The laws of Occam programming.Theoretical Computer Science, 20:177–229.Google Scholar
  36. Starke, P.H. 1991. Reachability analysis of Petri nets using symmetries.Syst. Anal. Model. Simul., 8:293–303.Google Scholar
  37. Taylor, R.N. 1983. A general-purpose algorithm for analyzing concurrent programs.Commun. ACM, 26(5):362–376.Google Scholar
  38. Tu, S., Shatz, S.M., and Murata, T. 1990. Applying Petri net reduction to support Ada-tasking deadlock analysis. InProc. Eleventh Internat. Conference on Distributed Computing Systems, Paris, France, pp. 96–103.Google Scholar
  39. U.S. Department of Defense, Washington, D.C.Reference Manual for the Ada Programming Language, ANSI/MIL-STD-1815A edition, Jan. 1983.Google Scholar
  40. Valmari, A. 1991. A stubborn attack on state explosion. In E.M. Clarke and R.P. Kurshan (Eds.),Computer-Aided Verification: 2nd Internat. Conf., CAV'90, LNCS 531, pp. 156–165, Springer-Verlag.Google Scholar
  41. Young, M. and Taylor, R.N. 1988. Combining static concurrency analysis with symbolic execution.IEEE Trans. Softw. Eng., 14(10):1499–1511.Google Scholar

Copyright information

© Kluwer Academic Publishers 1995

Authors and Affiliations

  • Ugo Buy
    • 1
  • Robert Moll
    • 2
  1. 1.University of IllinoisChicago
  2. 2.University of MassachusettsAmherst

Personalised recommendations