<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>A Classification of Dynamic Reconfiguration in Component and Connector Architecture Description Languages</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Component Instantiation</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Component Removal</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Arvid Butting</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>School of Computer Science, Tel Aviv University</institution>
          ,
          <addr-line>Tel Aviv</addr-line>
          ,
          <country country="IL">Israel</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Software Engineering</institution>
          ,
          <addr-line>RWTH Aachen, Aachen</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>-Architecture description languages (ADLs) facilitate model-driven engineering by fostering reuse of component models. Some of the over 120 ADLs contributed by academia and industry feature dynamic architecture reconfiguration and the underlying mechanisms vary significantly. When considering employing an ADL supporting dynamic reconfiguration it is challenging to keep track of the possibilities. We conducted a literature study investigating the different reconfiguration mechanisms of component &amp; connector (C&amp;C) ADLs. To this effect, we started with the 120 ADLs studied in [29], reduced these to C&amp;C ADLs, investigated their reconfiguration mechanisms, and classified these along six dimensions. The findings unravel the state of dynamically reconfigurable C&amp;C ADLs and support developers considering employing one in choosing the most suitable language.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
      <p>
        Component &amp; connector (C&amp;C) architecture description
languages [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ], [
        <xref ref-type="bibr" rid="ref32">32</xref>
        ] combine the benefits of component-based
software engineering with model-driven engineering (MDE) to
abstract from the accidental complexities [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] and notational
noise [
        <xref ref-type="bibr" rid="ref54">54</xref>
        ] of general-purpose programming languages (GPLs).
They employ abstract component models to describe software
architectures as hierarchies of connected components.
      </p>
      <p>
        We adopt the notion of C&amp;C ADLs as described in [
        <xref ref-type="bibr" rid="ref32">32</xref>
        ],
where components encapsulate the functionality of the system
within well-defined stable interfaces and connectors enable
component interaction. These concepts abstract over technical
language details of C&amp;C ADLs. In many ADLs the
configuration of C&amp;C architectures is fixed at design time. The
environment or the current goal of the system might however
change during runtime and require dynamic adaptation of the
system [
        <xref ref-type="bibr" rid="ref45">45</xref>
        ] to a new configuration that may only include a
subset of already existing components and their
interconnections or may introduce new components and connectors.
      </p>
      <p>To support dynamic adaptation a modeled C&amp;C architecture
either has to adapt its configuration at runtime or it must
encode adaptation in the behaviors of the related components.
This encoding introduces implicit dependencies between
components and forfeits abstraction of behavior paramount to C&amp;C</p>
      <p>This research has partly received funding from the German Federal Ministry
for Education and Research under grant no. 01IS16043P. The responsibility
for the content of this publication is with the authors.
models. It thus imposes co-evolution constraints on
different levels of abstraction and across components. Dynamic
reconfiguration mechanisms and their formulation in ADLs
help to mitigate these problems by formalizing adaptation as
structural reconfiguration. This allows components to maintain
encapsulation and abstraction of functionality.</p>
      <p>Different C&amp;C ADLs have suggested different
reconfiguration mechanisms currently lacking detailed classification.
On the one hand, this creates challenges for engineers in
selecting ADLs with the right reconfiguration mechanisms.
On the other hand, a classification might help ADL creators to
design appropriate reconfiguration mechanism. Our goal is to
identify the modeling dimensions for dynamic reconfiguration
in C&amp;C ADLs. We therefore investigate dynamic
reconfiguration in C&amp;C ADLs and develop a classification of C&amp;C
ADL reconfiguration mechanisms. Our contribution consists
of (1) a study of dynamic reconfiguration in C&amp;C ADLs, and
(2) a classification of C&amp;C ADLs along different dimensions
of dynamic reconfiguration.</p>
      <p>Sec. II gives an example to demonstrate benefits of dynamic
reconfiguration, before Sec. III presents concepts of dynamic
reconfiguration in C&amp;C ADLs. Afterwards, Sec. IV discusses
our study and Sec. V compares it to related work. Finally,
Sec. VI concludes.</p>
    </sec>
    <sec id="sec-2">
      <title>II. EXAMPLE</title>
      <p>
        As motivating example, we consider different C&amp;C model
configurations of a shift controller for an automatic
transmission system for cars, as modeled in [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ]. In this example, the
car’s clutch can adopt the six positions Park, Reverse, Neutral,
Drive, Sport, and Manual that influence when to shift gears.
Each of these positions is reflected in the software architecture
by an equivalent transmission operating mode (TOM). In C&amp;C
software architectures, each shifting behavior would typically
be modeled as an individual component. With dynamic
reconfiguration, the architecture can adapt at run time. To this end,
reconfiguration modifies parts of the architecture, for example,
by redefining the connections between components. There
are different approaches to realizing dynamic reconfiguration,
e.g., stating different configurations of activated components
and connectors or exchanging connectors and instantiating or
deleting subcomponents.
      </p>
      <p>Fig. 1 illustrates dynamic reconfiguration of the composed
component ShiftController by depicting two exemplary
configurations. The top depicts the configuration Sport,
where the subcomponent SportShiftCtrl is employed
to shift the gears according to several values measured by
the SCSensors component. In this configuration, two
subcomponents are active and four connectors are involved. The
bottom depicts the Manumatic configuration, which has one
active subcomponent ManShiftCtrl that reads the position
of the clutch and changes gears accordingly. The
subcomponents that are not used in the current configurations are either
unconnected, deactivated (e.g., to save energy), or removed –
depending on the realization of dynamic reconfiguration. TOM
messages received by the ShiftController component
are used to change between different configurations, e.g., based
on an automaton with a state for each configuration.</p>
      <p>With explicit dynamic reconfiguration mechanisms, the
connectors between software components become exchangeable
or modifiable at runtime, which enables to specify different
operating modes of software architectures. Some ADLs also
support dynamic instantiation and removal of subcomponents.
In many ADLs, the number of possible configurations is
unrestricted, yielding great flexibility. In others, configurations
are made explicit and controlled, yielding the possibility of
describing flexible software architectures for dynamic distributed
systems or system networks, while still supporting (automatic)
formal analyses on these systems. The latter is crucial for
modeling reliable and safe software architectures.</p>
      <p>
        III. DYNAMIC RECONFIGURATION IN C&amp;C ADLS
