This Article 
 Bibliographic References 
 Add to: 
Describing Software Architecture Styles Using Graph Grammars
July 1998 (vol. 24 no. 7)
pp. 521-533

Abstract—We believe that software architectures should provide an appropriate basis for the proof of properties of large software. This goal can be achieved through a clearcut separation between computation and communication and a formal definition of the interactions between individual components. We present a formalism for the definition of software architectures in terms of graphs. Nodes represent the individual agents and edges define their interconnection. Individual agents can communicate only along the links specified by the architecture. The dynamic evolution of an architecture is defined independently by a "coordinator." An architecture style is a class of architectures specified by a graph grammar. The class characterizes a set of architectures sharing a common communication pattern. The rules of the coordinator are statically checked to ensure that they preserve the constraints imposed by the architecture style.

[1] G. Abowd, R. Allen, and D. Garlan,“Using style to understand descriptions of software architecture,”inProc. First ACM SIGSOFT Symp. Foundations of Software Eng., Dec. 1993.
[2] R. Allen and D. Garlan, Formalizing Architectural Connection Proc. 16th Int'l Conf. Software Eng., pp. 71-80, May 1994.
[3] ——,“Programming by multiset transformation,”Commun. ACM, vol. 36, no. 1, pp. 98–111, Jan. 1993.
[4] J.-P. Banâtre and D. Le Métayer, "Gamma and the Chemical Reaction Model: Ten Years After," Coordination Programming: Mechanisms, Models and Semantics, World Scientific, pp. 3-41, Imperial College Press, 1997.
[5] G. Berry and G. Boudol,“The chemical abstract machine,”Theoretical Comput. Sci., vol. 96, pp. 217–248, 1992.
[6] N. Carriero and D. Gelernter, "Linda in Context," Comm. ACM, vol. 32, no. 4, Apr. 1989, pp. 444-458.
[7] B. Courcelle, "Graph Rewriting: an Algebraic and Logic Approach," Handbook of Theoretical Computer Science, ch. 5, J. van Leeuwen, ed., Elsevier Science, 1990.
[8] E. de Jong, "An Industrial Case Study: A Railway Control System," Proc. Second Int'l Conf. Coordination Models, Languages and Applications, Lecture Notes in Computer Science 1282. Springer-Verlag, 1997.
[9] P. Degano and U. Montanari, "A Model for Distributed Systems Based on Graph Rewritings," J. ACM, vol. 34, no. 2, pp. 411-449, Apr. 1987.
[10] P. Della Vigna and C. Ghezzi, "Context-Free Graph Grammars," Information and Control, vol. 37, pp. 207-233, 1978.
[11] P. Fradet and D. Le Métayer, "Structured Gamma," Science of Computer Programming, to appear.
[12] D. Garlan et al., "Exploiting Style in Architectural Design Environments," ACM SIGSOFT, pp. 175-188, 1994.
[13] D. Garlan and D. Perry, "Introduction to the Special Issue on Software Engineering," IEEE Trans. Software Eng., Apr. 1995, pp. 269-274.
[14] C.A.R. Hoare,“Communicating sequential processes,” Comm. of the ACM, vol. 21, no. 8, pp. 666-677, Aug. 1978.
[15] A.A. Holzbacher, "A Software Environment for Concurrent Coordinated Programming," Proc. First Int'l Conf. Coordination Models, Languages and Applications, Lecture Notes in Computer Science 1061, pp. 249-266. Springer-Verlag, Apr. 1996.
[16] A.A. Holzbacher, "Coordination of Distributed and Parallel Programs in Concoord," Coordination Programming: Mechanisms, Models and Semantics, pp. 349-365, World Scientific, Imperial College Press, 1997.
[17] A.A. Holzbacher, M. Périn, and M. Südholt, "Modeling Railway Control Systems Using Graph Grammars: A Case Study," Proc. Second Int'l Conf. Coordination Models, Languages and Applications, Lecture Notes in Computer Science 1282. Springer-Verlag, 1997.
[18] P. Inverardi and A.L. Wolf, Formal Specifications and Analysis of Software Architectures Using the Chemical Abstract Machine Model IEEE Trans. Software Eng., vol. 21, no. 4, pp. 100-114, Apr. 1995.
[19] R. Kazman et al., "SAAM: A Method for Analyzing the Properties of Software Architectures," Proc. Int'l Conf. Software Eng., IEEE CS Press, Los Alamitos, Calif., 1984, pp. 81-90.
[20] J. Kramer, "Configuration Programming. A Framework for the Development of Distributable Systems," Proc. COMPEURO'90, pp. 374-384, IEEE, 1990.
[21] P. Kruchten, "The 4+1 View Model of Architecture," IEEE Software, vol. 12, no. 6, Nov./Dec. 1995, pp. 42-50.
[22] C.E. Landwehr, "Formal models for computer security," ACM Computing Survey, vol. 13, no. 3, pp. 247-278, Sept. 1981.
[23] D.C. Luckham,J.J. Kenney,L.M. Augustin,J. Vera,D. Bryan,, and W. Mann,“Specification and analysis of system architecture usingRapide,” IEEE Transactions on Software Engineering, vol. 21, no. 4, pp. 336-355, Apr. 1995.
[24] J. Magee and J. Kramer, "Modelling Distributed Software Architectures," Proc. First Int'l Workshop Architectures for Software Systems, 17th Int'l Conf. Software Eng., CMU Technical Report, CMU-CS-95-151, Apr. 1995.
[25] N. Mercouroff, "An Algorithm for Analysing Communicating Processes," Proc. Seventh Int'l Conf. Math. Foundations of Programming Semantics, pp. 312-325, Mar. 1991.
[26] R. Milner, J. Parrow, and D. Walker, “A Calculus of Mobile Processes,” Information and Computation, vol. 100, pp. 1-77, 1992.
[27] M. Moriconi, X. Qian, and R.A. Riemenshneider, "Correct Architecture Refinement," IEEE Trans. Software Eng., Vol. 21, No. 4, Apr. 1995, pp. 356-372.
[28] H.R. Nielson and F. Nielson, "Higher-Order Concurrent Programs with Finite Communication Topology," Proc. 21st ACM Symp Principles of Programming Languages, pp. 84-97, Jan. 1994.
[29] D. E. Perry and A. L. Wolf,“Foundations for the study of software architecture,”inACM SIGSOFT Software Eng. Notes, Oct. 1992, vol. 17, no. 4, pp. 40–52.
[30] J.-C. Raoult and F. Voisin, "Set-Theoretic Graph Rewriting," Proc. Int'l Workshop Graph Transformations in Computer Science, , Lecture Notes in Computer Science 776, pp. 312-325, Springer-Verlag, 1993.
[31] M. Shaw and D. Garlan, "Formulations and Formalisms in Software Architecture," Computer Science Today, Recent Trends and Developments, Lecture Notes in Computer Science 1000, pp. 307-323, Springer-Verlag, 1995.
[32] M. Shaw, R. DeLine, D.V. Klein, T.L. Ross, D.M. Young, and G. Zelesnik, "Abstractions for Software Architecture and Tools to Support Them," IEEE Trans. Software Eng., Apr. 1995.

Index Terms:
Coordination, graph rewriting, software architecture, static verification, views, refinement.
Daniel Le Métayer, "Describing Software Architecture Styles Using Graph Grammars," IEEE Transactions on Software Engineering, vol. 24, no. 7, pp. 521-533, July 1998, doi:10.1109/32.708567
Usage of this product signifies your acceptance of the Terms of Use.