Synthesizing Concurrency Control Components from Process Algebraic Specifications

  • Edoardo Bontà
  • Marco Bernardo
  • Jeff Magee
  • Jeff Kramer
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4038)


Process algebraic specifications can provide useful support for the architectural design of software systems due to the possibility of analyzing their properties. In addition to that, such specifications can be exploited to guide the generation of code. What is needed at this level is a general methodology that accompanies the translation process, which in particular should help understanding whether and when it is more appropriate to implement a software component as a thread or as a monitor. The objective of this paper is to develop a systematic approach to the synthesis of correctly coordinating monitors from arbitrary process algebraic specifications that satisfy some suitable constraints. The whole approach will be illustrated by means of the process algebraic specification of a cruise control system.


Local Action Local Equation Condition Synchronization Communicate Sequential Process Logical Disjunction 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Aldini, A., Bernardo, M.: On the Usability of Process Algebra: An Architectural View. Theoretical Computer Science 335, 281–329 (2005)MATHCrossRefMathSciNetGoogle Scholar
  2. 2.
    Allen, R., Garlan, D.: A Formal Basis for Architectural Connection. ACM Trans. on Software Engineering and Methodology 6, 213–249 (1997)CrossRefGoogle Scholar
  3. 3.
    Bergstra, J.A., Ponse, A., Smolka, S.A. (eds.): Handbook of Process Algebra. Elsevier, Amsterdam (2001)MATHGoogle Scholar
  4. 4.
    Bernardo, M., Bontà, E.: Generating Well-Synchronized Multithreaded Programs from Software Architecture Descriptions. In: Proc. of the 4th Working IEEE/IFIP Conf. on Software Architecture (WICSA 2004), Oslo, Norway, pp. 167–176. IEEE CS Press, Los Alamitos (2004)CrossRefGoogle Scholar
  5. 5.
    Bernardo, M., Bontà, E.: Preserving Architectural Properties in Multithreaded Code Generation. In: Jacquet, J.-M., Picco, G.P. (eds.) COORDINATION 2005. LNCS, vol. 3454, pp. 188–203. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  6. 6.
    Bolognesi, T., Brinksma, E.: Introduction to the ISO Specification Language LOTOS. Computer Networks and ISDN Systems 14, 25–59 (1987)CrossRefGoogle Scholar
  7. 7.
    Canal, C., Pimentel, E., Troya, J.M.: Compatibility and Inheritance in Software Architectures. Science of Computer Programming 41, 105–138 (2001)CrossRefMathSciNetGoogle Scholar
  8. 8.
    Deng, X., Dwyer, M.B., Hatcliff, J., Mizuno, M.: Invariant-based Specification, Synthesis, and Verification of Synchronization in Concurrent Programs. In: Proc. of the 24th Int. Conf. on Software Engineering (ICSE 2002), Orlando, Florida, pp. 442–452. ACM press, New York (2002)CrossRefGoogle Scholar
  9. 9.
    Hoare, C.A.R.: Communicating Sequential Processes. Prentice Hall, Englewood Cliffs (1985)MATHGoogle Scholar
  10. 10.
    Inverardi, P., Uchitel, S.: Proving Deadlock Freedom in Component-Based Programming. In: Hussmann, H. (ed.) FASE 2001. LNCS, vol. 2029, pp. 60–75. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  11. 11.
    Inverardi, P., Wolf, A.L., Yankelevich, D.: Static Checking of System Behaviors Using Derived Component Assumptions. ACM Trans. on Software Engineering and Methodology 9, 239–272 (2000)CrossRefGoogle Scholar
  12. 12.
    Magee, J., Kramer, J.: Concurrency: State Models & Java Programs. Wiley, Chichester (1999)MATHGoogle Scholar
  13. 13.
    Milner, R.: Communication and Concurrency. Prentice Hall, Englewood Cliffs (1989)MATHGoogle Scholar
  14. 14.
    Perry, D.E., Wolf, A.L.: Foundations for the Study of Software Architecture. ACM SIGSOFT Software Engineering Notes 17, 40–52 (1992)CrossRefGoogle Scholar
  15. 15.
    Shaw, M., Garlan, D.: Software Architecture: Perspectives on an Emerging Discipline. Prentice Hall, Englewood Cliffs (1996)MATHGoogle Scholar
  16. 16.
    Yavuz-Kahveci, T., Bultan, T.: Specification, Verification, and Synthesis of Concurrency Control Components. ACM SIGSOFT Software Engineering Notes 27, 169–179 (2002)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Edoardo Bontà
    • 1
  • Marco Bernardo
    • 1
  • Jeff Magee
    • 2
  • Jeff Kramer
    • 2
  1. 1.Istituto di Scienze e Tecnologie dell’InformazioneUniversità di Urbino 
  2. 2.Department of ComputingImperial College London 

Personalised recommendations