Modeling C&amp;C architectures using ADLs [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ], [
        <xref ref-type="bibr" rid="ref32">32</xref>
        ]
abstracts from the notational noise [
        <xref ref-type="bibr" rid="ref54">54</xref>
        ] and accidental
complexities [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] of GPLs. ADLs enable modeling complex systems as
interacting, encapsulated components with stable
communication interfaces. Connectors enable components to interact with
each other via their interfaces. Many ADLs yield additional
features, such as communication constraints, non-functional
properties, component behavior modeling techniques, or
modC&amp;C
Config
C&amp;C
Config
GSCmd
eling elements for domain-specific aspects. Different domains
successfully adopted ADLs, such as avionics [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ],
automotive [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], cloud systems [
        <xref ref-type="bibr" rid="ref36">36</xref>
        ], and robotics [
        <xref ref-type="bibr" rid="ref46">46</xref>
        ].
      </p>
      <p>
        We consider an ADL as dynamic if it supports modeling
dynamically reconfigurable architectures, i.e., it allows at least
to model dynamic establishment or removal of connectors.
The importance of dynamically reconfigurable architectures
has long been recognized [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ] and it has been implemented for
multiple ADLs. Nonetheless, there are many ADLs that
support static architectures only, such as ArchFace [
        <xref ref-type="bibr" rid="ref51">51</xref>
        ], ALI [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ],
C3 [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], COSA [
        <xref ref-type="bibr" rid="ref49">49</xref>
        ], DiaSpec [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], Gestalt [
        <xref ref-type="bibr" rid="ref47">47</xref>
        ],LISA [
        <xref ref-type="bibr" rid="ref53">53</xref>
        ],
MontiArc [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], Palladio [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], UNICON-2 [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], or xADL [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ].
Many of these ADLs focus on and excel in different
concerns, such as expressiveness (EAST-ADL [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]),
domainspecificness (DiaSpec [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]), or extensibility (xADL [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ]).
Where available, rules for dynamic reconfiguration are usually
expressed by designated modeling elements of the ADL.
However, there is no consensus on how to describe dynamic
reconfiguration in architectural models.
      </p>
      <p>
        We propose a classification of dynamic reconfiguration
mechanisms. Our starting point are 120 architecture languages
found in [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ]. From this, we excluded ADLs that are not based
on C&amp;C models (such as P++ [
        <xref ref-type="bibr" rid="ref48">48</xref>
        ]) and component models
with GPL implementations only (such as the k-Component
model [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], which is realized in C++ instead of an explicit
ADL). Afterwards, we excluded all ADLs for which no
peerreviewed publications were available (such as DADL [
        <xref ref-type="bibr" rid="ref34">34</xref>
        ])
and all ADLs based on formal approaches for which we did
not find an implementation (such as TADL [
        <xref ref-type="bibr" rid="ref35">35</xref>
        ]). This left
23 ADLs that we examined regarding their capabilities and
mechanisms for dynamic reconfiguration.
      </p>
      <p>A. A Classification of Dynamic Reconfiguration</p>
      <p>During examining the ADL’s publications, we identified
six dimensions for the classification of modeling C&amp;C ADL
dynamic reconfiguration mechanisms.</p>
      <p>
        Restricted vs. Open Reconfiguration: With restricted
reconfiguration, the number of possible configurations is finite at
design time. For instance, AADL [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], AutoFocus [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ],
MontiArcAutomaton [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ], or PRISMA [
        <xref ref-type="bibr" rid="ref40">40</xref>
        ] enable dynamic
