Non-synchronous Communications in Process Algebraic Architectural Description Languages

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


Architectural description languages are a useful tool for modeling complex software systems at a high level of abstraction and, if based on formal methods, for enabling the early verification of various properties among which correct component coordination. This is the case with process algebraic architectural description languages, as they have been equipped with several techniques for verifying the absence of coordination mismatches in the case of synchronous communications. The objective of this paper is twofold. On the modeling side, we show how to enhance the expressiveness of a typical process algebraic architectural description language by including the capability of representing non-synchronous communications, in such a way that the usability of the original language is preserved. On the analysis side, we show how to modify the compatibility check for acyclic topologies and the interoperability check for cyclic topologies, in such a way that both checks can still be applied in the presence of non-synchronous communications.


Graphical Notation Synchronous Communication Tuple Space Architectural Type Architectural Description Language 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


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)zbMATHCrossRefMathSciNetGoogle 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.
    Bernardo, M., Ciancarini, P., Donatiello, L.: Architecting Families of Software Systems with Process Algebras. ACM Trans. on Software Engineering and Methodology 11, 386–426 (2002)CrossRefGoogle Scholar
  4. 4.
    Canal, C., Pimentel, E., Troya, J.M.: Compatibility and Inheritance in Software Architectures. Science of Computer Programming 41, 105–138 (2001)CrossRefMathSciNetGoogle Scholar
  5. 5.
    Carzaniga, A., Rosenblum, D.S., Wolf, A.L.: Design and Evaluation of a Wide-Area Event Notification Service. ACM Trans. on Computer Systems 19, 332–383 (2001)CrossRefGoogle Scholar
  6. 6.
    Gelernter, D.: Generative Communication in Linda. ACM Trans. on Programming Languages and Systems 7, 80–112 (1985)zbMATHCrossRefGoogle Scholar
  7. 7.
    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
  8. 8.
    Magee, J., Kramer, J.: Concurrency: State Models & Java Programs. Wiley, Chichester (1999)zbMATHGoogle Scholar
  9. 9.
    Milner, R.: Communication and Concurrency. Prentice-Hall, Englewood Cliffs (1989)zbMATHGoogle Scholar
  10. 10.
    Oquendo, F.: π-ADL: An Architecture Description Language Based on the Higher-Order Typed π-Calculus for Specifying Dynamic and Mobile Software Architectures. ACM Software Engineering Notes 29(3), 1–14 (2004)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2008

Authors and Affiliations

  • Marco Bernardo
    • 1
  • Edoardo Bontà
    • 1
  1. 1.Università di Urbino “Carlo Bo” – Italy, Istituto di Scienze e Tecnologie dell’Informazione 

Personalised recommendations