skip to main content
article

A comprehensive approach for the development of modular software architecture description languages

Published:01 April 2005Publication History
Skip Abstract Section

Abstract

Research over the past decade has revealed that modeling software architecture at the level of components and connectors is useful in a growing variety of contexts. This has led to the development of a plethora of notations for representing software architectures, each focusing on different aspects of the systems being modeled. In general, these notations have been developed without regard to reuse or extension. This makes the effort in adapting an existing notation to a new purpose commensurate with developing a new notation from scratch. To address this problem, we have developed an approach that allows for the rapid construction of new architecture description languages (ADLs). Our approach is unique because it encapsulates ADL features in modules that are composed to form ADLs. We achieve this by leveraging the extension mechanisms provided by XML and XML schemas. We have defined a set of generic, reusable ADL modules called xADL 2.0, useful as an ADL by itself, but also extensible to support new applications and domains. To support this extensibility, we have developed a set of reflective syntax-based tools that adapt to language changes automatically, as well as several semantically-aware tools that provide support for advanced features of xADL 2.0. We demonstrate the effectiveness, scalability, and flexibility of our approach through a diverse set of experiences. First, our approach has been applied in industrial contexts, modeling software architectures for aircraft software and spacecraft systems. Second, we show how xADL 2.0 can be extended to support the modeling features found in two different representations for modeling product-line architectures. Finally, we show how our infrastructure has been used to support its own development. The technical contribution of our infrastructure is augmented by several research contributions: the first decomposition of an architecture description language into modules, insights about how to develop new language modules and a process for integrating them, and insights about the roles of different kinds of tools in a modular ADL-based infrastructure.

