This Article 
 Bibliographic References 
 Add to: 
A Classification and Comparison Framework for Software Architecture Description Languages
January 2000 (vol. 26 no. 1)
pp. 70-93

Abstract—Software architectures shift the focus of developers from lines-of-code to coarser-grained architectural elements and their overall interconnection structure. Architecture description languages (ADLs) have been proposed as modeling notations to support architecture-based development. There is, however, little consensus in the research community on what is an ADL, what aspects of an architecture should be modeled in an ADL, and which of several possible ADLs is best suited for a particular problem. Furthermore, the distinction is rarely made between ADLs on one hand and formal specification, module interconnection, simulation, and programming languages on the other. This paper attempts to provide an answer to these questions. It motivates and presents a definition and a classification framework for ADLs. The utility of the definition is demonstrated by using it to differentiate ADLs from other modeling notations. The framework is used to classify and compare several existing ADLs, enabling us, in the process, to identify key properties of ADLs. The comparison highlights areas where existing ADLs provide extensive support and those in which they are deficient, suggesting a research agenda for the future.

[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.J. Allen, “A Formal Approach to Software Architecture,” doctoral dissertation, School of Computer Science, Carnegie Mellon Univ., Pittsburgh, 1997.
[3] R. Allen, R. Douence, and D. Garlan, “Specifying Dynamism in Software Architectures,” Proc. Workshop Foundations of Component-Based Systems, pp. 11-22, Sept. 1997.
[4] R. Allen and D. Garlan, "A Formal Basis for Architectural Connection," ACM Trans. Software Eng. and Methodology, July 1997.
[5] R. Allen, D. Garlan, and J. Ivers, “Formal Modeling and Analysis of the HLA Component Integration Standard,” Proc. Sixth ACM SIGSOFT Symp. Foundations of Software Eng., pp. 70-79, Nov. 1998.
[6] P. Binns, M. Engelhart, M. Jackson, and S. Vestal, “Domain-Specific Software Architectures for Guidance, Navigation, and Control,” Int'l J. Software Eng. and Knowledge Eng., vol. 6, no. 2, 1996.
[7] P.C. Clements, “Formal Methods in Describing Architectures,” Proc. Workshop Formal Methods and Architecture, 1995.
[8] P.C. Clements, "A Survey of Architecture Description Languages," Proc. Eighth Int'l Workshop Software Specification and Design,Germany, Mar. 1996.
[9] P.C. Clements, “Working Paper for the Constraints Sub-Group,” EDCS Architecture and Generation Cluster, Apr. 1997. index.html.
[10] E.M. Dashofy, N. Medvidovic, and R.N. Taylor, “Using Off-the-Shelf Middleware to Implement Connectors in Distributed Software Architectures,” Proc. 21st Int'l Conf. Software Eng. (ICSE '99), pp. 3-12, May 1999.
[11] Proc. First International Workshop Architectures for Software Systems, D. Garlan, ed., Apr. 1995.
[12] D. Garlan, “An Introduction to the Aesop System,” July 1995. www/aesop/
[13] D. Garlan, “Style-Based Refinement for Software Architecture,” Proc. Second Int'l Software Architecture Workshop (ISAW-2), A.L. Wolf, ed., pp. 72-75, Oct. 1996.
[14] D. Garlan et al., "Exploiting Style in Architectural Design Environments," ACM SIGSOFT, pp. 175-188, 1994.
[15] M. Kaul, R. Vemuri, S. Givindarajan, and I.E. Ouaiss, An Automated Temporal Partitioning and Loop Fission Approach to FPGA Based Reconfigurable Synthesis of DSP Applications Proc. IEEE/ACM Design Automation Conf. (DAC '99), 1999.
[16] “Summary of the Dagstuhl Workshop Software Architecture,” ACM Software Eng. Notes, D. Garlan, F.N. Paulisch, and W.F. Tichy, eds., pp. 63-83, July 1995.
[17] D. Garlan, J. Ockerbloom, and D. Wile, “Towards an ADL Toolkit,” EDCS Architecture and Generation Cluster, Dec. 1998. .
[18] C. Ghezzi, M. Jazayeri, and D. Mandrioli, Fundamentals of Software Engineering, Prentice-Hall, Upper Saddle River, N.J., 1991.
[19] J.A. Goguen and T. Winkler, “Introducing OBJ3,” Technical Report SRI-CSL-88-99, SRI Int'l, 1988.
[20] M. Gorlick and A. Quilici, “Visual Programming in the Large versus Visual Programming in the Small,” Proc. IEEE Symp. Visual Languages, pp. 137-144, Oct. 1994.
[21] M.M. Gorlick and R.R. Razouk, "Using Weaves for Software Construction and Analysis," Proc. 13th Int'l. Conf. Software Engineering, pp. 23-34,Austin, TX, May 1991.
[22] P. Hagger, “QAD, a Modular Interconnection Language for Domain Specific Software Architectures,” technical report, Univ. of Maryland, June 1993.
[23] D. Harel, “Statecharts: A Visual Approach to Complex Systems,” Science of Computer Programming, Vol. 8, No. 3, pp. 231–274, 1987.
[24] C.A.R. Hoare, Communicating Sequential Processes, Prentice Hall, Englewood Cliffs, N.J., 1985.
[25] 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.
[26] F. Jahanian and A.K. Mok, “Modechart: A Specification Language for Real-Time Systems,” IEEE Trans. Software Eng., vol. 20, no. 10, Oct. 1994.
[27] P. Kogut and P.C. Clements, “Features of Architecture Description Languages,” draft of a CMU/SEI Technical Report, Carnegie Mellon Univ., Dec. 1994.
[28] P. Kogut and P.C. Clements, “Feature Analysis of Architecture Description Languages,” Proc. Software Technology Conf. (STC '95), Apr. 1995.
[29] C. Krueger, “Software Reuse,” ACM Computing Surveys, June 1992, pp. 131‐183.
[30] D. Luckham, ANNA, a Language for Annotating Ada Programs: Reference Manual, Berlin: Springer-Verlag, 1987.
[31] 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.
[32] D.C. Luckham and J. Vera, "An Event-Based Architecture Definition Language," IEEE Trans. Software Eng., pp. 717-734, Sept. 1995.
[33] D.C. Luckham,J. Vera,D. Bryan,L. Augustin,, and F. Belz,“Partial orderings of event sets and their application toprototyping concurrent, timed systems,” J. of Systems and Software, vol. 21, no. 3, pp. 253-265, June 1993.
[34] D.C. Luckham, J. Vera, and S. Meldal, “Three Concepts of System Architecture,” Technical Report, CSL-TR-95-674, Stanford Univ., Palo Alto, Calif., July 1995.
[35] J. Magee, N. Dulay, S. Eisenbach, and J. Kramer, “Specifying Distributed Software Architectures,” Proc. Fifth European Software Eng. Conf., Sept. 1995.
[36] J. Magee and J. Kramer, "Dynamic Structure in Software Architectures," Software Eng. Notes, Nov. 1996, pp. 3-14.
[37] Proc. Third Int'l Software Architecture Workshop, J. Magee and D.E. Perry, eds., Nov. 1998.
[38] N. Medvidovic, “ADLs and Dynamic Architecture Changes,” Proc. Second Int'l Software Architecture Workshop (ISAW-2), A.L. Wolf, ed., pp. 24-27, Oct. 1996.
[39] N. Medvidovic, P. Oreizy, J.E. Robbins, and R.N. Taylor, “Using Object-Oriented Typing to Support Architectural Design in the C2 Style,” Proc. ACM SIGSOFT '96: Fourth Symp. Foundations Software of Eng. (FSE4), pp. 24-32, Oct. 1996.
[40] N. Medvidovic and D.S. Rosenblum, “Domains of Concern in Software Architectures and Architecture Description Languages,” Proc. USENIX Conf. Domain-Specific Languages, pp. 199-212, Oct. 1997.
[41] N. Medvidovic and D.S. Rosenblum, “Assessing the Suitability of a Standard Design Method for Modeling Software Architectures,” Proc. First Working IFIP Conf. Software Architecture (WICSA1), pp. 161-182, Feb. 1999.
[42] N. Medvidovic, D.S. Rosenblum, and R.N. Taylor, “A Language and Environment for Architecture-Based Software Development and Evolution,” Proc. 21st Int'l Conf. Software Eng. (ICSE '99), pp. 44-53, May 1999.
[43] N. Medvidovic, R.N. Taylor, and E.J. WhiteheadJr., “Formal Modeling of Software Architectures at Multiple Levels of Abstraction,” Proc. California Software Symp., pp. 28-40, Apr. 1996.
[44] R. Milner, J. Parrow, and D. Walker, “A Calculus of Mobile Processes,” Information and Computation, vol. 100, pp. 1-77, 1992.
[45] R. Monroe, “Capturing Software Architecture Design Expertise with Armani,” Technical Report CMU-CS-98-163, Carnegie Mellon Univ., Oct. 1998.
[46] M. Moriconi and R.A. Riemenschneider, “Introduction to SADL 1.0: A Language for Specifying Software Architecture Hierarchies,” Technical Report SRI-CSL-97-01, SRI Int'l, Mar. 1997.
[47] M. Moriconi, X. Qian, and R.A. Riemenshneider, "Correct Architecture Refinement," IEEE Trans. Software Eng., Vol. 21, No. 4, Apr. 1995, pp. 356-372.
[48] M. Moriconi, X. Qian, R.A. Riemenschneider, and L. Gong, “Secure Software Architectures,” Proc. 1997 IEEE Symp. Security and Privacy, May 1997.
[49] P. Newton and J.C. Browne, “The CODE 2.0 Graphical Parallel Programming Language,” Proc. ACM Int'l Conf. Supercomputing, pp. 167–177, July 1992.
[50] K. Ng, J. Kramer, and J. Magee, “A CASE Tool for Software Architecture Design,” J. Automated Software Eng., vol. 3,nos. 3/4, pp. 261-284, 1996.
[51] P. Oreizy, “Issues in the Runtime Modification of Software Architectures,” Technical Report, UCI-ICS-96-35, Univ. of California, Irvine, Aug. 1996.
[52] P. Oreizy, N. Medvidovic, and R.N. Taylor, “Architecture-Based Runtime Software Evolution,” Proc. Int'l Conf. Software Eng., 1998.
[53] R. Orfali, D. Harkey, and J. Edwards, The Essential Distributed Objects Survival Guide. John Wiley&Sons, 1996.
[54] 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.
[55] R. Prieto-Diaz and J. M. Neighbors,“Module interconnection languages,”J. Syst. Software, vol. 6, no. 4, pp. 307–334, Nov. 1986.
[56] J. Purtilo, "The Polylith Software Bus," ACM Trans. Programming Languages and Systems, Vol. 16, No. 1, Jan. 1994, pp. 151-174.
[57] “UML Semantics,” Rational Partners, Object Management Group document ad/97-08-04, Sept. 1997.
[58] “UML Notation Guide,” Rational Partners, Object Management Group document ad/97-08-05, Sept. 1997.
[59] J.E. Robbins, D.M. Hilbert, and D.F. Redmiles, “Extending Design Environments to Software Architecture Design,” Proc. Knowledge-Based Software Eng. Conf. (KBSE), pp. 63-72, Sept. 1996.
[60] J.E. Robbins, N. Medvidovic, D.F. Redmiles, and D.S. Rosenblum, “Integrating Architecture Description Languages with a Standard Design Method,” Proc. 20th Int'l Conf. Software Eng. (ICSE '98), 1998.
[61] M. Shaw, “Procedure Calls Are the Assembly Language of System Interconnection: Connectors Deserve First Class Status,” Proc. Workshop Studies of Software Design, May 1993.
[62] 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.
[63] M. Shaw, R. DeLine, and G. Zelesnik, "Abstractions and Implementations for Architectural Connections," Proc. Third Int'l Conf. Configurable Distributed Systems (CDS'96), IEEE Computer Soc. Press, Los Alamitos, Calif., 1996.
[64] M. Shaw and D. Garlan, “Characteristics of Higher-Level Languages for Software Architecture,” Technical Report, CMU-CS-94-210, Carnegie Mellon Univ., Dec. 1994.
[65] M. Shaw and D. Garlan, “Formulations and Formalisms in Software Architecture,” Computer Science Today: Recent Trends and Developments. J. van Leeuwen, ed. Springer-Verlag, 1995.
[66] M. Shaw and D. Garlan, Software Architecture: Perspectives on an Emerging Discipline. Prentice Hall, 1996.
[67] J. M. Spivey,The Z Notation: A Reference Manual. Englewood Cliffs, NJ: Prentice-Hall, 1989.
[68] M. Shaw, D. Garlan, R. Allen, D. Klein, J. Ockerbloom, C. Scott, and M. Schumacher, “Candidate Model Problems in Software Architecture,” unpublished manuscript, Nov. 1995. www/htmlModProb/.
[69] A. Terry, R. London, G. Papanagopoulos, and M. Devito, “The ARDEC/Teknowledge Architecture Description Language (ArTek), Version 4.0,” technical report, Teknowledge Federal Syst., and U.S. Army Armament Research, Development, and Eng. Center, July 1995.
[70] W. Tracz, "Parameterized Programming in Lileanna," Proc. 2nd Int'l Workshop Software Reuse, IEEE Computer Soc. Press, Los Alamitos, Calif., Mar. 1993, pp. 66-78.
[71] S. Vestal, “A Cursory Overview and Comparison of Four Architecture Description Languages,” technical report, Honeywell Technology Center, Feb. 1993.
[72] S. Vestal, “MetaH Programmer's Manual, Version 1.09,” technical report, Honeywell Technology Center, Apr. 1996.
[73] Proc. Second International Software Architecture Workshop (ISAW-2), A.L. Wolf, ed., Oct. 1996.
[74] A.L. Wolf, Succeedings of the Second Int'l Software Architecture Workshop (ISAW-2), ACM SIGSOFT, vol. 22, no. 1, pp. 42-56, Jan. 1997.

Index Terms:
Software architecture, architecture description language, component, connector, configuration, definition, classification, comparison.
Nenad Medvidovic, Richard N. Taylor, "A Classification and Comparison Framework for Software Architecture Description Languages," IEEE Transactions on Software Engineering, vol. 26, no. 1, pp. 70-93, Jan. 2000, doi:10.1109/32.825767
Usage of this product signifies your acceptance of the Terms of Use.