Abstract
Software architectures shift developers' focus from lines-of-code to coarser-grained architectural elements and their 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 ADL 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.
This material is based upon work sponsored by the Air Force Materiel Command, Rome Laboratory, and the Advanced Research Projects Agency under contract number F30602-94C-0218. The content of the information does not necessarily reflect the position or policy of the Government and no official endorsement should be inferred.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
G. Abowd, R. Allen, and D. Garlan. Using Style to Understand Descriptions of Software Architecture. In Proceedings of the First ACM SIGSOFT Symposium on the Foundations of Software Engineering, pages 9–20, Los Angeles, CA, December 1993.
R. Allen and G. Garlan. Formal Connectors. Technical Report, CMU-CS-94-115, Carnegie Mellon University, March 1994.
R. Allen and G. Garlan. Formalizing Architectural Connection. In Proceedings of the Sixteenth International Conference on Software Engineering, pages 71–80, Sorrento, Italy, May 1994.
R. Allen. HLA: A Standards Effort as Architectural Style. In A. L. Wolf, ed., Proceedings of the Second International Software Architecture Workshop (ISAW-2), pages 130–133, San Francisco, CA, October 1996.
P. Binns, M. Engelhart, M. Jackson, and S. Vestal. Domain-Specific Software Architectures for Guidance, Navigation, and Control. To appear in International Journal of Software Engineering and Knowledge Engineering, January 1994, revised February 1995.
G. Booch and J. Rumbaugh. Unified Method for Object-Oriented Development. Rational Software Corporation, 1995.
B. W. Boehm and W. L. Scherlis. Megaprogramming. In Proceedings of the Software Technology Conference 1992, pages 63–82, Los Angeles, April 1992. DARPA.
P. C. Clements. A Survey of Architecture Description Languages. In Proceedings of the Eighth International Workshop on Software Specification and Design, Paderborn, Germany, March 1996.
P. C. Clements. Succeedings of the Constraints Subgroup of the EDCS Architecture and Generation Cluster, October 1996.
F. DeRemer and H. H. Kron. Programming-in-the-large versus Programming-in-the-small. IEEE Transactions on Software Engineering, pages 80–86, June 1976.
Failures Divergence Refinement: User Manual and Tutorial. Formal Systems (Europe) Ltd., Oxford, England, October 1992.
D. Garlan, R. Allen, and J. Ockerbloom. Exploiting Style in Architectural Design Environments. In Proceedings of SIGSOFT'94: Foundations of Software Engineering, pages 175–188, New Orleans, Louisiana, USA, December 1994.
D. Garlan, R. Allen, and J. Ockerbloom. Architectural Mismatch, or, Why It's Hard to Build Systems out of Existing Parts. In Proceedings of the 17th International Conference on Software Engineering, Seattle, WA, April 1995.
D. Garlan, editor. Proceedings of the First International Workshop on Architectures for Software Systems, Seattle, WA, April 1995.
D. Garlan. Style-Based Refinement for Software Architecture. In A. L. Wolf, ed., Proceedings of the Second International Software Architecture Workshop (ISAW-2), pages 72–75, San Francisco, CA, October 1996.
D. Garlan, R. Monroe, and D. Wile. ACME: An Architectural Interconnection Language. Technical Report, CMU-CS-95-219, Carnegie Mellon University, November 1995.
D. Garlan, R. Monroe, and D. Wile. ACME: An Architecture Description Interchange Language. Submitted for publication, January 1997.
D. Garlan, F. N. Paulisch, and W. F. Tichy, editors. Summary of the Dagstuhl Workshop on Software Architecture, February 1995. Reprinted in ACM Software Engineering Notes, pages 63–83, July 1995.
D. Garlan and M. Shaw. An Introduction to Software Architecture: Advances in Software Engineering and Knowledge Engineering, volume I World Scientific Publishing, 1993.
J. A. Goguen and T. Winkler. Introducing OBJ3. Technical Report SRI-CSL-88-99. SRI International, 1988
D. Harel. Statecharts: A Visual Formalism for Complex Systems. Science of Computer Programming, 1987.
C. A. R. Hoare. Communicating Sequential Processes. Prentice Hall, 1985.
P. Inverardi and A. L. Wolf. Formal Specification and Analysis of Software Architectures Using the Chemical Abstract Machine Model. IEEE Transactions on Software Engineering, pages 373–386, April 1995.
K. Jensen. Coloured Petri Nets: Basic Concepts, Analysis Methods, and Practical Use. Volume 1: Basic Concepts. EATCS Monographs on Theoretical Computer Science, Springer-Verlag, 1992.
K. Jensen. An Introduction to the Theoretical Aspects of Coloured Petri Nets. In J. W. de Bakker, W. P. De Roever, and G. Rozenberg, eds., volume 803 of A Decade of Concurrency, Lecture Notes in Computer Science, pages 230–272, Springer-Verlag, 1994.
P. Kogut and P Clements. Features of Architecture Description Languages. Draft of a CMU/SEI Technical Report, December 1994.
P. Kogut and P Clements. Feature Analysis of Architecture Description Languages. In Proceedings of the Software Technology Conference (STC'95), Salt Lake City, April 1995.
C. W. Krueger. Software reuse. Computing Surveys, pages 131–184, June 1992.
D. C. Luckham, J. J. Kenney, L. M. Augustin, J. Vera, D. Bryan, and W. Mann. Specification and Analysis of System Architecture Using Rapide. IEEE Transactions on Software Engineering, pages 336–355, April 1995.
D. Luckham. ANNA, a language for annotating Ada programs: reference manual, volume 260 of Lecture Notes in Computer Science. Springer-Verlag, Berlin, 1987.
D. C. Luckham and J. Vera. An Event-Based Architecture Definition Language. IEEE Transactions on Software Engineering, pages 717–734, September 1995.
D. C. Luckham, J. Vera, D. Bryan, L. Augustin, and F. Belz. Partial Orderings of Event Sets and Their Application to Prototyping Concurrent, Timed Systems. Journal of Systems and Software, pages 253–265, June 1993.
D. C. Luckham, J. Vera, and S. Meldal. Three Concepts of System Architecture. Unpublished Manuscript, July 1995.
N. Medvidovic. ADLs and Dynamic Architecture Changes. In A. L. Wolf, ed., Proceedings of the Second International Software Architecture Workshop (ISAW-2), pages 24–27, San Francisco, CA, October 1996.
N. Medvidovic. A Classification and Comparison Framework for Software Architecture Description Languages. Technical Report, UCI-ICS-97-02, University of California, Irvine, January 1997.
J. Magee, N. Dulay, S. Eisenbach, and J. Kramer. Specifying Distributed Software Architectures. In Proceedings of the Fifth European Software Engineering Conference (ESEC'95), Barcelona, September 1995.
J. Magee and J. Kramer. Dynamic Structure in Software Architectures. In Proceedings of ACM SIGSOFT'96: Fourth Symposium on the Foundations of Software Engineering (FSE4), pages 3–14, San Francisco, CA, October 1996.
N. Medvidovic, P. Oreizy, and R. N. Taylor. Reuse of Off-the-Shelf Components in C2-Style Architectures. In Proceedings of the 1997 Symposium on Software Reusability (SSR'97), pages 190–198, Boston, MA, May 17–19,1997. Also in Proceedings of the 1997 International Conference on Software Engineering (ICSE'97), pages 692–700, Boston, MA, May 17–23,1997.
N. Medvidovic, P. Oreizy, J. E. Robbins, and R. N. Taylor. Using object-oriented typing to support architectural design in the C2 style. In Proceedings of ACM SIGSOFT'96: Fourth Symposium on the Foundations of Software Engineering (FSE4), pages 24–32, San Francisco, CA, October 1996.
R. Milner, J. Parrow, and D. Walker. A Calculus of Mobile Processes, Parts 1 and II. Volume 100 of Journal of Information and Computation, pages 1–40 and 41–77, 1992.
M. Moriconi, X. Qian, and R. A. Riemenschneider. Correct Architecture Refinement. IEEE Transactions on Software Engineering, pages 356–372, April 1995.
N. Medvidovic and R. N. Taylor. Reusing Off-the-Shelf Components to Develop a Family of Applications in the C2 Architectural Style. In Proceedings of the International Workshop on Development and Evolution of Software Architectures for Product Families, Las Navas del Marqués, Avila, Spain, November 1996.
N. Medvidovic, R. N. Taylor, and E. J. Whitehead, Jr. Formal Modeling of Software Architectures at Multiple Levels of Abstraction. In Proceedings of the California Software Symposium 1996, pages 28–40, Los Angeles, CA, April 1996.
P. Newton and J. C. Browne. The CODE 2.0 Graphical Parallel Programming Language. In Proceedings of the ACM International Conference on Supercomputing, July 1992.
Peyman Oreizy. Issues in the Runtime Modification of Software Architectures. Technical Report, UCI-ICS-96-35, University of California, Irvine, August 1996.
P. Kogut and P. Clements. Features of Architecture Description Languages. Draft of a CMU/SEI Technical Report, December 1994.
C. A. Petri. Kommunikationen Mit Automaten. PhD Thesis, University of Bonn, 1962. English translation: Technical Report RADC-TR-65-377, Vol. 1, Suppl 1, Applied Data Research, Princeton, N.J.
R. Prieto-Diaz and J. M. Neighbors. Module Interconnection Languages. Journal of Systems and Software, pages 307–334, October 1989.
D. E. Perry and A. L. Wolf. Foundations for the Study of Software Architectures. ACM SIGSOFT Software Engineering Notes, pages 40–52, October 1992.
J. E. Robbins and D. Redmiles. Software architecture design from the perspective of human cognitive needs. In Proceedings of the California Software Symposium (CSS'96), Los Angeles, CA, USA, April 1996.
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 Transactions on Software Engineering, pages 314–335, April 1995.
M. Shaw and D. Garlan. Characteristics of Higher-Level Languages for Software Architecture. Technical Report, CMU-CS-94-210, Carnegie Mellon University, December 1994.
M. Shaw and D. Garlan. Formulations and Formalisms in Software Architecture. Springer-Verlag Lecture Notes in Computer Science, Volume 1000, 1995.
J. M. Spivey. The Z notation: a reference manual. Prentice Hall, New York, 1989.
A. Terry, R. London, G. Papanagopoulos, and M. Devito. The ARDEC/Teknowledge Architecture Description Language (ArTek), Version 4.0. Technical Report, Teknowledge Federal Systems, Inc. and U.S. Army Armament Research, Development, and Engineering Center, July 1995.
W. Tracz. LILEANNA: A Parameterized Programming Language. In Proceedings of the Second International Workshop on Software Reuse, pages 66–78, Lucca, Italy, March 1993.
S. Vestal. A Cursory Overview and Comparison of Four Architecture Description Languages. Technical Report, Honeywell Technology Center, February 1993.
S. Vestal. MetaH Programmer's Manual, Version 1.09. Technical Report, Honeywell Technology Center, April 1996.
A. L. Wolf, editor. Proceedings of the Second International Software Architecture Workshop (ISAW-2), San Francisco, CA, October 1996.
A. L. Wolf. Succeedings of the Second International Software Architecture Workshop (ISAW-2). ACM SIGSOFT Software Engineering Notes, pages 42–56, January 1997.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1997 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Medvidovic, N., Taylor, R.N. (1997). A framework for classifying and comparing architecture description languages. In: Jazayeri, M., Schauer, H. (eds) Software Engineering — ESEC/FSE'97. ESEC SIGSOFT FSE 1997 1997. Lecture Notes in Computer Science, vol 1301. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-63531-9_7
Download citation
DOI: https://doi.org/10.1007/3-540-63531-9_7
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-63531-4
Online ISBN: 978-3-540-69592-9
eBook Packages: Springer Book Archive