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.
- Apache Group. 2003. Crimson. Available at <http://xml.apache.org/crimson/>.]]Google Scholar
- 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 Scholar
- 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 Scholar
- 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 ScholarDigital Library
- 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 Scholar
- Altova GmbH. 2003. XML spy website. Available at <http://www.xmlspy.com/>.]]Google Scholar
- 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 Scholar
- 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 Scholar
- 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 ScholarCross Ref
- Booch, G., Rumbaugh, J., and Jacobson, I. 1998. The Unified Modeling Language User Guide. Object Technology Series. Addison Wesley, Reading, MA.]] Google Scholar
- 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 Scholar
- 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 Scholar
- Bosch, J. 2000. Design and Use of Software Architectures: Adopting and Evolving a Product-Line Approach. Wesley, A. Ed. ACM Press.]] Google Scholar
- 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 Scholar
- Christensen, C. and Shaw, C. 1969. Proceedings of the Extensible Languages Symposium. Boston, MA.]]Google Scholar
- 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 Scholar
- Clements, P. and Northrop, L. 2001. Software Product Lines---Practices and Patterns. Pearson Education, (Addison-Wesley).]] Google Scholar
- 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 Scholar
- Cunningham & Cunningham, Ins. 2004. Xml isa poor copy of ess expressions. Available at <<http://c2.com/cgi/wiki?XmlIsaPoorCopyOfEssExpressions>.]]Google Scholar
- 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 Scholar
- 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 Scholar
- 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 ScholarDigital Library
- 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 Scholar
- Eclipse Foundation. 2004. Eclipse. Available at <http://www.eclipse.org/>.]]Google Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- Hoare, C. A. R. 1978. Communicating sequential processes. Comm. ACM. 21, 8 (Aug.), 666--677.]] Google ScholarDigital Library
- 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 Scholar
- 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 Scholar
- Honeywell Inc. 1999. DOME Guide.]]Google Scholar
- Institute for Software Research. ArchStudio, an architecture-based development environment. University of California, Irvine. Available at <http://www.isr.uci.edu/projects/archstudio/>.]]Google Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 ScholarDigital Library
- 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 Scholar
- 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 Scholar
- 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 ScholarDigital Library
- 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 Scholar
- 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 Scholar
- 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 ScholarDigital Library
- 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 Scholar
- Object Management Group. 2001. The Common Object Request Broker: Architecture and Specification.]]Google Scholar
- 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 Scholar
- Ommering, R. v. 2002. Building product populations with software components. In Proceedings of the 24th International Conference on Software Engineering. 255--265.]] Google Scholar
- 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 ScholarDigital Library
- 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 Scholar
- Peake, I. 2000. LXWB User's Guide. Centre for Software Maintenance. Queensland.]]Google Scholar
- 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 ScholarDigital Library
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- SAX Project. 2003. SAX: Simple API for XML. Available at <http://www.saxproject.org/>.]]Google Scholar
- 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 Scholar
- 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 Scholar
- Steele, G. 1990. Common Lisp: the Language. 2nd Ed., Digital Press, Woburn, MA.]] Google Scholar
- Sun Microsystems. 2003a. Java architecture for XML binding (JAXB). Available at <http://java. sun.com/xml/jaxb/>.]]Google Scholar
- Sun Microsystems. 2003. Javadoc tool home page. Available at <http://java.sun.com/j2se/javadoc/>.]]Google Scholar
- Szyperski, C. 1997. Component Software: Beyond Object-Oriented Programming. ACM Press, New York, NY.]] Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- Tracz, W. and Coglianese, L. 1992. A case for domain-specific software architectures. In Proceedings of the WISR-5.]]Google Scholar
- 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 Scholar
- Tracz, W. 1996. Domain-specific software architectures, frequently asked questions. Tech. Rep. Loral Federal Systems Company.]]Google Scholar
- 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 Scholar
- Zave, P. 1999. FAQ sheet on feature interaction. Available at <http://www.research.att.com/~pamela/faq.html>, AT&T, HTML.]]Google Scholar
Index Terms
- A comprehensive approach for the development of modular software architecture description languages
Recommendations
Usefulness of Software Architecture Description Languages for Modeling and Analysis of Federates and Federation Architectures
Software architecture is high-level software design dealing with the structure and organization of large software systems. Architecture description languages (ADLs) are languages designed to represent software designs at the architecture level. ADLs are ...
A lightweight language for software product lines architecture description
ECSA'13: Proceedings of the 7th European conference on Software ArchitectureThe architecture description of a software product line (SPL) is essential to make it clear how the architecture realizes the feature model and to represent both the domain and application engineering architectural artefacts. However, most architecture ...
Towards more flexible architecture description languages for industrial applications
EWSA'06: Proceedings of the Third European conference on Software ArchitectureArchitecture Description Languages (ADLs) have emerged in recent years as a tool for providing high-level descriptions of software systems in terms of their architectural elements and the relationships among them. Most of the current ADLs exhibit ...
Comments