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

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.

[1]  Steve Vestal,et al.  Domain-Specific Software Architectures for Guidance, Navigation and Control , 1996, Int. J. Softw. Eng. Knowl. Eng..

[2]  Jan Bosch,et al.  Product-line architectures in industry: a case study , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[3]  Richard N. Taylor,et al.  A Classification and Comparison Framework for Software Architecture Description Languages , 2000, IEEE Trans. Software Eng..

[4]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming , 2002 .

[5]  Jr. Guy L. Steele,et al.  Common LISP: the language (2nd ed.) , 1990 .

[6]  Licia Capra,et al.  xlinkit: a consistency checking and smart link generation service , 2002, TOIT.

[7]  Jan Bosch,et al.  Design and use of software architectures - adopting and evolving a product-line approach , 2000 .

[8]  Dominic A. Orchard,et al.  XML Linking Language (XLink) Version 1. 0. World Wide Web Consortium, Proposed Recommendation PR - x , 2000 .

[9]  Gregor Kiczales,et al.  Aspect-oriented programming , 1996, CSUR.

[10]  Olaf Owe,et al.  ANNA A Language for Annotating Ada Programs , 1987, Lecture Notes in Computer Science.

[11]  Gabor Karsai,et al.  The Generic Modeling Environment , 2001 .

[12]  Eric M. Dashofy Issues in generating data bindings for an xml schema-based language , 2001 .

[13]  Bradley R. Schmerl,et al.  Understanding tradeoffs among different architectural modeling approaches , 2004, Proceedings. Fourth Working IEEE/IFIP Conference on Software Architecture (WICSA 2004).

[14]  David C. Fallside,et al.  Xml schema part 0: primer , 2000 .

[15]  Murray Altheim,et al.  Modularization of XHTML , 2001 .

[16]  Ivar Jacobson,et al.  The Unified Modeling Language User Guide , 1998, J. Database Manag..

[17]  Ping Chen,et al.  An environment for managing evolving product line architectures , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..

[18]  Jason E. Robbins,et al.  Software architecture critics in Argo , 1998, IUI '98.

[19]  Naranker Dulay,et al.  Specifying Distributed Software Architectures , 1995, ESEC.

[20]  K. Barraclough Eclipse , 2006, BMJ : British Medical Journal.

[21]  Richard N. Taylor,et al.  A highly-extensible, XML-based architecture description language , 2001, Proceedings Working IEEE/IFIP Conference on Software Architecture.

[22]  Jeff Magee,et al.  The Koala Component Model for Consumer Electronics Software , 2000, Computer.

[23]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

[24]  André van der Hoek,et al.  Understanding and Propagating Architecutural Changes , 2002, WICSA.

[25]  C. M. Sperberg-McQueen,et al.  Extensible markup language , 1997 .

[26]  David Notkin,et al.  ArchJava: connecting software architecture to implementation , 2002, ICSE '02.

[27]  André van der Hoek,et al.  Representing Product Family Architectures in an Extensible Architecture Description Language , 2001, PFE.

[28]  Nenad Medvidovic,et al.  Towards a taxonomy of software connectors , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[29]  Richard N. Taylor,et al.  A language and environment for architecture-based software development and evolution , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[30]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[31]  W. Tracz,et al.  DSSA case study: navigation, guidance, and flight director design and development , 1992, IEEE Symposium on Computer-Aided Control System Design.

[32]  C LuckhamDavid,et al.  Specification and Analysis of System Architecture Using Rapide , 1995 .

[33]  Michael M. Gorlick,et al.  Using weaves for software construction and analysis , 1991, [1991 Proceedings] 13th International Conference on Software Engineering.

[34]  Peyman Oreizy,et al.  An architecture-based approach to self-adaptive software , 1999, IEEE Intell. Syst..

[35]  Richard N. Taylor,et al.  A Component- and Message-Based Architectural Style for GUI Software , 1995, 1995 17th International Conference on Software Engineering.

[36]  Jason E. Robbins,et al.  Software architecture critics in the Argo design environment , 1998, Knowl. Based Syst..

[37]  David Garlan,et al.  A formal basis for architectural connection , 1997, TSEM.

[38]  I. Peake,et al.  Support for modular parsing in software reengineering , 1997, Proceedings Eighth IEEE International Workshop on Software Technology and Engineering Practice incorporating Computer Aided Software Engineering.

[39]  Christopher J. Shaw,et al.  Proceedings of the Extensible Languages Symposium , 1969 .

[40]  David S. Rosenblum,et al.  Integrating C2 with the Unified Modeling Language , 1997 .

[41]  Steven J. DeRose,et al.  Xml linking language (xlink), version 1. 0 , 2000, WWW 2000.

[42]  Walter Mann,et al.  Correction to "Specification and Analysis of System Architecture Using Rapide" , 1995, IEEE Trans. Software Eng..

[43]  David Garlan,et al.  Acme: architectural description of component-based systems , 2000 .

[44]  Didier Parigot,et al.  SmartTools: a Generator of Interactive Environment Tools , 2001, LDTA@ETAPS.

[45]  N. F. Rouquette The Mission Data System's software architecture framework , 2002 .

[46]  Didier Parigot,et al.  SmartTools: a Generator of Interactive Environment Tools , 2001, Electron. Notes Theor. Comput. Sci..

[47]  Ivar Jacobson,et al.  Unified Modeling Language User Guide, The (2nd Edition) (Addison-Wesley Object Technology Series) , 2005 .

[48]  Bradley R. Schmerl,et al.  Exploiting architectural design knowledge to support self-repairing systems , 2002, SEKE '02.

[49]  Paul Clements,et al.  Software product lines - practices and patterns , 2001, SEI series in software engineering.

[50]  Robert L. Nord,et al.  Describing Software Architecture with UML , 1999, WICSA.

[51]  Richard N. Taylor,et al.  Visualizing Software Architecture with Off-The-Shelf Components , 2003, SEKE.

[52]  Marija Mikic-Rakic,et al.  Taming architectural evolution , 2001, ESEC/FSE-9.

[53]  Steven J. DeRose,et al.  XML Path Language (XPath) Version 1.0 , 1999 .

[54]  Michael K. J. Milligan,et al.  Implementing COTS Open Systems Technology on AWACS , 2000 .

[55]  Jonathan Robie,et al.  Editors , 2003 .

[56]  Dan Brickley,et al.  Resource Description Framework (RDF) Model and Syntax Specification , 2002 .

[57]  Peyman Oreizy,et al.  xADL: enabling architecture-centric tool integration with XML , 2001, Proceedings of the 34th Annual Hawaii International Conference on System Sciences.

[58]  W. Tracz,et al.  An adaptable software architecture for integrated avionics , 1993, Proceedings of the IEEE 1993 National Aerospace and Electronics Conference-NAECON 1993.

[59]  Rob C. van Ommering Building product populations with software components , 2002, ICSE '02.