Skip to main content

A framework for classifying and comparing architecture description languages

  • Regular Sessions
  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1301))

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.

This is a preview of subscription content, log in via an institution.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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.

    Google Scholar 

  2. R. Allen and G. Garlan. Formal Connectors. Technical Report, CMU-CS-94-115, Carnegie Mellon University, March 1994.

    Google Scholar 

  3. 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.

    Google Scholar 

  4. 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.

    Google Scholar 

  5. 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.

    Google Scholar 

  6. G. Booch and J. Rumbaugh. Unified Method for Object-Oriented Development. Rational Software Corporation, 1995.

    Google Scholar 

  7. B. W. Boehm and W. L. Scherlis. Megaprogramming. In Proceedings of the Software Technology Conference 1992, pages 63–82, Los Angeles, April 1992. DARPA.

    Google Scholar 

  8. 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.

    Google Scholar 

  9. P. C. Clements. Succeedings of the Constraints Subgroup of the EDCS Architecture and Generation Cluster, October 1996.

    Google Scholar 

  10. 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.

    Google Scholar 

  11. Failures Divergence Refinement: User Manual and Tutorial. Formal Systems (Europe) Ltd., Oxford, England, October 1992.

    Google Scholar 

  12. 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.

    Google Scholar 

  13. 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.

    Google Scholar 

  14. D. Garlan, editor. Proceedings of the First International Workshop on Architectures for Software Systems, Seattle, WA, April 1995.

    Google Scholar 

  15. 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.

    Google Scholar 

  16. D. Garlan, R. Monroe, and D. Wile. ACME: An Architectural Interconnection Language. Technical Report, CMU-CS-95-219, Carnegie Mellon University, November 1995.

    Google Scholar 

  17. D. Garlan, R. Monroe, and D. Wile. ACME: An Architecture Description Interchange Language. Submitted for publication, January 1997.

    Google Scholar 

  18. 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.

    Google Scholar 

  19. D. Garlan and M. Shaw. An Introduction to Software Architecture: Advances in Software Engineering and Knowledge Engineering, volume I World Scientific Publishing, 1993.

    Google Scholar 

  20. J. A. Goguen and T. Winkler. Introducing OBJ3. Technical Report SRI-CSL-88-99. SRI International, 1988

    Google Scholar 

  21. D. Harel. Statecharts: A Visual Formalism for Complex Systems. Science of Computer Programming, 1987.

    Google Scholar 

  22. C. A. R. Hoare. Communicating Sequential Processes. Prentice Hall, 1985.

    Google Scholar 

  23. 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.

    Google Scholar 

  24. 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.

    Google Scholar 

  25. 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.

    Google Scholar 

  26. P. Kogut and P Clements. Features of Architecture Description Languages. Draft of a CMU/SEI Technical Report, December 1994.

    Google Scholar 

  27. 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.

    Google Scholar 

  28. C. W. Krueger. Software reuse. Computing Surveys, pages 131–184, June 1992.

    Google Scholar 

  29. 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.

    Google Scholar 

  30. D. Luckham. ANNA, a language for annotating Ada programs: reference manual, volume 260 of Lecture Notes in Computer Science. Springer-Verlag, Berlin, 1987.

    Google Scholar 

  31. D. C. Luckham and J. Vera. An Event-Based Architecture Definition Language. IEEE Transactions on Software Engineering, pages 717–734, September 1995.

    Google Scholar 

  32. 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.

    Google Scholar 

  33. D. C. Luckham, J. Vera, and S. Meldal. Three Concepts of System Architecture. Unpublished Manuscript, July 1995.

    Google Scholar 

  34. 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.

    Google Scholar 

  35. N. Medvidovic. A Classification and Comparison Framework for Software Architecture Description Languages. Technical Report, UCI-ICS-97-02, University of California, Irvine, January 1997.

    Google Scholar 

  36. 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.

    Google Scholar 

  37. 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.

    Google Scholar 

  38. 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.

    Google Scholar 

  39. 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.

    Google Scholar 

  40. 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.

    Google Scholar 

  41. M. Moriconi, X. Qian, and R. A. Riemenschneider. Correct Architecture Refinement. IEEE Transactions on Software Engineering, pages 356–372, April 1995.

    Google Scholar 

  42. 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.

    Google Scholar 

  43. 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.

    Google Scholar 

  44. 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.

    Google Scholar 

  45. Peyman Oreizy. Issues in the Runtime Modification of Software Architectures. Technical Report, UCI-ICS-96-35, University of California, Irvine, August 1996.

    Google Scholar 

  46. P. Kogut and P. Clements. Features of Architecture Description Languages. Draft of a CMU/SEI Technical Report, December 1994.

    Google Scholar 

  47. 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.

    Google Scholar 

  48. R. Prieto-Diaz and J. M. Neighbors. Module Interconnection Languages. Journal of Systems and Software, pages 307–334, October 1989.

    Google Scholar 

  49. D. E. Perry and A. L. Wolf. Foundations for the Study of Software Architectures. ACM SIGSOFT Software Engineering Notes, pages 40–52, October 1992.

    Google Scholar 

  50. 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.

    Google Scholar 

  51. 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.

    Google Scholar 

  52. M. Shaw and D. Garlan. Characteristics of Higher-Level Languages for Software Architecture. Technical Report, CMU-CS-94-210, Carnegie Mellon University, December 1994.

    Google Scholar 

  53. M. Shaw and D. Garlan. Formulations and Formalisms in Software Architecture. Springer-Verlag Lecture Notes in Computer Science, Volume 1000, 1995.

    Google Scholar 

  54. J. M. Spivey. The Z notation: a reference manual. Prentice Hall, New York, 1989.

    Google Scholar 

  55. 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.

    Google Scholar 

  56. W. Tracz. LILEANNA: A Parameterized Programming Language. In Proceedings of the Second International Workshop on Software Reuse, pages 66–78, Lucca, Italy, March 1993.

    Google Scholar 

  57. S. Vestal. A Cursory Overview and Comparison of Four Architecture Description Languages. Technical Report, Honeywell Technology Center, February 1993.

    Google Scholar 

  58. S. Vestal. MetaH Programmer's Manual, Version 1.09. Technical Report, Honeywell Technology Center, April 1996.

    Google Scholar 

  59. A. L. Wolf, editor. Proceedings of the Second International Software Architecture Workshop (ISAW-2), San Francisco, CA, October 1996.

    Google Scholar 

  60. A. L. Wolf. Succeedings of the Second International Software Architecture Workshop (ISAW-2). ACM SIGSOFT Software Engineering Notes, pages 42–56, January 1997.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Mehdi Jazayeri Helmut Schauer

Rights and permissions

Reprints 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

Publish with us

Policies and ethics