Software architecture research focuses on models of software architectures as specified in architecture description languages (ADLs) IntroductionOne of the key goals of software architecture research is understanding and manipulating a system at a higher level of granularity than modules or lines-of code. Generally, software architectures are composed of components, the loci of computation, connectors, the loci of communication, and configurations, constraints on the arrangement and behavior of components and connectors [10,21]. The architecture of a software system is a model, or abstraction, of that system. Software architecture researchers need extensible, flexible architecture description languages (ADLs) and equally flexible and extensible tools to represent these models and experiment with new models or modeling techniques.To these ends, we have developed xADL 2.0, a highly-extensible XML-based ADL. xADL 2.0 is based on xArch, a core representation for basic architectural elements that uses the XML schema extension method (see Section 2.2) for extending this core. xArch was jointly developed by the University of California, Irvine and Carnegie Mellon University to provide a basis for creating new ADLs and ADL features easily. xADL 2.0 was developed in parallel with xArch. In addition to the core xArch elements, xADL 2.0 provides support for architectural prescription (the "recipe" for how an architecture should be instantiated into a running system), a types-and-instances model, architecture-level configuration management concepts such as versions, options, and variants, and a mapping from types onto implementations of those types. We plan to further extend xADL 2.0 in the future as our research on software architecture progresses. While xADL 2.0 is not the first XML-based ADL, it offers some novel features.First, xADL 2.0 is highly extensible. Since xADL 2.0 inherits XML's schema-based extensibility mechanism, users can effectively and independently extend it with features that support their particular needs. Specifically, users can write extensions that modify and add to the existing elements of xADL 2.0 in a modular fashion. Moreover, since xADL 2.0 is defined as a set of extensions to xArch, undesired or unused features of xADL 2.0 can be left out of architectural descriptions.Second, xADL 2.0 is supported by tools that provide infrastructure for storing, manipulating, and sharing xADL 2.0 specifications. This set of tools completely insulates end-users from the peculiarities of XML and the internal structure of xADL 2.0 documents. The only users who need to be aware of the XML-nature of xADL 2.0 are those who extend it with their own schemas.Third, xADL makes a clear distinction between architectural prescription (the design-time template that is used for instantiating the architecture) and architectural description (which describes the run-time state of the system). Whereas existing ADLs typically assume that their models are applicable both at design-time and runtime, xADL 2.0 logically sep...
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.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
hi@scite.ai
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
Copyright © 2024 scite LLC. All rights reserved.
Made with đŸ’™ for researchers
Part of the Research Solutions Family.