reconfiguration in a restricted fashion. Here, composed
components can change between a finite number of configurations
(called “modes”). Switching between modes is also restricted:
specific transition govern under which circumstances a
component may change its configuration. Dynamic Wright [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], for
instance, enables to model dynamic reconfiguration between
a finite number of configurations predefined at design time in
response to the occurrence of special control events [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. With
open reconfiguration, components may dynamically change
to configurations at runtime that have not been predefined
at design-time (cf. -ADL [
        <xref ref-type="bibr" rid="ref38">38</xref>
        ], LEDA [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], PiLar [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ],
and ArchJava [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]) or may change between an unrestricted
number of configurations predefined at design time [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ].
While restricted reconfiguration lacks the flexibility of open
reconfiguration, it may increase model comprehensibility and
facilitate static analysis.
      </p>
      <p>
        Imperative vs. Declarative Specification: In imperative
reconfiguration mechanisms, the reconfiguration is defined
programmatically, whereas declarative specifications typically
describe configurations. Imperative specifications exist in
many ADLs: ArchJava [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] allows to instantiate and connect
components similar to objects in Java. The -ADL [
        <xref ref-type="bibr" rid="ref38">38</xref>
        ],
LEDA [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], and PiLar [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] include control structures and
operators for modeling dynamic reconfiguration such as the
instantiation and removal of components and connectors.
Dynamic Wright [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] provides special actions (new, del, attach,
detach) to instantiate or remove architectural elements. The
architecture modification language of C2 SADL [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ] enables
to specify sequences of operations for performing dynamic
reconfigurations. In Fractal [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], components may contain
various controllers, which are explicit language elements to
add and remove subcomponents as well as connectors. A
controller’s implementation, e.g., in Java [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], defines the
reconfiguration mechanism. Declarative specifications appear
in AADL [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], AutoFocus [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], Darwin [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ], and Koala [
        <xref ref-type="bibr" rid="ref52">52</xref>
        ].
In the AADL [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] and AutoFocus [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], dynamic
architectures are declaratively described by predefined modes. In
Koala [
        <xref ref-type="bibr" rid="ref52">52</xref>
        ], switches are parts of component configurations.
Darwin [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ] supports to declaratively specify special services
for component instantiation. To some extent, reconfiguration
can built upon both imperative and declarative mechanisms.
ACME/Plastik [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ], e.g., provides imperative operators for
the instantiation of components, but additionally supports to
declaratively specify dependencies of the new component
to further architectural elements. When the component is
instantiated, these elements are also instantiated.
      </p>
      <p>
        Programmed vs. Ad-Hoc Reconfiguration: With
programmed reconfiguration, the architecture model is aware of
reconfiguration possibilities, whereas with ad-hoc
reconfiguration, it is not. In programmed reconfiguration, reconfiguration
conditions and effects are specified at design time. At runtime,
the reconfiguration is applied when the conditions for
reconfiguration are met. Programmed reconfiguration can be restricted
(through specification of modes) or open (through
imperative reconfiguration specification). Ad-hoc reconfiguration
introduces greater flexibility, but the reconfiguration options
are invisible in the architecture models. Combining ad-hoc
reconfiguration with open reconfiguration can have the form
of external scripts selecting from predefined configuration
modes at architecture runtime. The ADLs AADL [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] and
ArchJava [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], for example, support programmed
reconfiguration through modes and imperative programs, respectively.
ACME/Plastik [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ], C2 SADL [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ], and Fractal [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] support
ad-hoc reconfigurations. In ACME/Plastik [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ], for example,
ad-hoc reconfiguration is possible by executing reconfiguration
scripts that operate on a runtime API. While ad-hoc
reconfiguration allows to simulate unforeseen architectural changes,
e.g., for testing the robustness of an architecture at runtime, it
complicates analysis and evolution.
      </p>
      <p>
        Dynamic Component Instantiation &amp; Removal: Many
dynamic ADLs also allow to instantiate or remove components
at runtime. In ACME/Plastik [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ], so-called actions can
remove and create connectors and components. ArchJava [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]
embeds architectural elements in Java and hence allows to
instantiate objects corresponding to special component classes
similarly to ordinary Java objects. Although dynamic removal
of components cannot be explicitly modeled with ArchJava,
component instances are garbage collected, when they cannot
be referenced anymore. C2 SADL [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ] supports ad-hoc
instantiation and removal of components. The controller concept
of Fractal [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] enables to dynamically instantiate and remove
components. The -ADL [
        <xref ref-type="bibr" rid="ref38">38</xref>
        ], LEDA [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], and PiLar [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]
provide language constructs for the specification of dynamic
architectures, such as the instantiation, removal, or movement
of components. Dynamic Wright [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] supports modeling
instantiation and removal of components in response to the
occurrence of special control events. MontiArcAutomaton [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ]
supports modeling dynamic component instantiation and
removal on mode changes. Darwin [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ] only support modeling
dynamic instantiation but not dynamic removal of components.
ExSAVN [
        <xref ref-type="bibr" rid="ref56">56</xref>
        ], AVDL [
        <xref ref-type="bibr" rid="ref44">44</xref>
        ], and AOSEPADL [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] do not
support dynamic component instantiation or removal. While a
reconfiguration mechanism with dynamic component
instantiation and removal is more expressive than a mechanism relying
on establishing and removing only connectors at runtime, the
former complicates formal analyses on the architecture.
Instructed vs. Triggered Reconfiguration: With instructed
reconfiguration, the environment can intentionally instruct a
component’s reconfiguration. If an ADL supports modeling the
application of a reconfiguration in response to the occurrence
of a dedicated reconfiguration event only, we denote the
reconfiguration mechanisms as instructed (the environment
instructs the component to reconfigure). The nature of these
events depends on the expressiveness of the respective ADL
and can range from receiving messages of specific types
to components providing explicit reconfiguration services.
In contrast, if a component reconfigures based on internal
conditions over events that have to be satisfied (e.g.,
reconfigure automatically if the incoming messages indicate a high
load) we denote the reconfiguration mechanism as triggered.
The ADLs AVDL [
        <xref ref-type="bibr" rid="ref44">44</xref>
        ], Darwin [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ], Dynamic Wright [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ],
and OOADL [
        <xref ref-type="bibr" rid="ref50">50</xref>
        ] support instructed reconfiguration only.
With ACME/Plastik [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ], ArchJava [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], AutoFocus [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ],
Fractal [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], MontiArcAutomaton [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ], LEDA [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], and
PiLar [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], for instance, triggered reconfiguration is possible as
well. Triggered approaches are more powerful than instructed
approaches as they can emulate instructed reconfiguration.
Triggered reconfiguration, however, reduces complexity of
specifying configuration changes at the cost of flexibility.
Self-Direction: With self-directed approaches, the
configuration of a component cannot be changed by its environment at
will, instead only the component itself knows when and how
to reconfigure. With self-direction, reconfiguration is
encapsulated into the composed component [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ], [
        <xref ref-type="bibr" rid="ref50">50</xref>
        ], but can be made
accessible through its interface, e.g., through dedicated
reconfiguration messages. This can be either instructed or triggered.
MontiArcAutomaton is a representative of a dynamic,
modebased ADL supporting self-directed reconfiguration only, as
modes of a component are only accessible in the scope
of the component itself [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ]. In Darwin [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ], a component
may provide special services that dynamically change the
configuration of the component. ACME/Plastik [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ] supports
imperative specification of programmed reconfiguration. Its
language elements (e.g., on, detach, remove, dependencies,
active property) only allow for self-directed reconfiguration.
Similarly, Dynamic Wright [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] only allows self-directed
reconfigurations by means of special actions (new, del, attach,
detach) for dynamically modifying component configurations.
In AADL [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], modes of subcomponents can be mapped to
modes of their enclosing components. The subcomponents
then switch their modes according to the mode transitions of
their enclosing components. PiLar [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] is an imperative ADL
providing reflective commands that enable components to
retrieve any other system part that can be manipulated afterwards
using the language’s dynamic commands. In Fractal [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ],
components may be reconfigured from their environments via
the external interfaces of their membranes and from their
subcomponents via their membranes’ internal interfaces. The
-ADL [
        <xref ref-type="bibr" rid="ref38">38</xref>
        ] and LEDA [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] include the mobility aspects of the
-calculus [
        <xref ref-type="bibr" rid="ref33">33</xref>
        ]. Therefore, neither AADL, nor PiLar, Fractal,
-ADL, or LEDA are self-directed. Self-direction retains the
encapsulation of component behavior as reusable black boxes.
While it can reduce the flexibility of reconfiguring, non
selfdirected reconfiguration challenges system composition when
the reconfiguration makes assumptions about the internals of
(sub-)components.
      </p>
      <p>B. Summary and Observations on Dynamic Reconfiguration</p>
      <p>Table I summarizes our findings for the 23 identified ADLs
with unique dynamic reconfiguration mechanisms. The ADLs
are classified according to the identified dimensions. The
columns of the table indicate whether the reconfiguration
mechanism of each ADL is restricted, is imperative (Imper.)
or declarative (Decl.), is programmed or ad-hoc, allows for
dynamic component instantiation or removal, is triggered,
and whether it is self-directed. The symbols X, , ? denote
that a concept is supported, not supported, or that support is
unknown based on the available literature.</p>
      <p>
        The majority of ADLs supporting dynamic reconfiguration
support open reconfiguration, enabling changing the
architecture in ways unforeseen at design time (for instance by loading
and applying change models). All ADLs, but C2 [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ] support
programmed reconfiguration, whereas C2 is the single ADL
supporting only ad-hoc reconfiguration. Greater flexibility is
supported by ACME/Plastik [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ], Fractal [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], and MAE [
        <xref ref-type="bibr" rid="ref43">43</xref>
        ],
which support both reconfiguration mechanisms. Where
component instantiation is supported, component removal is
usually supported as well. Only Darwin [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ] does not support
removal despite supporting instantiation. Whether this is due
to the semantic challenges of removal or the lack of a driving
use case is not disclosed. It is furthermore somewhat surprising
that only half of the ADLs support triggered reconfiguration,
as instructed mechanisms are substantially less flexible.
      </p>
      <p>While support for instructed or triggered mechanisms and
support for component instantiation or removal are spread
uniformly over the 20 years of relevant papers, there seems
to be a trend towards programmed, declarative specification
of reconfiguration in the last decade. We assume to obtain
better model checking support, as these specifications are often
fixed at design time. Detailed investigation of the complexities
of the related reconfiguration specification mechanisms might
give insights into this.</p>
    </sec>
    <sec id="sec-3">
      <title>IV. DISCUSSION</title>
      <p>
        We conducted a literature study based on the 120 ADLs
presented in [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ]. The authors performed a systematic search
using multiple databases and used the resulting list of ADLs
to investigate the industrial requirements on ADLs. Limiting
research to these 120 ADLs can be considered a threat to
the design of our study. Future work includes conducting a
systematic mapping study on C&amp;C ADLs to identify ADLs
potentially missing in [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ]. Nevertheless, we are confident that
our findings are valid for the majority of C&amp;C ADLs. As
we only considered publications available in English, there
might, however, be publications on C&amp;C ADLs with novel
reconfiguration mechanisms not accessible to us. Additional
threats arise from including publications using other than
established terminology (cf. [
        <xref ref-type="bibr" rid="ref32">32</xref>
        ]) to describe ADLs. To avoid
preventing relevant publications or including irrelevant
publications, ambiguous publications were reviewed by at least
three of the authors and their inclusion was discussed based on
these reviews. To prevent the threat of classification fatigue, it
was performed in sessions of at most one hour broken followed
by breaks of at least 15 minutes.
      </p>
    </sec>
    <sec id="sec-4">
      <title>V. RELATED WORK</title>
      <p>
        Our study depends of the notion of component &amp; connector
architecture description languages as introduced in [
        <xref ref-type="bibr" rid="ref32">32</xref>
        ], where
the authors investigated the properties of components and
connectors in nine ADLs. In that study, dynamic reconfiguration is
not investigated systematically. Moreover, the presented study
leverages the data collected for and presented in [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ]. In that
study, the authors investigated the requirements on architecture
languages from an industrial perspective. They do not classify
reconfiguration features of the identified architecture
languages. The authors of [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ] investigate the properties relevant
to system-of-systems engineering of four ADLs (including
UML [
        <xref ref-type="bibr" rid="ref37">37</xref>
        ] and SysML [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]), but do not study their different
dynamic reconfiguration mechanisms. In [
        <xref ref-type="bibr" rid="ref39">39</xref>
        ], the authors
investigate six first-generation [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ] ADLs and find that at least
Darwin [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ] and Rapide [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ] support dynamic reconfiguration.
They do not detail or compare the mechanisms.
      </p>
      <p>Restricted
Reconf.</p>
      <p>Specification</p>
      <p>Style</p>
      <p>Programmed</p>
      <p>Reconf.</p>
      <p>Ad-hoc
Reconf.</p>
      <p>Triggered
Reconf.</p>
      <p>Self-directed</p>
      <p>Reconf.</p>
      <p>Decl.</p>
      <p>Imper.</p>
      <p>Decl.</p>
      <p>Imper.</p>
      <p>Decl.</p>
      <p>Decl.</p>
      <p>Imper.</p>
      <p>Decl.</p>
      <p>Imper.</p>
      <p>?
Imper.</p>
      <p>Decl.</p>
      <p>Decl.</p>
      <p>Imper.</p>
      <p>Decl.</p>
      <p>Decl.</p>
      <p>Imper.</p>
      <p>Imper.</p>
      <p>Imper.</p>
      <p>Imper.</p>
      <p>Decl.</p>
      <p>?
Decl.</p>
      <p>X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
?
X
?
?
X
?
X
?
X
?
?</p>
      <p>X
X
X
X
X
X
X
X
X
X
X
X
X
X
X</p>
      <p>X
X
X
X
X
X
X
X
X
X
X
X
X
X</p>
      <p>X
X
X
?
X
X
X
X
X
X
X
X
X
?</p>
      <p>X
X
X
X
X
X
?
?
X
X
X
X
X
X</p>
      <p>
        Dynamic reconfiguration is related to self-configuration and
self-management of self-adaptive software [
        <xref ref-type="bibr" rid="ref45">45</xref>
        ]. A survey of
dynamic architecture specifications for self-management [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]
investigated 14 specification mechanisms and produced a
taxonomy comprising the initiation and selection of
reconfiguration, available reconfiguration operations, and reconfiguration
management. The survey’s notion of dynamic reconfiguration
agrees with the notion introduced in this work. The survey [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]
includes the formal basis that reconfiguration mechanisms rely
on (i.e., graph-based, process algebra based, logic-based, and
other approaches). Our classification includes more ADLs
and abstracts from theoretical backgrounds. The survey [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]
defines an ADL’s reconfiguration mechanisms to be centralized
if dynamic reconfiguration is solely handled by specialized
components. Centralized approaches as defined in [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] are not
self-directed (cf. Sec. III) as in these approaches specialized
components manage the reconfiguration of other components.
An ADL solely supports restricted reconfiguration (cf. Sec. III)
if it solely supports pre-defined selection as defined in [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
      </p>
    </sec>
    <sec id="sec-5">
      <title>VI. CONCLUSION</title>
      <p>We examined C&amp;C ADLs and identified six dimensions of
dynamic reconfiguration. Slightly less than half of the ADLs
under investigation allow dynamic reconfiguration between
predefined configurations. The others allow reconfiguration
between configurations not predefined at design time. In most
examined ADLs that allow reconfiguration between predefined
configurations, only, the specification style for describing
reconfiguration mechanisms is declarative. However, there are
also ADLs providing a declarative specification style in
combination with arbitrary reconfiguration. All but one ADL support
programmed reconfiguration, whereas the minority supports
ad-hoc reconfiguration. In all but one ADL where dynamic
component instantiation is possible, dynamic component
removal is also possible. Nearly half of the examined ADLs
support modeling self-directed programmed reconfiguration,
only. Surprisingly, only half of the ADLs support triggered
reconfiguration. Finally, there appears to be no general
consensus on modeling dynamic reconfiguration in C&amp;C ADLs.</p>
      <p>Computing and</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>Jonathan</given-names>
            <surname>Aldrich</surname>
          </string-name>
          , Craig Chambers, and David Notkin.
          <article-title>ArchJava: Connecting Software Architecture to Implementation</article-title>
          .
          <source>In Proceedings of the 24th International Conference on Software Engineering (ICSE)</source>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>Robert</given-names>
            <surname>Allen</surname>
          </string-name>
          , Re´mi Douence, and David Garlan.
          <article-title>Specifying and Analyzing Dynamic Software Architectures</article-title>
          . In International Conference on Fundamental Approaches to Software
          <source>Engineering (FASE'98)</source>
          ,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>Abdelkrim</given-names>
            <surname>Amirat</surname>
          </string-name>
          and
          <string-name>
            <given-names>Mourad</given-names>
            <surname>Oussalah</surname>
          </string-name>
          .
          <article-title>C3: A Metamodel for Architecture Description Language Based on First-Order Connector Types</article-title>
          .
          <source>In 11th International Conference on Enterprise Information Systems (ICEIS</source>
          <year>2009</year>
          ), pages
          <fpage>76</fpage>
          -
          <lpage>81</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>Vincent</given-names>
            <surname>Aravantinos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Sebastian</given-names>
            <surname>Voss</surname>
          </string-name>
          , Sabine Teufl,
          <article-title>Florian Ho¨lzl, and Bernhard Scha¨tz. AutoFOCUS 3: Tooling Concepts for Seamless, Model-based Development of Embedded Systems</article-title>
          .
          <source>In Joint proceedings of ACES-MB</source>
          2015
          <article-title>- Model-based Architecting of Cyber-physical and Embedded Systems</article-title>
          and WUCOR 2015
          <string-name>
            <surname>- UML Consistency Rules</surname>
          </string-name>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          <article-title>[5] AutoFocus 3 Website</article-title>
          . http://af3.fortiss.org/. Accessed:
          <fpage>2016</fpage>
          -01-18.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>R.</given-names>
            <surname>Bashroush</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Spence</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Kilpatrick</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T. J.</given-names>
            <surname>Brown</surname>
          </string-name>
          , W. Gilani, and
          <string-name>
            <given-names>M.</given-names>
            <surname>Fritzsche</surname>
          </string-name>
          . ALI:
          <article-title>An Extensible Architecture Description Language for Industrial Applications</article-title>
          .
          <source>In 15th Annual IEEE International Conference and Workshop on the Engineering of Computer Based Systems (ecbs 2008)</source>
          , pages
          <fpage>297</fpage>
          -
          <lpage>304</lpage>
          ,
          <year>March 2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>Steffen</given-names>
            <surname>Becker</surname>
          </string-name>
          , Heiko Koziolek, and
          <string-name>
            <given-names>Ralf</given-names>
            <surname>Reussner</surname>
          </string-name>
          .
          <article-title>Model-Based Performance Prediction with the Palladio Component Model</article-title>
          .
          <source>In Proceedings of the 6th International Workshop on Software and Performance</source>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Jeremy</surname>
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Bradbury</surname>
          </string-name>
          ,
          <string-name>
            <surname>James R. Cordy</surname>
            , Juergen Dingel, and
            <given-names>Michel</given-names>
          </string-name>
          <string-name>
            <surname>Wermelinger</surname>
          </string-name>
          .
          <article-title>A Survey of Self-management in Dynamic Software Architecture Specifications</article-title>
          .
          <source>In Proceedings of the 1st ACM SIGSOFT Workshop on Self-managed Systems</source>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>Manfred</given-names>
            <surname>Broy</surname>
          </string-name>
          , Franz Huber, and
          <article-title>Bernhard Scha¨tz. AutoFOCUS - Ein Werkzeugprototyp zur Entwicklung eingebetteter Systeme</article-title>
          .
          <source>InformatikForschung und Entwicklung</source>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Eric</surname>
            <given-names>Bruneton</given-names>
          </string-name>
          , Thierry Coupaye, Matthieu Leclercq, Vivien Que´ma, and
          <string-name>
            <surname>Jean-Bernard Stefani</surname>
          </string-name>
          .
          <source>The FRACTAL Component Model and Its Support in Java. Software - Practice and Experience</source>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>Arvid</surname>
            <given-names>Butting</given-names>
          </string-name>
          , Arne Haber, Lars Hermerschmidt, Oliver Kautz, Bernhard Rumpe, and
          <string-name>
            <given-names>Andreas</given-names>
            <surname>Wortmann</surname>
          </string-name>
          .
          <article-title>Systematic Language Extension Mechanisms for the MontiArc Architecture Description Language</article-title>
          .
          <source>In Modelling Foundations and Applications (ECMFA'17)</source>
          ,
          <source>Held as Part of STAF</source>
          <year>2017</year>
          , pages
          <fpage>53</fpage>
          -
          <lpage>70</lpage>
          . Springer International Publishing,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Carlos</surname>
            <given-names>Canal</given-names>
          </string-name>
          , Ernesto Pimentel, and Jose´ M.
          <article-title>Troya. Specification and Refinement of Dynamic Software Architectures</article-title>
          .
          <source>In Software Architecture: TC2 First Working IFIP Conference on Software Architecture (WICSA1)</source>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Damien</surname>
            <given-names>Cassou</given-names>
          </string-name>
          , Pierrick Koch, and
          <string-name>
            <given-names>Serge</given-names>
            <surname>Stinckwich</surname>
          </string-name>
          .
          <article-title>Using the DiaSpec design language and compiler to develop robotics systems</article-title>
          .
          <source>In Proceedings of the Second International Workshop on Domain-Specific Languages and Models for Robotic Systems (DSLRob)</source>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>Carlos</surname>
            <given-names>E.</given-names>
          </string-name>
          <string-name>
            <surname>Cuesta</surname>
          </string-name>
          , Pablo de la Fuente,
          <article-title>Manuel Barrio-Solo´rzano, and M. Encarnacio´n Gutie´rrez Beato. An “abstract process” approach to algebraic dynamic architecture description</article-title>
          .
          <source>The Journal of Logic and Algebraic Programming</source>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>Vincent</surname>
            <given-names>Debruyne</given-names>
          </string-name>
          ,
          <article-title>Franc¸oise Simonot-Lion, and Yvon Trinquet. EASTADL - An Architecture Description Language</article-title>
          .
          <source>In Architecture Description Languages</source>
          . Springer,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <surname>Robert</surname>
            <given-names>DeLine. Toward</given-names>
          </string-name>
          <string-name>
            <surname>User-Defined Element</surname>
            Types and
            <given-names>Architectural</given-names>
          </string-name>
          <string-name>
            <surname>Styles</surname>
          </string-name>
          .
          <source>In Proceedings of the 2nd International Software Architecture Workshop</source>
          ,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <surname>Jim</surname>
            <given-names>Dowling</given-names>
          </string-name>
          , Vinny Cahill, and Siobha`n Clarke.
          <article-title>Dynamic Software Evolution and The K-Component Model</article-title>
          .
          <source>In Workshop on Software Evolution, OOPSLA</source>
          , volume
          <year>2001</year>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <surname>Peter</surname>
            <given-names>H.</given-names>
          </string-name>
          <string-name>
            <surname>Feiler</surname>
            and
            <given-names>David P.</given-names>
          </string-name>
          <string-name>
            <surname>Gluch</surname>
          </string-name>
          .
          <article-title>Model-Based Engineering with AADL: An Introduction to the SAE Architecture Analysis</article-title>
          &amp;
          <string-name>
            <given-names>Design</given-names>
            <surname>Language. Addison-Wesley</surname>
          </string-name>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>Robert</given-names>
            <surname>France and Bernhard Rumpe</surname>
          </string-name>
          .
          <article-title>Model-Driven Development of Complex Software: A Research Roadmap</article-title>
          . In Future of Software Engineering 2007 at ICSE.,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <surname>Sanford</surname>
            <given-names>Friedenthal</given-names>
          </string-name>
          , Alan Moore, and
          <string-name>
            <given-names>Rick</given-names>
            <surname>Steiner</surname>
          </string-name>
          .
          <article-title>A Practical Guide to SysML: The Systems Modeling Language</article-title>
          . Morgan Kaufmann,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <surname>Zhitao</surname>
            <given-names>Fu</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Tong</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>and Yan</given-names>
            <surname>Hu</surname>
          </string-name>
          .
          <article-title>An Approach to Aspect-Oriented Software Evolution Process Architecture</article-title>
          .
          <source>In Intelligent Computation Technology and Automation</source>
          ,
          <year>2009</year>
          . ICICTA '09. Second International Conference on,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <surname>Milena</surname>
            <given-names>Guessi</given-names>
          </string-name>
          , Everton Cavalcante, and
          <string-name>
            <surname>Lucas</surname>
            <given-names>B. R.</given-names>
          </string-name>
          <string-name>
            <surname>Oliveira</surname>
          </string-name>
          .
          <article-title>Characterizing Architecture Description Languages for Software-Intensive Systems-of-Systems</article-title>
          .
          <source>In Proceedings of the third international workshop on software engineering for systems-of-systems</source>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <surname>Robert</surname>
            <given-names>Heim</given-names>
          </string-name>
          , Oliver Kautz, Jan Oliver Ringert, Bernhard Rumpe, and
          <string-name>
            <given-names>Andreas</given-names>
            <surname>Wortmann</surname>
          </string-name>
          .
          <article-title>Retrofitting Controlled Dynamic Reconfiguration into the Architecture Description Language MontiArcAutomaton</article-title>
          .
          <source>In Software Architecture - 10th European Conference (ECSA'16)</source>
          , volume
          <volume>9839</volume>
          <source>of LNCS</source>
          , pages
          <fpage>175</fpage>
          -
          <lpage>182</lpage>
          , Copenhagen, Denmark,
          <year>December 2016</year>
          . Springer.
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <surname>Xiangyang</surname>
            <given-names>Jia</given-names>
          </string-name>
          , Shi Ying, Honghua Cao, and
          <string-name>
            <given-names>Donghui</given-names>
            <surname>Xie</surname>
          </string-name>
          .
          <article-title>A New Architecture Description Language for Service-Oriented Architecure</article-title>
          .
          <source>In Sixth International Conference on Grid and Cooperative Computing</source>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <surname>Ackbar</surname>
            <given-names>Joolia</given-names>
          </string-name>
          , Thais Batista, Geoff Coulson, and Antonio T.A.
          <string-name>
            <surname>Gomes</surname>
          </string-name>
          .
          <article-title>Mapping ADL Specifications to an Efficient and Reconfigurable Runtime Component Platform</article-title>
          .
          <source>In 5th Working IEEE/IFIP Conference on Software Architecture</source>
          ,
          <year>2005</year>
          .
          <source>WICSA</source>
          <year>2005</year>
          .,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <surname>Rohit</surname>
            <given-names>Khare</given-names>
          </string-name>
          , Michael Guntersdorfer, Peyman Oreizy, Nenad Medvidovic, and Richard N. Taylor. xADL:
          <article-title>Enabling Architecture-Centric Tool Integration with XML</article-title>
          .
          <source>In Proceedings of the 34th Annual Hawaii International Conference on System Sciences</source>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <surname>David</surname>
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Luckham</surname>
            and
            <given-names>James</given-names>
          </string-name>
          <string-name>
            <surname>Vera</surname>
          </string-name>
          .
          <article-title>An Event-Based Architecture Definition Language</article-title>
          .
          <source>IEEE Transactions on Software Engineering</source>
          ,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <surname>Jeff</surname>
            <given-names>Magee</given-names>
          </string-name>
          , Naranker Dulay, Susan Eisenbach, and
          <string-name>
            <given-names>Jeff</given-names>
            <surname>Kramer</surname>
          </string-name>
          .
          <article-title>Specifying Distributed Software Architectures</article-title>
          .
          <source>In Proceedings of the 5th European Software Engineering Conference</source>
          ,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <surname>Ivano</surname>
            <given-names>Malavolta</given-names>
          </string-name>
          , Patricia Lago, Henry Muccini, Patrizio Pelliccione, and
          <string-name>
            <given-names>Antony</given-names>
            <surname>Tang</surname>
          </string-name>
          .
          <article-title>What Industry Needs from Architectural Languages: A Survey</article-title>
          .
          <source>IEEE Transactions on Software Engineering</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <given-names>Nenad</given-names>
            <surname>Medvidovic</surname>
          </string-name>
          .
          <article-title>ADLs and Dynamic Architecture Changes</article-title>
          .
          <source>In Joint Proceedings of the Second International Software Architecture Workshop (ISAW-2) and International Workshop on Multiple Perspectives in Software Development (Viewpoints '96) on SIGSOFT '96 Workshops</source>
          ,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31]
          <string-name>
            <surname>Nenad</surname>
            <given-names>Medvidovic</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Eric M. Dashofy</surname>
            , and
            <given-names>Richard N.</given-names>
          </string-name>
          <string-name>
            <surname>Taylor</surname>
          </string-name>
          .
          <article-title>Moving architectural description from under the technology lamppost</article-title>
          .
          <source>Information and Software Technology</source>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          [32]
          <string-name>
            <given-names>Nenad</given-names>
            <surname>Medvidovic</surname>
          </string-name>
          and
          <string-name>
            <given-names>Richard N.</given-names>
            <surname>Taylor</surname>
          </string-name>
          . A Classification and
          <article-title>Comparison Framework for Software Architecture Description Languages</article-title>
          .
          <source>IEEE Transactions on Software Engineering</source>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          [33]
          <string-name>
            <given-names>Robin</given-names>
            <surname>Milner</surname>
          </string-name>
          .
          <article-title>Communicating and Mobile Systems: The -calculus</article-title>
          . USA: Cambridge University Press,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          [34]
          <string-name>
            <surname>Jelena</surname>
            <given-names>Mirkovic</given-names>
          </string-name>
          , Ted Faber, Paul Hsieh, Ganesan Malaiyandisamy, and
          <string-name>
            <given-names>Rashi</given-names>
            <surname>Malaviya</surname>
          </string-name>
          . DADL:
          <article-title>Distributed Application Description Language</article-title>
          .
          <source>USC/ISI Technical Report# ISI-TR-664</source>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          [35]
          <string-name>
            <given-names>Mubarak</given-names>
            <surname>Mohammad</surname>
          </string-name>
          and
          <string-name>
            <given-names>Vangalur</given-names>
            <surname>Alagar</surname>
          </string-name>
          .
          <article-title>A Formal Approach for the Specification and Verification of Trustworthy Component-Based Systems</article-title>
          .
          <source>Journal of Systems and Software</source>
          ,
          <volume>84</volume>
          (
          <issue>1</issue>
          ),
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          [36] Antonio Navarro Pe´rez
          <string-name>
            <given-names>and Bernhard</given-names>
            <surname>Rumpe</surname>
          </string-name>
          .
          <article-title>Modeling Cloud Architectures as Interactive Systems</article-title>
          .
          <source>In Proceedings of the 2nd International Workshop on Model-Driven Engineering for High Performance and Cloud Computing</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          [37]
          <string-name>
            <surname>Object</surname>
            <given-names>Management</given-names>
          </string-name>
          <string-name>
            <surname>Group. OMG Unified Modeling</surname>
          </string-name>
          <article-title>Language (OMG UML)</article-title>
          ,
          <source>Superstructure Version 2</source>
          <volume>.3</volume>
          (
          <issue>10</issue>
          -05-05),
          <year>2010</year>
          . http://www.omg. org/spec/UML/2.3/Superstructure/PDF/ [Online; accessed 2015-
          <volume>12</volume>
          -17].
        </mixed-citation>
      </ref>
      <ref id="ref38">
        <mixed-citation>
          [38]
          <string-name>
            <given-names>Flavio</given-names>
            <surname>Oquendo</surname>
          </string-name>
          .
          <article-title>-ADL: an Architecture Description Language based on the Higher-Order Typed -Calculus for Specifying Dynamic and Mobile Software Architectures</article-title>
          .
          <source>ACM SIGSOFT Software Engineering Notes</source>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref39">
        <mixed-citation>
          [39]
          <string-name>
            <given-names>M.</given-names>
            <surname>Ozkaya</surname>
          </string-name>
          and
          <string-name>
            <given-names>C.</given-names>
            <surname>Kloukinas</surname>
          </string-name>
          .
          <article-title>Are We There Yet? Analyzing Architecture Description Languages for Formal Analysis, Usability, and Realizability</article-title>
          .
          <source>In 2013 39th Euromicro Conference on Software Engineering and Advanced Applications</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref40">
        <mixed-citation>
          [40]
          <string-name>
            <surname>Jennifer</surname>
          </string-name>
          Pe´rez, Nour Ali, Jose A Cars´ı, and Isidro Ramos.
          <article-title>Designing software architectures with an aspect-oriented architecture description language</article-title>
          .
          <source>In International Symposium on Component-Based Software Engineering</source>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref41">
        <mixed-citation>
          [41]
          <string-name>
            <given-names>Pascal</given-names>
            <surname>Poizat</surname>
          </string-name>
          and
          <string-name>
            <surname>Jean-Claude Royer</surname>
          </string-name>
          .
          <article-title>A Formal Architectural Description Language based on Symbolic Transition Systems and Modal Logic</article-title>
          .
          <source>Journal of Universal Computer Science</source>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref42">
        <mixed-citation>
          [42]
          <string-name>
            <given-names>Jan</given-names>
            <surname>Oliver</surname>
          </string-name>
          <string-name>
            <surname>Ringert</surname>
          </string-name>
          , Alexander Roth, Bernhard Rumpe, and
          <string-name>
            <given-names>Andreas</given-names>
            <surname>Wortmann</surname>
          </string-name>
          .
          <article-title>Language and Code Generator Composition for ModelDriven Engineering of Robotics Component &amp; Connector Systems</article-title>
          .
          <source>Journal of Software Engineering for Robotics (JOSER)</source>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref43">
        <mixed-citation>
          [43]
          <string-name>
            <surname>Roshanak</surname>
            <given-names>Roshandel</given-names>
          </string-name>
          , Andre´ Van Der Hoek, Marija Mikic-Rakic, and
          <string-name>
            <given-names>Nenad</given-names>
            <surname>Medvidovic</surname>
          </string-name>
          .
          <article-title>Mae-a system model and environment for managing architectural evolution</article-title>
          .
          <source>ACM Trans. Softw</source>
          . Eng. Methodol.,
          <volume>13</volume>
          (
          <issue>2</issue>
          ):
          <fpage>240</fpage>
          -
          <lpage>276</lpage>
          ,
          <year>April 2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref44">
        <mixed-citation>
          [44]
          <string-name>
            <given-names>Jungwoo</given-names>
            <surname>Ryoo</surname>
          </string-name>
          and
          <string-name>
            <given-names>Hossein</given-names>
            <surname>Saiedian</surname>
          </string-name>
          .
          <article-title>AVDL: A highly adaptable architecture view description language</article-title>
          .
          <source>Journal of Systems and Software</source>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref45">
        <mixed-citation>
          [45]
          <string-name>
            <given-names>Mazeiar</given-names>
            <surname>Salehie</surname>
          </string-name>
          and
          <string-name>
            <given-names>Ladan</given-names>
            <surname>Tahvildari</surname>
          </string-name>
          .
          <source>Self-Adaptive Software: Landscape and Research Challenges. ACM Transactions on Autonomous and Adaptive Systems (TAAS)</source>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref46">
        <mixed-citation>
          [46]
          <string-name>
            <surname>Christian</surname>
            <given-names>Schlegel</given-names>
          </string-name>
          , Andreas Steck, and
          <string-name>
            <given-names>Alex</given-names>
            <surname>Lotz</surname>
          </string-name>
          .
          <article-title>Model-Driven Software Development in Robotics: Communication Patterns as Key for a Robotics Component Model</article-title>
          . In Introduction to Modern Robotics. iConcept Press,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref47">
        <mixed-citation>
          [47]
          <string-name>
            <surname>Robert</surname>
            <given-names>W Schwanke</given-names>
          </string-name>
          ,
          <article-title>Veronika A Strack, and Thomas WerthmannAuzinger</article-title>
          .
          <article-title>Industrial Software Architecture with Gestalt</article-title>
          .
          <source>In Proceedings of the 8th International Workshop on Software Specification and Design, page 176. IEEE Computer Society</source>
          ,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref48">
        <mixed-citation>
          [48]
          <string-name>
            <given-names>Vivek</given-names>
            <surname>Singhal</surname>
          </string-name>
          and
          <string-name>
            <given-names>Don S.</given-names>
            <surname>Batory</surname>
          </string-name>
          . P++
          <article-title>: a Language for Software System Generators</article-title>
          .
          <source>Technical report</source>
          , University of Texas at Austin, Department of Computer Sciences,
          <year>1993</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref49">
        <mixed-citation>
          [49]
          <string-name>
            <surname>Adel</surname>
            <given-names>Smeda</given-names>
          </string-name>
          , Adel Alti, and
          <string-name>
            <given-names>Abbdellah</given-names>
            <surname>Boukerram</surname>
          </string-name>
          .
          <article-title>An Environment for Describing Software Systems</article-title>
          .
          <source>WSEAS Transactions on Computers</source>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref50">
        <mixed-citation>
          [50]
          <string-name>
            <surname>Jeffrey J P Tsai and Kuang Xu</surname>
          </string-name>
          .
          <source>Architecture Specification of Multimedia Software Systems. In IEEE International Conference on Multimedia Computing and Systems</source>
          ,
          <year>1999</year>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref51">
        <mixed-citation>
          [51]
          <string-name>
            <surname>Naoyasu</surname>
            <given-names>Ubayashi</given-names>
          </string-name>
          , Jun Nomura, and
          <string-name>
            <given-names>Tetsuo</given-names>
            <surname>Tamai</surname>
          </string-name>
          .
          <article-title>Archface: A Contract Place Where Architectural Design and Code Meet Together</article-title>
          .
          <source>In Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering-Volume</source>
          <volume>1</volume>
          , pages
          <fpage>75</fpage>
          -
          <lpage>84</lpage>
          . ACM,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref52">
        <mixed-citation>
          [52]
          <string-name>
            <surname>Rob</surname>
            <given-names>van Ommering</given-names>
          </string-name>
          , Frank van der Linden, Jeff Kramer, and
          <string-name>
            <given-names>Jeff</given-names>
            <surname>Magee</surname>
          </string-name>
          .
          <article-title>The Koala Component Model for Consumer Electronics Software</article-title>
          .
          <source>IEEE Computer</source>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref53">
        <mixed-citation>
          [53]
          <string-name>
            <given-names>Rainer</given-names>
            <surname>Weinreich</surname>
          </string-name>
          and
          <string-name>
            <given-names>Georg</given-names>
            <surname>Buchgeher</surname>
          </string-name>
          .
          <article-title>Paving the Road for Formally Defined Architecture Description in Software Development</article-title>
          .
          <source>In Proceedings of the 2010 ACM Symposium on Applied Computing</source>
          , pages
          <fpage>2337</fpage>
          -
          <lpage>2343</lpage>
          . ACM,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref54">
        <mixed-citation>
          [54]
          <string-name>
            <surname>David</surname>
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Wile</surname>
          </string-name>
          .
          <source>Supporting the DSL Spectrum. Information Technology</source>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref55">
        <mixed-citation>
          [55]
          <string-name>
            <given-names>Qing</given-names>
            <surname>Wu</surname>
          </string-name>
          and
          <string-name>
            <given-names>Ying</given-names>
            <surname>Li</surname>
          </string-name>
          .
          <article-title>ScudADL: An Architecture Description Language for Adaptive Middleware in Ubiquitous Computing Environments</article-title>
          . In ISECS International Colloquium on Computing, Communication, Control, and
          <string-name>
            <surname>Management</surname>
          </string-name>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref56">
        <mixed-citation>
          [56]
          <string-name>
            <given-names>Qian</given-names>
            <surname>Zhang</surname>
          </string-name>
          .
          <source>Visual Software Architecture Description Based on Design Space. In International Conference on Quality Software</source>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>