A Classification and Comparison Framework for Software Architecture Description Languages

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]  David Garlan,et al.  Formal Connectors , 1994 .

[2]  정갑주 [서평]「The Essential Distributed Objects Survival Guide」 , 1998 .

[3]  Hans H. Kron,et al.  Programming-in-the-Large Versus Programming-in-the-Small , 1976, IEEE Trans. Software Eng..

[4]  Kurt Jensen,et al.  Coloured Petri Nets: Basic Concepts, Analysis Methods and Practical Use. Vol. 1, Basic Concepts , 1992 .

[5]  Dennis Heimbigner,et al.  Multilanguage interoperability in distributed systems. Experience report , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[6]  Bruce W. Weide,et al.  Mathematical Foundations and Notation of RESOLVE , 1998 .

[7]  James C. Browne,et al.  The CODE 2.0 graphical parallel programming language , 1992, ICS '92.

[8]  David Garlan,et al.  Specifying Dynamism in Software Architectures , 1997 .

[9]  Ruben Prieto-Diaz Module Interconnection Languages , 2002 .

[10]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[11]  C LuckhamDavid,et al.  Specification and Analysis of System Architecture Using Rapide , 1995 .

[12]  Michael M. Gorlick,et al.  Visual programming-in-the-large versus visual programming-in-the-small , 1994, Proceedings of 1994 IEEE Symposium on Visual Languages.

[13]  Stephen J. Garland,et al.  Larch: Languages and Tools for Formal Specification , 1993, Texts and Monographs in Computer Science.

[14]  Robin Milner,et al.  A Calculus of Mobile Processes, II , 1992, Inf. Comput..

[15]  Aloysius K. Mok,et al.  Modechart: A Specification Language for Real-Time Systems , 1994, IEEE Trans. Software Eng..

[16]  Mary Shaw,et al.  Candidate Model Problems in Software Architecture , 1994 .

[17]  David C. Luckham,et al.  Partial orderings of event sets and their application to prototyping concurrent, timed systems , 1993, J. Syst. Softw..

[18]  Alexander L. Wolf Succeedings of the second international software architecture workshop (ISAW-2) , 1997, SOEN.

[19]  David C. Luckham,et al.  Three Concepts of System Architecture , 1995 .

[20]  Will Tracz,et al.  Parametrized programming in LILEANNA , 1993, SAC '93.

[21]  Mary Shaw,et al.  Abstractions and implementations for architectural connections , 1996, Proceedings of International Conference on Configurable Distributed Systems.

[22]  Richard N. Taylor,et al.  Reusing Off-the-Shelf Components to Develop a Family of Applications in the C2 Architectural Style , 1996 .

[23]  J. Michael Spivey,et al.  The Z notation - a reference manual , 1992, Prentice Hall International Series in Computer Science.

[24]  Richard N. Taylor,et al.  A Component- and Message-Based Architectural Style for GUI Software , 1995, 1995 17th International Conference on Software Engineering.

[25]  Robert T. Monroe Capturing Software Architecture Design Expertise with Armani , 2000 .

[26]  David Garlan,et al.  A formal basis for architectural connection , 1997, TSEM.

[27]  Charles W. Krueger,et al.  Software reuse , 1992, CSUR.

[28]  Kurt Jensen,et al.  An Introduction to the Theoretical Aspects of Coloured Petri Nets , 1993, REX School/Symposium.

[29]  Steven P. Reiss,et al.  Connecting tools using message passing in the Field environment , 1990, IEEE Software.

[30]  Richard N. Taylor,et al.  Using off-the-shelf middleware to implement connectors in distributed software architectures , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[31]  Nenad Medvidovic,et al.  Domains of Concern in Software Architectures and Architecture Description Languages , 1997, DSL.

[32]  Will Tracz,et al.  LILEANNA: a parameterized programming language , 1993, [1993] Proceedings Advances in Software Reuse.

[33]  David Garlan,et al.  Exploiting style in architectural design environments , 1994, SIGSOFT '94.

[34]  Nenad Medvidovic ADLs and dynamic architecture changes , 1996, ISAW '96.

[35]  Nenad Medvidovic,et al.  Assessing the Suitability of a Standard Design Method for Modeling Software Architectures , 1999, WICSA.

[36]  Olaf Owe,et al.  ANNA A Language for Annotating Ada Programs , 1987, Lecture Notes in Computer Science.

[37]  Robert J. Allen A formal approach to software architecture , 1997 .

[38]  David Garlan,et al.  Style-based refinement for software architecture , 1996, ISAW '96.

[39]  Hanno Wupper,et al.  A Specification Language for Reliable Real-time Systems , 1988, FTRTFT.

[40]  David Garlan,et al.  Architectural Mismatch or Why it's hard to build systems out of existing parts , 1995, 1995 17th International Conference on Software Engineering.

[41]  Walter Mann,et al.  Correction to "Specification and Analysis of System Architecture Using Rapide" , 1995, IEEE Trans. Software Eng..

[42]  Jeff Magee,et al.  Dynamic structure in software architectures , 1996, SIGSOFT '96.

[43]  Steve Vestal,et al.  Domain-Specific Software Architectures for Guidance, Navigation and Control , 1996, Int. J. Softw. Eng. Knowl. Eng..