References

  1. Apache Group. 2003. Crimson. Available at <http://xml.apache.org/crimson/>.]]Google ScholarGoogle Scholar
  2. Air Combat Command Public Affairs Office. 2000. Fact Sheet: E-3 Sentry (AWACS). U.S. Air Force (July). Available at <http://www.af.mil/news/factsheets/E_3_Sentry__AWACS_.html>.]]Google ScholarGoogle Scholar
  3. Aldrich, J., Chambers, C., and Notkin, D. 2002. ArchJava: Connecting software architecture to implementation. In Proceedings of the 24th International Conference on Software Engineering. (Orlando, FL.) ACM, 187--197.]] Google ScholarGoogle Scholar
  4. Allen, R. and Garlan, D. 1997. A formal basis for architectural connection. ACM Trans. Softw. Eng. Method. 6, 3 (July), 213--249. Available at <http://doi.acm.org/10.1145/258077.258078>.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Altheim, M., Boumphrey, F., Dooley, S., McCarron, S., Schnitzenbaumer, S., and Wugofski, T. 2001. Modularization of XHTML. World Wide Web Consortium, W3C Recommendation Report (April). Available at <http://www.w3.org/TR/xhtml-modularization/>.]]Google ScholarGoogle Scholar
  6. Altova GmbH. 2003. XML spy website. Available at <http://www.xmlspy.com/>.]]Google ScholarGoogle Scholar
  7. Attali, I., Courbis, C., Degenne, P., Fau, A., Parigot, D., and Pasquier, C. 2001. SmartTools: A generator of interactive environments tools. In Proceedings of the the International Conference on Compiler Construction (CC'01) (April). Genova, Italy.]] Google ScholarGoogle Scholar
  8. Berners-Lee, T. and Connolly, D. 1998. Web architecture: Extensible languages. W3C Note Report (Feb.) 10. Available at <http://www.w3.org/TR/NOTE-webarch-extlang>.]]Google ScholarGoogle Scholar
  9. Binns, P., Englehart, M., Jackson, M., and Vestal, S. 1996. Domain-specific software architectures for guidance, navigation and control. Int. J. Softw. Eng. Knowl. Eng. 6, 2 (June), 201--227.]]Google ScholarGoogle ScholarCross RefCross Ref
  10. Booch, G., Rumbaugh, J., and Jacobson, I. 1998. The Unified Modeling Language User Guide. Object Technology Series. Addison Wesley, Reading, MA.]] Google ScholarGoogle Scholar
  11. Booch, G., Garlan, D., Iyengar, S., Kobryn, C., and Stavridou, V. 1999. Is UML an architectural description language? Available at <http://www.acm.org/sigplan/oopsla/oopsla99/2_ap/tech/2d1a_uml.html>. (OOPSLA '99).]]Google ScholarGoogle Scholar
  12. Bosch, J. 1999. Product-line architectures in industry: A case study. In Proceedings of the 21st International Conference on Software Engineering. IEEE Computer Society Press. Los Angeles, CA. 544--554.]] Google ScholarGoogle Scholar
  13. Bosch, J. 2000. Design and Use of Software Architectures: Adopting and Evolving a Product-Line Approach. Wesley, A. Ed. ACM Press.]] Google ScholarGoogle Scholar
  14. Bray, T., Paoli, J., and Sperberg-McQueen, C. M. 1998. Extensible markup language (XML): Part I. Syntax. World Wide Web Consortium, Recommendation Report (Feb.). Available at <http://www.w3.org/TR/1998/REC-xml>.]]Google ScholarGoogle Scholar
  15. Christensen, C. and Shaw, C. 1969. Proceedings of the Extensible Languages Symposium. Boston, MA.]]Google ScholarGoogle Scholar
  16. Clark, J. and DeRose, S. 1999. XML path language (XPath) version 1.0. World Wide Web Consortium, W3C Recommendation Report REC-xpath-19991116 (Nov.). Available at <http://www.w3. org/TR/xpath>.]]Google ScholarGoogle Scholar
  17. Clements, P. and Northrop, L. 2001. Software Product Lines---Practices and Patterns. Pearson Education, (Addison-Wesley).]] Google ScholarGoogle Scholar
  18. Coglianese, L., Smith, R., and Tracz, W. 1992. DSSA case study: Navigation, guidance, and flight director design and development. In Proceedings of the IEEE Symposium on Computer-Aided Control System Design. (March), 102--109.]]Google ScholarGoogle Scholar
  19. Cunningham & Cunningham, Ins. 2004. Xml isa poor copy of ess expressions. Available at <<http://c2.com/cgi/wiki?XmlIsaPoorCopyOfEssExpressions>.]]Google ScholarGoogle Scholar
  20. Dashofy, E. M. 2001. Issues in generating data bindings for an XML schema-based language. In Proceedings of the Workshop on XML Technologies in Software Engineering (XSE'01) (May). Toronto, Canada.]]Google ScholarGoogle Scholar
  21. Dashofy, E. M. and Hoek, A. v. d. 2001. Representing product family architectures in an extensible architecture description language. In Proceedings of the International Workshop on Product Family Engineering (PFE-4) (Oct.), 330--341.]] Google ScholarGoogle Scholar
  22. Dashofy, E. M., Hoek, A. v. d., and Taylor, R. N. 2001. A highly-extensible, XML-based architecture description language. In Proceedings of the Working IEEE/IFIP Conference on Software Architecture (WICSA'01) (Aug.). Amsterdam, The Netherlands.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. DeRose, S., Maler, E., and Orchard, D. 2001. XML linking language (XLink) version 1.0. World Wide Web Consortium, W3C Recommendation Report (June). Available at <http://www.w3. org/TR/xlink/>.]]Google ScholarGoogle Scholar
  24. Eclipse Foundation. 2004. Eclipse. Available at <http://www.eclipse.org/>.]]Google ScholarGoogle Scholar
  25. Fallside, D. C. 2001. XML schema part 0: Primer. World Wide Web Consortium, W3C Recommendation Report (May). Available at <http://www.w3.org/TR/xmlschema-0/>.]]Google ScholarGoogle Scholar
  26. Garg, A., Critchlow, M., Chen, P., Van der Westhuizen, C., and Hoek, A. v. d. 2003. An environment for managing evolving product line architectures. In Proceedings of the IEEE International Conference on Software Maintenance (ICSM'03) (Sept.). Amsterdam, The Netherlands.]] Google ScholarGoogle Scholar
  27. Garlan, D., Monroe, R. T., and Wile, D. 2000. ACME: Architectural description of component-based systems. In Foundations of Component-Based Systems, Leavens, G.T. and Sitaraman, M. Eds. Cambridge University Press, 47--48.]] Google ScholarGoogle Scholar
  28. Gorlick, M. M. and Razouk, R. R. 1991. Using weaves for software construction and analysis. In Proceedings of the 13th International Conference on Software Engineering. (May), 23--34.]] Google ScholarGoogle Scholar
  29. Hoare, C. A. R. 1978. Communicating sequential processes. Comm. ACM. 21, 8 (Aug.), 666--677.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Hoek, A. v. d., Mikic-Rakic, M., Roshandel, R., and Medvidovic, N. 2001. Taming architectural evolution. In Proceedings of the 6th European Software Engineering Conference (ESEC) and the 9th ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE-9) (Sept.). Vienna, Austria. 10--14.]] Google ScholarGoogle Scholar
  31. Hofmeister, C., Nord, R. L., and Soni, D. 1999. Describing software architecture with UML. In Proceedings of the 1st IFIP Working Conference on Software Architecture. (Feb.). San Antonio, TX. Available at <http://citeseer.nj.nec.com/cache/papers/cs/15435/;http:zSzzSzwww. scr.siemens.comzSzpdfzSzUsingUML-unix.pdf/;hofmeister99describing.pdf>.]] Google ScholarGoogle Scholar
  32. Honeywell Inc. 1999. DOME Guide.]]Google ScholarGoogle Scholar
  33. Institute for Software Research. ArchStudio, an architecture-based development environment. University of California, Irvine. Available at <http://www.isr.uci.edu/projects/archstudio/>.]]Google ScholarGoogle Scholar
  34. Khare, R., Guntersdorfer, M., Oreizy, P., Medvidovic, N., and Taylor, R. N. 2001. xADL: Enabling architecture-centric tool integration with XML. In Proceedings of the 34th International Conference on System Sciences (HICSS-34), Software mini-track (Jan.). Maui, Hawaii.]] Google ScholarGoogle Scholar
  35. Lassila, O. and Swick, R. 1999. Resource Description Framework (RDF) Model and Syntax Specification. World Wide Web Consortium, W3C Recommendation Report (Feb.). Available at <http://www.w3.org/TR/REC-rdf-syntax/>.]]Google ScholarGoogle Scholar
  36. Le Hors, A., Le Hégaret, P., Wood, L., Nicol, G., Robie, J., Champion, M., and Byrne, S. 2003. Document object model (DOM) level 3 core specification. World Wide Web Consortium, W3C Working Draft Report (June). Available at <http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030609/>.]]Google ScholarGoogle Scholar
  37. Ledeczi, A., Maroti, M., Bakay, A., Karsai, G., Garrett, J., Thomason, C., Nordstrom, G., Sprinkle, J., and Volgyesi, P. 2000. The generic modeling environment. Vanderbilt University, 6. Tech. Rep. Available at <http://www.isis.vanderbilt.edu/Projects/gme/GME2000Overview.pdf>.]]Google ScholarGoogle Scholar
  38. Lopes, C. V., Kiczales, G., Mendhekar, A., Maeda, C., Loingtier, J.-M., and Irwin, J. 1997. Aspect-oriented programming. In Proceedings of the European Conference on Object-Oriented Programming. Finland.]]Google ScholarGoogle Scholar
  39. Luckham, D. C., Henke, F. W. V., Krieg-Brückner, B., and Owe, O. 1987. Anna---A Language for Annotating Ada Programs. Springer-Verlag, 260.]] Google ScholarGoogle Scholar
  40. Luckham, D. C., Kenney, J. J., Augustin, L. M., Vera, J., Bryan, D., and Mann, W. 1995. Specification and analysis of system architecture using rapide. IEEE Trans. Softw. Eng. 21, 4 (April), 336--355. Available at <http://citeseer.nj.nec.com/luckham95specification.html>.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Magee, J., Dulay, N., Eisenbach, S., and Kramer, J. 1995. Specifying distributed software architectures. In Proceedings of the 5th European Software Engineering Conference (ESEC'95). Springer-Verlag, Berlin. 137--153. Available at <http://citeseer.nj.nec.com/rd/0ftp:zSzzSzdse.doc.ic.ac.ukzSzdse-paperszSzdarwinzSzesec.pdf/magee94specifying.pdf>.]] Google ScholarGoogle Scholar
  42. Medvidovic, N., Rosenblum, D. S., and Taylor, R. N. 1999. A language and environment for architecture-based software development and evolution. In Proceedings of the 21st International Conference on Software Engineering (ICSE '99) (May). IEEE Computer Society. Los Angeles, CA. 44--53. Available at <http://www.ics.uci.edu/~dsr/old-home-page/icse99-dradel.pdf>.]] Google ScholarGoogle Scholar
  43. Medvidovic, N. and Taylor, R. N. 2000. A classification and comparison framework for software architecture description languages. IEEE Trans. Softw. Eng. 26, 1 (Jan.), 70--93. Reprinted in Rational Developer Network: Seminal Papers on Software Architecture. Rational Software Corporation. Available at <http://www.rational.net/>.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Mehta, N. R., Medvidovic, N., and Phadke, S. 2000. Towards a taxonomy of software connectors. In Proceedings of the 2000 International Conference on Software Engineering (June). Limerick, Ireland. 178--187. Available at <http://sunset.usc.edu/classes/cs599_2000/Conn-ICSE2000.pdf>.]] Google ScholarGoogle Scholar
  45. Milligan, M. K. J. 2000. Implementing COTS open systems technology on AWACS. CrossTalk: J. Defense Softw. Eng. (Sept.). Available at <http://www.stsc.hill.af.mil/crosstalk/2000/09/milligan.html>.]]Google ScholarGoogle Scholar
  46. Nentwich, C., Capra, L., Emmerich, W., and Finkelstein, A. 2002. Xlinkit: A consistency checking and smart link generation service. ACM Trans. Internet Tech. 2, 2 (May), 151--185. Available at <http://www.systemwire.com/whitepapers/xlinkit.pdf>.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. Nölle, O. 2002. XInterfaces: A new schema language for XML. BS Thesis. Institute for Computer Science, University of Freiburg. Available at <http://www.onoelle.de/xinterfaces/thesishtml/index.html>.]]Google ScholarGoogle Scholar
  48. Object Management Group. 2001. The Common Object Request Broker: Architecture and Specification.]]Google ScholarGoogle Scholar
  49. Ommering, R. v., Linden, F. v. d., Kramer, J., and Magee, J. 2000. The Koala component model for consumer electronics software. IEEE Comput. 33, 3 (March), 78--85.]] Google ScholarGoogle Scholar
  50. Ommering, R. v. 2002. Building product populations with software components. In Proceedings of the 24th International Conference on Software Engineering. 255--265.]] Google ScholarGoogle Scholar
  51. Oreizy, P., Gorlick, M. M., Taylor, R. N., Heimbigner, D., Johnson, G., Medvidovic, N., Quilici, A., Rosenblum, D. S., and Wolf, A. L. 1999. An architecture-based approach to self-adaptive software. IEEE Intell. Syst. 14, 3 (May-June), 54--62.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. Peake, I. and Salzman, E. 1997. Support for modular parsing in software reengineering. In Proceedings of the Conference on Software Technology and Engineering Practice'97 (July) London, UK. 58--66.]] Google ScholarGoogle Scholar
  53. Peake, I. 2000. LXWB User's Guide. Centre for Software Maintenance. Queensland.]]Google ScholarGoogle Scholar
  54. Perry, D. E. and Wolf, A. L. 1992. Foundations for the study of software architecture. ACM SIGSOFT Soft. Eng. Notes. 17, 4 (Oct.), 40--52. Available at <http://citeseer.nj.nec.com/perry92foundation.html>.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. Ren, J. and Taylor, R. N. 2003. Visualizing software architecture with off-the-shelf components. In Proceedings of the 15th International Conference on Software Engineering and Knowledge Engineering (July) San Francisco, CA. 132--141.]]Google ScholarGoogle Scholar
  56. Robbins, J., Redmiles, D., and Rosenblum, D. 1997. Integrating C2 with the unified modeling language. In Proceedings of the California Software Symposium (CSS'97) (Nov.). Irvine, CA. 11--18. Available at <ftp.ics.uci.edu/pub/eden/papers/conferences/1997/css/CSS97.pdf>.]]Google ScholarGoogle Scholar
  57. Robbins, J. and Redmiles, D. 1998. Software architecture critics in the Argo design environment. In Proceedings of the International Conference on Intelligent User Interfaces (UIST'98) (Jan.) San Francisco, CA. 47--60.]] Google ScholarGoogle Scholar
  58. Roshandel, R., Schmerl, B., Medvidovic, N., Garlan, D., and Zhang, D. 2004. Understanding tradeoffs among different architectural modeling approaches. In Proceedings of the 4th Working IEEE/IFIP Conference on Software Architecture (WICSA'04) (June) Oslo, Norway.]] Google ScholarGoogle Scholar
  59. Rouquette, N. and Reinholtz, K. 2002. The mission data system's software architecture framework. International Conference on Software Engineering (ICSE'02). Orlando, FL. Available at <http://www-scf.usc.edu/~csci577/teams/team12a/MDS/mds_sw_arch_framework.ppt>.]]Google ScholarGoogle Scholar
  60. SAX Project. 2003. SAX: Simple API for XML. Available at <http://www.saxproject.org/>.]]Google ScholarGoogle Scholar
  61. Schmerl, B. and Garlan, D. 2002. Exploiting architectural design knowledge to support self-repairing systems. In Proceedings of the 14th International Conference on Software Engineering and Knowledge Engineering. (July), 241--248. Ischia, Italy. Available at <http://portal.acm.org/citation.cfm?id=568804>.]] Google ScholarGoogle Scholar
  62. Spencer, J. 2000. Architecture description markup language (ADML): Creating an open market for IT architecture tools. The Open Group, White Paper Report (Sept.). Available at <http://www.opengroup.org/tech/architecture/adml/background.htm>.]]Google ScholarGoogle Scholar
  63. Steele, G. 1990. Common Lisp: the Language. 2nd Ed., Digital Press, Woburn, MA.]] Google ScholarGoogle Scholar
  64. Sun Microsystems. 2003a. Java architecture for XML binding (JAXB). Available at <http://java. sun.com/xml/jaxb/>.]]Google ScholarGoogle Scholar
  65. Sun Microsystems. 2003. Javadoc tool home page. Available at <http://java.sun.com/j2se/javadoc/>.]]Google ScholarGoogle Scholar
  66. Szyperski, C. 1997. Component Software: Beyond Object-Oriented Programming. ACM Press, New York, NY.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  67. Taylor, R. N., Medvidovic, N., Anderson, K. M. E., James Whitehead, J., Robbins, J. E., Nies, K. A., Oreizy, P., and Dubrow, D. L. 1996. A component- and message-based architectural style for GUI software. IEEE Trans. Softw. Eng. 22, 6 (June), 390--406.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  68. Thompson, H. S. and Tobin, R. 2003. Current status of XSV. Tech. Rep. University of Edinburgh (July). Available at <http://www.ltg.ed.ac.uk/~ht/xsv-status.html>.]]Google ScholarGoogle Scholar
  69. Tracz, W. and Coglianese, L. 1992. A case for domain-specific software architectures. In Proceedings of the WISR-5.]]Google ScholarGoogle Scholar
  70. Tracz, W. and Coglianese, L. 1993. An adaptable software architecture for integrated avionics. In Proceedings of the IEEE National Aerospace and Electronics Conference. (May), 1161--1168.]]Google ScholarGoogle Scholar
  71. Tracz, W. 1996. Domain-specific software architectures, frequently asked questions. Tech. Rep. Loral Federal Systems Company.]]Google ScholarGoogle Scholar
  72. Westhuizen, C. V. d. and Hoek, A. v. d. 2002. Understanding and propagating architectural change. In Proceedings of the Working IEEE/IFIP Conference on Software Architecture (WICSA 3) (Aug.). Montreal, Canada.]] Google ScholarGoogle Scholar
  73. Zave, P. 1999. FAQ sheet on feature interaction. Available at <http://www.research.att.com/~pamela/faq.html>, AT&T, HTML.]]Google ScholarGoogle Scholar

Index Terms

  1. A comprehensive approach for the development of modular software architecture description languages

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        • Published in

          cover image ACM Transactions on Software Engineering and Methodology
          ACM Transactions on Software Engineering and Methodology  Volume 14, Issue 2
          April 2005
          128 pages
          ISSN:1049-331X
          EISSN:1557-7392
          DOI:10.1145/1061254
          Issue’s Table of Contents

          Copyright © 2005 ACM

          Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 1 April 2005
          Published in tosem Volume 14, Issue 2

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • article

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader