Advertisement

A framework for classifying and comparing architecture description languages

  • Nenad Medvidovic
  • Richard N. Taylor
Regular Sessions Software Architecture
Part of the Lecture Notes in Computer Science book series (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.

Keywords

software architecture architecture description languages definition classification comparison 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [AAG93]
    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. [AG94a]
    R. Allen and G. Garlan. Formal Connectors. Technical Report, CMU-CS-94-115, Carnegie Mellon University, March 1994.Google Scholar
  3. [AG94b]
    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. [A1196]
    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. [BEJV94]
    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. [BR95]
    G. Booch and J. Rumbaugh. Unified Method for Object-Oriented Development. Rational Software Corporation, 1995.Google Scholar
  7. [BS92]
    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. [Cle96a]
    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. [Cle96b]
    P. C. Clements. Succeedings of the Constraints Subgroup of the EDCS Architecture and Generation Cluster, October 1996.Google Scholar
  10. [DK76]
    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. [For92]
    Failures Divergence Refinement: User Manual and Tutorial. Formal Systems (Europe) Ltd., Oxford, England, October 1992.Google Scholar
  12. [GA094]
    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. [GA095]
    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. [Gar95]
    D. Garlan, editor. Proceedings of the First International Workshop on Architectures for Software Systems, Seattle, WA, April 1995.Google Scholar
  15. [Gar96]
    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. [GMW95]
    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. [GMW97]
    D. Garlan, R. Monroe, and D. Wile. ACME: An Architecture Description Interchange Language. Submitted for publication, January 1997.Google Scholar
  18. [GPT95]
    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. [GS93]
    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. [GW88]
    J. A. Goguen and T. Winkler. Introducing OBJ3. Technical Report SRI-CSL-88-99. SRI International, 1988Google Scholar
  21. [Har87]
    D. Harel. Statecharts: A Visual Formalism for Complex Systems. Science of Computer Programming, 1987.Google Scholar
  22. [Hoa85]
    C. A. R. Hoare. Communicating Sequential Processes. Prentice Hall, 1985.Google Scholar
  23. [IW95]
    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. [Jan92]
    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. [Jen94]
    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. [KC94]
    P. Kogut and P Clements. Features of Architecture Description Languages. Draft of a CMU/SEI Technical Report, December 1994.Google Scholar
  27. [KC95]
    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. [Kru92]
    C. W. Krueger. Software reuse. Computing Surveys, pages 131–184, June 1992.Google Scholar
  29. [LKA+95]
    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. [Luc87]
    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. [LV95]
    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. [LVB+93]
    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. [LVM95]
    D. C. Luckham, J. Vera, and S. Meldal. Three Concepts of System Architecture. Unpublished Manuscript, July 1995.Google Scholar
  34. [Med96]
    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. [Med97]
    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. [MDEK95]
    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. [MK96]
    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. [MOT96]
    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. [MORT96]
    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. [MPW92]
    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. [MQR95]
    M. Moriconi, X. Qian, and R. A. Riemenschneider. Correct Architecture Refinement. IEEE Transactions on Software Engineering, pages 356–372, April 1995.Google Scholar
  42. [MT96]
    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. [MTW96]
    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. [NB92]
    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. [Ore96]
    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. [PC94]
    P. Kogut and P. Clements. Features of Architecture Description Languages. Draft of a CMU/SEI Technical Report, December 1994.Google Scholar
  47. [Pet62]
    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. [PN86]
    R. Prieto-Diaz and J. M. Neighbors. Module Interconnection Languages. Journal of Systems and Software, pages 307–334, October 1989.Google Scholar
  49. [PW92]
    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. [RR96]
    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. [SDK+95]
    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. [SG94]
    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. [SG95]
    M. Shaw and D. Garlan. Formulations and Formalisms in Software Architecture. Springer-Verlag Lecture Notes in Computer Science, Volume 1000, 1995.Google Scholar
  54. [Spi89]
    J. M. Spivey. The Z notation: a reference manual. Prentice Hall, New York, 1989.Google Scholar
  55. [TLPD95]
    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. [Tra93]
    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. [Ves93]
    S. Vestal. A Cursory Overview and Comparison of Four Architecture Description Languages. Technical Report, Honeywell Technology Center, February 1993.Google Scholar
  58. [Ves96]
    S. Vestal. MetaH Programmer's Manual, Version 1.09. Technical Report, Honeywell Technology Center, April 1996.Google Scholar
  59. [Wolf96]
    A. L. Wolf, editor. Proceedings of the Second International Software Architecture Workshop (ISAW-2), San Francisco, CA, October 1996.Google Scholar
  60. [Wolf97]
    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

Copyright information

© Springer-Verlag Berlin Heidelberg 1997

Authors and Affiliations

  • Nenad Medvidovic
    • 1
  • Richard N. Taylor
    • 1
  1. 1.Department of Information and Computer ScienceUniversity of California, IrvineIrvineUSA

Personalised recommendations