[44]  Paul Clements,et al.  Features of architecture description lan-guages , 1995 .

[45]  David Garlan,et al.  Formalizing architectural connection , 1994, Proceedings of 16th International Conference on Software Engineering.

[46]  Brian Holtz,et al.  ToolTalk and open protocols: inter-application communication , 1994 .

[47]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

[48]  Peyman Oreizy Issues in the Runtime Modification of Software Architectures , 1997 .

[49]  Mary Shaw,et al.  Formulations and Formalisms in Software Architecture , 1995, Computer Science Today.

[50]  Li Gong,et al.  Secure software architectures , 1997, Proceedings. 1997 IEEE Symposium on Security and Privacy (Cat. No.97CB36097).

[51]  Jason E. Robbins,et al.  Software Architecture Design From the Perspective of Human Cognitive Needs , 1996 .

[52]  D. C. Luckham ANNA, a language for annotating Ada programs: reference manual , 1987 .

[53]  Nenad Medvidovic,et al.  Integrating architecture description languages with a standard design method , 1998, Proceedings of the 20th International Conference on Software Engineering.

[54]  David Garlan,et al.  Architectural Style: An Object-Oriented Approach , 1996 .

[55]  Mary Shaw,et al.  Abstractions for Software Architecture and Tools to Support Them , 1995, IEEE Trans. Software Eng..

[56]  Rubén Prieto-Díaz,et al.  Module interconnection languages , 1986, J. Syst. Softw..

[57]  Alan C. Shaw,et al.  Reasoning About Time in Higher-Level Language Software , 1989, IEEE Trans. Software Eng..

[58]  David C. Luckham,et al.  An Event-Based Architecture Definition Language , 1995, IEEE Trans. Software Eng..

[59]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[60]  David Garlan,et al.  Summary of the Dagstuhl workshop on software architecture , 1995, SOEN.

[61]  Jeff Magee,et al.  A CASE tool for software architecture design , 1996, Automated Software Engineering.

[62]  Paola Inverardi,et al.  Formal Specification and Analysis of Software Architectures Using the Chemical Abstract Machine Model , 1995, IEEE Trans. Software Eng..

[63]  Naranker Dulay,et al.  Specifying Distributed Software Architectures , 1995, ESEC.

[64]  Paul Clements Formal Methods in Describing Architectures , 1995 .

[65]  Naranker Dulay,et al.  Structuring parallel and distributed programs , 1993, Softw. Eng. J..

[66]  Richard N. Taylor,et al.  A language and environment for architecture-based software development and evolution , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[67]  Donald E. Thomas,et al.  The Verilog® Hardware Description Language , 1990 .

[68]  David Garlan,et al.  Acme: an architecture description interchange language , 1997, CASCON.

[69]  Paul C. Clements,et al.  A survey of architecture description languages , 1996, Proceedings of the 8th International Workshop on Software Specification and Design.

[70]  Mary Shaw Procedure Calls Are the Assembly Language of Software Interconnection: Connectors Deserve First-Class Status , 1993, ICSE Workshop on Studies of Software Design.

[71]  Mary Shaw,et al.  Characteristics of Higher-Level Languages for Software Architecture. , 1994 .

[72]  Luqi,et al.  Compositional Semantics of a Real-Time Prototyping Language , 1993, IEEE Trans. Software Eng..

[73]  Steve Vestal,et al.  A cursory overview and comparison of four architecture description languages , 1993 .

[74]  Michael M. Gorlick,et al.  Using weaves for software construction and analysis , 1991, [1991 Proceedings] 13th International Conference on Software Engineering.

[75]  David Garlan,et al.  A Formal Approach to Software Architectures , 1992, IFIP Congress.

[76]  Jeff Magee,et al.  A CASE Tool for Software Architecture Design , 1996 .

[77]  Robert Allen,et al.  HLA: a standards effort as architectural style , 1996, ISAW '96.

[78]  Robert A. Riemenschneider,et al.  Introduction to SADL 1.0: A Language for Specifying Software Architecture Hierarchies , 1997 .

[79]  Peyman Oreizy,et al.  Using object-oriented typing to support architectural design in the C2 style , 1996, SIGSOFT '96.

[80]  David Garlan An Introduction to the Aesop System , 1995 .

[81]  Xiaolei Qian,et al.  Correct Architecture Refinement , 1995, IEEE Trans. Software Eng..

[82]  Peyman Oreizy,et al.  Reuse of off-the-shelf components in C2-style architectures , 1997, ICSE '97.

[83]  Gregory D. Abowd,et al.  Using style to understand descriptions of software architecture , 1993, SIGSOFT '93.

[84]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[85]  Peyman Oreizy,et al.  Architecture-based runtime software evolution , 1998, Proceedings of the 20th International Conference on Software Engineering.

[86]  James M. Purtilo,et al.  The POLYLITH software bus , 1994, TOPL.

[87]  Jason E. Robbins,et al.  Extending design environments to software architecture design , 1996, Proceedings of the 11th Knowledge-Based Software Engineering Conference.

[88]  Richard N. Taylor,et al.  Formal Modeling of Software Architectures at Multiple Levels of Abstraction , 1996 .

[89]  David Garlan,et al.  Formal modeling and analysis of the HLA component integration standard , 1998, SIGSOFT '98/FSE-6.