<!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>Correct by Prognosis: Methodology for a Contract-based Refinement of Evolution Models ?</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Christoph Etzien</string-name>
          <email>christoph.etzien@offis.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Tayfun Gezgin</string-name>
          <email>tayfun.gezgin@offis.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>OFFIS</institution>
          ,
          <addr-line>Escherweg 2, 26121 Oldenburg</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>The scope of this paper is collaborative, distributed safety critical systems which build up a larger scale system of systems (SoS). Systems in this context are independently designed and can operate autonomously following both global SoS goals and individual goals. A major aspect of SoSs is the evolution over time, i.e. the change of its architecture as a result of changes in the context of the SoS or the changes of individual or global goals. The aim of this paper is to define a modeling concept for evolution specifying all possible changes of the SoS over time. This evolution model is used to generate and analyze future architectures enabling the prediction of future violations of static specifications. We derive so called dynamicity contracts and restrict the evolution model in such a manner, that false architectures are not reached.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        SoS. The main characteristic we are interest in is the evolutionary development,
i.e. the change of the architecture of an SoS during its lifetime. A model for the
evolutionary development can be created based on prognosis on possible future
evolutions of the SoS. As an example, statistical data could be used to do a
prognosis on the future traffic density in a district of a city. We propose graph
grammars to model the possible evolutions of an SoS. These transformations
could also be specified via temporal logics as we proposed in [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. However, the
specification with graph grammars is more intuitive than temporal logic.
      </p>
      <p>
        Graph grammars describe the adaption to a context change in form of
transformation rules. With these transformation rules the inter-connections of the
constituent systems and thereby their roles and interaction protocols are changed.
The trigger of such transformation rules are the constituent systems itself: When
systems adapt or change their local goals and thus affect their local behavior,
change their services offered to the environment, or need some services from their
local environment, a request to change some parts of the SoS architecture are
triggered from the corresponding constituent systems. In [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] we already discussed
the initiations for transformation rules from constituent systems.
      </p>
      <p>
        Besides the evolution model, we will consider static specifications of SoSs by
contracts defining invariants and constraints on the architecture of the SoS. An
example for a static contract is that systems applying inconsistent roles should
not co-operate. The set of static contracts of an SoS defines all legal
architectures of this SoS. Beginning with an initial SoS architecture, the evolution model
successively generates a set of successor architectures. Transformations are
applied locally resulting in sequences of transformations which could lead to an
architecture violating the static contracts. In this paper, we derive so called
dynamicity contracts which restrict the dynamics of the evolution model of the SoS
to prevent the SoS entering an architecture which violates its static specification.
We extend this approach by tolerating a finite set of intermediate architectures,
which violate the static specifications. These intermediate architectures have to
be left finally and a safe architecture has to be reached within a specified
number of changes. The idea to allow temporarily intermediate faulty architectures
is inspired by the fault tolerance time intervals defined in the ISO 26262 [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
After the occurrence of a fault, a safe system state has to be reached within a
defined time interval. If this interval exceeded, an hazardous event could occur.
      </p>
      <p>
        To model the static architecural part of an SoS we use the UPDM framework
[
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. UPDM is a unified Profile for DoDAF (Department of Defence Architecture
Framework) and MODAF (Ministry of Defence Architectural Framework). It
supports the capabilities to model architectures of complex systems, system of
systems, and service oriented architectures. Beside milestones, no dynamicity
aspects of systems of systems were considered in this framework.
1.1
      </p>
      <sec id="sec-1-1">
        <title>Related work</title>
        <p>
          In [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ] a method for modeling and analyzing the dynamicity for multi-hop ad hoc
networks was presented. Statistical estimation theory was applied to model the so
called configuration of a multi-hop wireless network. In [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ] a supporting model
called dynamicity aware graph relabeling system is introduced. This model is
used for ad-hoc networks to take mobility into account. Ultra large scale systems
are the topic of [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ], where the main characteristics are captured and specified,
e.g. decentralized control, conflicting requirements, and continuous evolution.
In [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] some major issues in self-coordinating systems are depicted. The main
statement is that a tight integration of all disciplines in the development process
of such large scale self-coordinating systems has to be established. An approach
for the design and analysis of multi-agent systems was presented in [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]. Agents are
able to sense and manipulate specific aspects of the environment. Sets of agents
form community types, which interact in the modeled environment with some
interaction specifications. In [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] self-adaptive systems were presented. Initially
a system architecture with defined components, their interfaces, and a set of
coordination pattern is given. Coordination pattern define protocols between
components via roles. Reconfigurations are defined via graph transformation
rules and are initiated by environmental changes.
        </p>
        <p>
          Automatic verification of the real-time behavior including the reconfiguration
is supported by CHARON [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ], Masaccio [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ], and Mechatronic UML [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]. There
are some approaches for modeling the structural aspects of adaptive systems [
          <xref ref-type="bibr" rid="ref14 ref15">14,
15</xref>
          ] or the behavioral aspects [
          <xref ref-type="bibr" rid="ref16 ref17">16, 17</xref>
          ] but none of them consider both aspects.
1.2
        </p>
      </sec>
      <sec id="sec-1-2">
        <title>Outline</title>
        <p>The following section introduces the fundamentals of our work, i.e. the considered
modeling formalism called UPDM, the contract-based specification formalism,
and the formalisms needed to express transformations. Section 3 illustrates our
approach to derivate dynamicity contracts in order to prevent the SoS to evolve
in architectures which violate its static specification. In Section 4 we illustrate our
implementation and give some example scenarios. Finally, Section 5 concludes
the paper and discusses some further work.
2</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>Fundamentals</title>
      <p>The basic modeling elements of our approach are components as structural
elements, and graph grammars. Our components are enriched by so called contracts,
specifying the allowed context of a component and its guaranteed behaviour.
Components and contracts are detailed in the following section.
2.1</p>
      <sec id="sec-2-1">
        <title>Contract-based Modelling</title>
        <p>
          We use Heterogenous Rich Components (HRCs) [
          <xref ref-type="bibr" rid="ref18 ref19">18, 19</xref>
          ] to model systems and
its artifacts in a black box manner. The dynamics of an HRC can be specified by,
e.g., an external behavior model. For each HRC a set of specifications in terms of
contracts [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ] is defined. A contract is a pair consisting of an assumption (A) and
a guarantee (G). The assumption specifies how the context of the component,
i.e. the environment from the point of view of the component, should behave.
Only if the assumption holds, then the component will behave as guaranteed.
The system decomposition can be verified with respect to contracts without the
knowledge of the concrete implementation. The specification of both
assumptions and guarantees can be provided based on a pattern based language like
introduced in [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ].
        </p>
        <p>
          Having a formal specification for the component and its sub-components the
so called Virtual Integration Test (VIT) [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ] can be performed. It is called virtual
because no implementation for the sub-components or any testbed is required.
This analysis is performed based on the specifications, the interfaces, the
connections, and the structure of the composition. This test checks if the composition
of the sub-component contracts implies the contracts of the surrounding
component. In this work we assume that the components are implemented according
to their contracts and call an architecture valid iff the VIT is successful.
2.2
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>Rewriting Rules</title>
        <p>An architecture of an SoS is a composition of CSs at a specific time, where roles
and inter-connections of all systems are specified. Changes of an architecture of
the SoS are defined by a set of rewriting rules. Rewriting rules consist of a left
hand side and a right hand side corresponding to architectures of the SoS. In
this work, rewriting rules restructure the architecture of an SoS by composing or
separating system instances in a well-defined way, and applying the right roles
to the corresponding systems. So, a single transformation affects a subset of
participating system instances, their inter-connections, roles, and modes. In the
following, we will formalize the concept of graphs and rewriting rules.</p>
        <p>A graph is defined as a tuple G = (V; E; s; t) where V is a set of vertices, E is
a set of edges and s; t are a source and a target function defined as fs; tg : E ! V:
Let L; R be two graphs. A rewriting rule r : L ! R is defined in such a way, that
whenever an instance of L, called match, is found in a graph G, this instance can
be replaced through an instance of R leading to the transformed graph G0: For
two graphs H; G let h : H ! G be a graph homomorphism, mapping nodes and
edges of H to G: The homomorphism consists of two functions hV : VH ! VG
and hE : EH ! EG; such that G hE = hV H ; with = fs; tg: A rule
r : L ! R can be applied to a graph G leading to a changed graph G0; in short
d : G !r G0; if there exist two homomorphisms h1; h2; such that h1 : L ! G
and h2 : R ! G0: In Section 3 we will apply a set of rewriting rules specifying
the dynamic behaviour of an SoS.
2.3</p>
      </sec>
      <sec id="sec-2-3">
        <title>Modeling the SoS</title>
        <p>
          System of systems (SoS) consist of several constituent systems (CS) which are
instances of systems or even SoSs themselves. To distinguish between complex
systems and SoSs Maier proposed five criteria for the "SoS-ness" of a complex
system, which are introduced in the following [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]:
– Operational independence of elements : The CSs can operate independently.
– Managerial independence of the elements : The CSs are separately acquired
by different managerial entities.
– Evolutionary development : An SoS evolves over time, developing its
capabilities as the CSs are changed, added, or removed.
– Emergent behavior : The SoS itself offers additional services beyond the
capabilities of the CSs including unexpected and potentially damaging behaviors.
– Geographic distribution: The geographical extent of the CSs could be “large”.
We focus on the evolutionary development aspect of SoS and therefore
concentrate not only on the architecture at a specific time but also on the evolution of
the CSs and their re-configurations. We distinguish two levels of behavior, i.e.
system dynamics, and evolution. System dynamics deal with the question, how
systems exchange data via their inter-connections. The topic evolution poses the
question, how systems and their inter-connections are changed over time.
        </p>
        <p>System dynamics are covered by the UML/SysML behavioral models and
diagrams, e.g. state charts. We use contracts to specify the assumed and
guaranteed behavior of each CS.</p>
        <p>We address the evolutionary development and extend the milestone-based
representation of SoSs in UPDM. A milestone represents an architecture of the
SoS at a specific point in time. We will focus on the system view which basically
represents systems itself, their resource roles and inter-connections. The SV-1
allows to characterize the inter-connections of the CSs for a single architecture.
The milestone plan (AV-2) is the planed evolution of the SoS taking the entire
life-cycle of the CS into account. This plan is created manually and explicitly
since each milestone consists of an entire SoS architecture.</p>
        <p>The problem we address is that the owners or managers of the CSs follow
their own goals, and change or influence changes of their CSs independently from
a central authority. We define goal as an optimization metric which represents
how good (or bad) a CS (or an SoS) performs. These values can be statically
computed for an architecture of the SoS, or depend on the system dynamics
and are measured during execution. The owners of a CS are assumed to monitor
this values and decide to change the behavior or connectivity of their CS to
improve their goals. This change might take place on the CS level by switching
into another mode or on the SoS level by changing the inter-connections to other
CSs. In the first case this behavior is part of the CS specification and covered
by the contracts of the CS. In the second case the change is beyond the system
borders of the CS and therefore not in the scope of the specification of the system
dynamics. The evolution behavior of the SoS is based on changes which might
impact the dynamics of the SoS.
3</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>From Evolution Model to Contracts</title>
      <p>
        A model for an SoS consists of an initial architecture, a static specification and
an evolution behaviour. As said before, evolution behaviors define the possibility
of re-configuring a given architecture as a result of e. g. changing
environmental conditions, or some adaption of cooperations between a set of systems. We
will apply graph grammars to model such a behaviour. The benefit of the usage
of evolution models is the possibility to generate and analyze future
architectures enabling the prediction of future violations of specifications. Changes of a
given SoS can be explored before they occur in reality in order to prevent
invalid architectures of the SoS. Typically an infinite number of architectures will
be generated by graph grammars. In our concept, we will apply the concept of
bounded model-checking, i.e. we will only consider a finite number of
architectures reached by a grammar specification. This also has a practical relevance,
as in general the evolution model shall only predict the possible behaviour for a
finite time frame instead of an infinite time frame. To obtain a finite set of
architectures, we could apply abstraction techniques like the Partner Abstraction
introduced in [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ].
3.1
      </p>
      <sec id="sec-3-1">
        <title>Derivation of Evolution Contracts</title>
        <p>G0
r0,...,rn,rm,rk</p>
        <p>Gh
r0,...,rk
r0,...,rn</p>
        <p>Gk
Gn
...</p>
        <p>Gn
rm
rj Gn+3
... Gm+2</p>
        <p>G0
rk</p>
        <p>...
rj
..</p>
        <p>r0,...,rk
r0,...,rn</p>
        <p>Gh</p>
        <p>Gk
Gn</p>
        <p>...</p>
        <p>r0,...,rn,rm,rk
cnew: (A: Gn+1 /\ (r0,...,rm) , G: !rk)</p>
        <p>...</p>
        <p>Gn+1
rm
rj Gn+3
rj
. .</p>
        <p>The concept of dynamicity contracts complements the static contracts for the
SoS and constituent systems. The static contracts restrict the allowed behaviour
of the overall SoS and each system, whereas the dynamicity contracts restrict
the dynamics of the evolution model of the SoS.</p>
        <p>Starting from an initial architecture each reached architecture is analyzed if
it is valid. If invalid architectures are reached, a dynamicity contract is derived in
such a way, that the evolution model is prevented to generate this architecture.
Thereby, the assumption part of a dynamicity contract encapsulates the
architecture, from which a violating one can be reached by the application of a rule
defined in the evolution model. The guarantee part then consists of the negation
of the corresponding identifier of the rule. Further, we extend this approach by
allowing intermediate architectures, which violate the static specifications, if a
valid architecture is reached after “some time”. In this work, we require that a
specified number of successive invalid architectures may be tolerated, and after
this number a valid architecture has to be reached. In future work, we will extend
this approach by specifying some allowed time frames.</p>
        <p>Consider the example of Figure 1, where the initial architecture G0 can evolve
to different future architectures by applying an evolution model consisting of a
set of rewriting rules r: Assume that we allow that during the evolution maximal
a single architecture may be reached which violates the static contracts. On the
left part of the figure the initial situation is depicted, where no restrictions exist
so far for our evolution model. If the sequence of rules r0; :::rn; rm is applied,
we can reach the architecture Gn+1 which violates the static specification. If we
would now apply rule rk we would again get an architecture violating the static
specification. In order to restrict our evolution model we derive the contract
illustrated in the right part of Figure 1. The contract states, that whenever we are
in an architecture isomorph to Gn+1 and we previously applied the sequence of
rules r0; :::; rm; the rule rk will not be applied. Note, that we need the
architecture within the assumption part, as rewriting rules are non-deterministic. The
sequence of rules r0; :::; rm can also lead to some architectures not violating the
static contracts as illustrated in Figure 1.</p>
        <p>Next, we define our applied graph grammar formalism, and formalize the
derivation of dynamicity contracts.</p>
        <p>Graph Grammars Let w = r0; :::; rn; ::: be a word over an alphabet ;
pre(w; n) = r0; :::; rn be its prefix consisting of n+1 symbols, and w(n) = rn 2
the (n + 1) th symbol. A dynamicity contract is a contract talking about graphs
and prefixed of words: The assumption (A) part of a dynamicity contract c
consists of a (possibly empty) finite prefix of a word w and a graph G; its guarantee
(G) consists of a symbol in ; in short c : (A : pre(w; i 1) ^ Gi; G: ! ) for some
i 2 N with 2 : The intuition is that whenever a finite sequence of symbols
pre(w; i 1) is received and the graph Gi is reached, the next symbol shall not
be : With these dynamicity contracts we will restrict graph grammars in such
a way, that through the successive application of rules it always holds, that no
graph can be reached violating some static specifications.</p>
        <p>A graph grammar is a tuple G = (G0; R; CD) where G0 is a start graph,
R = fr0; :::; rkg is the set of rewriting rules (each with an unique identifier), and
CD is the set of dynamicity contracts, which may be empty at design time. In
the next section we detail the iterative extension of this set. A graph grammar
can be translated to a finite ! automaton TE = (S; so; ; !); where S is a set
of graphs corresponding to the set of states, s0 the initial state, an alphabet
consisting of the identifiers of the rules in R, and ! S S the transition
relation. All states are considered to be accepting ones.</p>
        <p>A run of TE over an infinite word w = r0; :::; rn; ::: is an infinite sequence
of graphs G0 !r0 ::: !rn Gn; !rn+1 ::: such that G0 is the initial graph and
(Gi; ri; Gi+1) 2! for all i; j 2 N; for which holds that (A : pre(w; i 1) ^
Gi; G : !w(i)) 2= CD: The language of a graph grammar is defined as the set of
words accepted by its finite automaton.</p>
        <p>Derivation of Dynamicity Contracts A specification for an SoS is given by
the tuple SoS = (G; Cs) where G is a graph grammar specifying the evolution
model, and Cs a set of static contracts defining the allowed SoS behaviour. In
general, the evolution model specified through the concept of graph grammars is
not initially consistent with the static specification specified as a set of contracts,
as rewriting rules are applied locally resulting in sequences of rules which could
lead to a graph violating the static contracts. This can happen because the
application of a rule does not check whether the reached graph harms a static
contract. In order to make the evolution model consistent with respect to the
contract specification, such paths have to be removed from the evolution model.
For this we derive new dynamicity contracts from these paths.</p>
        <p>The easiest case is given, when a direct application of a rule violates a static
contract and no intermediate architectures violating contracts are allowed. For
such cases we can derive a dynamicity contract consisting of the current
architecture G as the assumption part, and the negation of the identifier of the
corresponding rule for the guarantee part. That is, we extend our dynamicity
contract set CD of G with the contract f(A : G; G : )g; if there exists a rule
: L ! R in G; and G ! G0 could be applied, such that G0 6j= Cs:</p>
        <p>With this extension the graph grammar will be prevented by firing rule
when an isomorphic graph to G is present. If violating graphs are accepted
temporarily, e.g. a finite amount of time, or a finite number of violating graphs,
we need to extend such dynamicity contracts with the history which lead to
a corresponding architecture. In this work, we will only consider the maximal
successive number of incorrect intermediate architectures, i.e. architectures
violating the static specification.</p>
        <p>Let 2 N be the maximal number of successive graphs violating the static
specification, which is defined to be tolerable. Let pre(w; n) = r0; :::; rn be a
prefix of a word, for which there exists a run = G0 !r0 ::: !ri Gi::: !rn Gn
of the automaton of G; such that Gi; :::; Gn 6j= Cs and jfGi; :::; Gngj &gt; : Then
we derive the following dynamicity contract and extend the set CD as follows:
CD [ f(A : Gn 1 ^ pre(w; n
1); G : !w(n))g:
(1)
Note that a word w could result in a set of runs instead a single run. In this case
our new dynamicity contracts are correct in the sense, that no legal evolutions
resulting in graphs which all fulfill the static contracts are excluded. This is
because the assumption part exactly states, that a rule shall not be applied if a
specific architecture is given.
4</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Application of Methodology</title>
      <p>To illustrate our approach we consider an emergency response scenario,
consisting of a set of constituent systems like fire stations and fire brigades. All
CSs participating in this SoS shall behave cooperative in order to minimize the
needed time for an operation in case of an emergency.</p>
      <p>
        We use a new custom diagram via an additional profile which allows to model
rewriting rules graphically in IBM Rational Rhapsody c . These diagrams allow
to add placeholders which refer to model elements of the Rhapsody UPDM
model. This reference mechanism ensures that the model itself and the rewriting
rules are clearly separated. The rules contain four different kinds of graphical
elements for each CSs and their inter-connections, i.e. Reader, Creator, Eraser
and Embargo. Reader elements are unchanged elements of a corresponding rule.
Creator elements represent newly generated elements on the right hand side of
the rule. Eraser elements address elements of the left hand side which are
removed via the rule application. Embargo elements restrict the applicability of
the rule if the match can be extended by these elements. The Rhapsody model
including its rules are exported to GXL[
        <xref ref-type="bibr" rid="ref24">24</xref>
        ] files which are the input language
of the GROOVE[
        <xref ref-type="bibr" rid="ref25">25</xref>
        ] tool. GROOVE is used for the generation of architecture
alternatives and is also able to perform the isomorphism check of the generated
architectures. After applying GROOVE we get a set of architectures, and the
corresponding network representing the applied rules. As an example consider
(a) Rhaposody
(b) GROOVE
Figure 2 and 3. The purpose of the fire service is to delete fire at any location
within a city and to save the involved people. The time between the incident
harms people and the treatment begins is critical for the recovery of the injured.
Therefore the goal of the fire service is to minimize the time between the
notification and the arrival of the right amount of units to treat the injured people
at the incident location. Increasing traffic density typically extends this time
frame and might require to send units from locations with a larger geographical
distance but lower distance in travel time. To improve this, one option is to
increase the number of units like fire brigades but this is only partially possible.
Another option is to increase the awareness of the fire head quarter about the
required number (and kind) of units at the location. This can be achieved by
improving the communication technology, in this scenario the change from the
current TETRA 1) to the LTE2) communication technology. The application of
such a rule leading to an architectural change is illustrated in Figure 3(b). In
1 TETRA: Terrestrial Trunked Radio, ETSI EN 300 392-2 v3.2.1
2 LTE: Long-Term Evolution
Fig. 3: Rule Translation: Rules in Rhapsody (a) are automatically translated into
rules in GROOVE (b)
this example, the evolution model contains only a very small set of architectures
because the rule is only applicable once per fire brigade and the number of fire
brigades is low. If one would add a rule adding fire brigades to the model the
number of architectures would be infinite. In the complete model several fire
stations are coordinated by one head quarter and also the number of fire brigades
is higher. Since the fire brigades are coordinated by the different fire stations
and must cooperate during operation it is essential that those brigades use the
same communication network. If each brigade is updated to the new
technology individually, invalid architectures are possible which can be characterized
as (at least) two brigades coordinated by the same fire station using different
networks. The evolution must be restricted to avoid those architectures.
Typically not all those constraints can be derived from reasoning about architectural
pattern only but the reachable architectures have to be analyzed including the
system dynamics. This can be done via simulation or static analysis (e.g.
timing analysis as proposed in [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]). The results of the analysis are annotated to
the reachable architectures and support the identification of contracts for the
evolution itself.
      </p>
      <p>In the left part of Figure 4 a network of reachable architectures is illustrated.
In the right part of Figure 4 a (simplified) network of architectures is presented.
For this network the invalid architectures are marked in red. From this
network global constraints are derived which restrict the application of rules. These
conditions are the previous architectures of any edge ending in an invalid
architecture. The evolution contract takes this condition as assumption and the
negated invalid architecture as guarantee.
5</p>
    </sec>
    <sec id="sec-5">
      <title>Conclusion</title>
      <p>
        We presented a modeling concept for evolution specifying all possible changes
of the SoS over time as an extension of the UPDM framework. We introduced
a novel approach for deriving dynamicity contracts restricting such evolution
models in order to prevent reaching invalid architectures with respect to the
static specification of an SoS. Our prototype implementation offers so far an
export mechanism from UPDM models created with Rhapsody to GROOVE, and
feed back the generated architecture alternatives to Rhapsody. For the
generated models we can apply our previously introduced virtual integration checker
[
        <xref ref-type="bibr" rid="ref26">26</xref>
        ] and manually derive dynamicity contracts. Currently, we aim to close this
loop, i.e. the generation of architectures and calling the verification back end
to automatically generate dynamicity contracts. In future work we also plan to
include the notion of time for the evolution models to enable reasoning about
timing constraints for the evolution.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>W.</given-names>
            <surname>Maier</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          :
          <article-title>Architecting principles for systems-of-systems</article-title>
          .
          <source>In: Inc. Systems Engineering</source>
          . Volume
          <volume>1</volume>
          . (
          <year>1998</year>
          )
          <fpage>267</fpage>
          -
          <lpage>284</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Etzien</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gezgin</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fröschle</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Henkler</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rettberg</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Contracts for evolving systems</article-title>
          .
          <source>In: SORT - The Fourth IEEE Workshop on Self-Organizing Real-Time Systems. (06</source>
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3. ISO26262: Road vehicles - functional
          <string-name>
            <surname>safety</surname>
          </string-name>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4. Group,
          <string-name>
            <surname>O.M.</surname>
          </string-name>
          <article-title>In: Unified Profile for DoDAF and MODAF</article-title>
          . (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Hamlili</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Morocco</surname>
            ,
            <given-names>R.:</given-names>
          </string-name>
          <article-title>A common computational approach analyzing dynamicity and connectivity for reliable communications in multihop wireless networks</article-title>
          .
          <source>In: Int. Conf. on Models of Information and Communication Systems</source>
          . ICST Alliance
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Casteigts</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chaumette</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Dynamicity aware graph relabeling systems (da-grs), a local computation based model to describe manet algorithms</article-title>
          .
          <source>In: IASTED PDCS. In proceeding of: International Conference on Parallel and Distributed Computing Systems</source>
          , PDCS, Phoenix, AZ, USA (
          <year>2005</year>
          )
          <fpage>231</fpage>
          -
          <lpage>236</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Northrop</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Feiler</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          , Gabriel,
          <string-name>
            <given-names>R.P.</given-names>
            ,
            <surname>Goodenough</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>Linger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            ,
            <surname>Longstaff</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            ,
            <surname>Kazman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            ,
            <surname>Klein</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Schmidt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            ,
            <surname>Sullivan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            ,
            <surname>Wallnau</surname>
          </string-name>
          ,
          <string-name>
            <surname>K.</surname>
          </string-name>
          :
          <article-title>Ultra-Large-Scale Systems - The Software Challenge of the Future</article-title>
          .
          <source>Technical report, Software Engineering Institute</source>
          , Carnegie Mellon (
          <year>June 2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Schäfer</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Birattari</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Blömer</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dorigo</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Engels</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>O</given-names>
            <surname>'Grady</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            ,
            <surname>Platzner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Rammig</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            ,
            <surname>Reif</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            ,
            <surname>Trächtler</surname>
          </string-name>
          ,
          <string-name>
            <surname>A.</surname>
          </string-name>
          :
          <article-title>Engineering self-coordinating software intensive systems</article-title>
          .
          <source>In: Proceedings of the Foundations of Software Engineering (FSE) and NITRD/SPD Working Conference on the Future of Software Engineering Research</source>
          (FoSER
          <year>2010</year>
          ).
          <article-title>(</article-title>
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Giese</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Klein</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Systematic verification of multi-agent systems based on rigorous executable specifications</article-title>
          .
          <source>Int. J. Agent-Oriented Softw. Eng</source>
          .
          <volume>1</volume>
          (
          <year>2007</year>
          )
          <fpage>28</fpage>
          -
          <lpage>62</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Henkler</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hirsch</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Priesterjahn</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schäfer</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          :
          <article-title>Modeling and verifying dynamic communication structures based on graph transformations</article-title>
          .
          <source>In: GI Software Engineering</source>
          . (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Ivancic</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Modeling and Analysis of Hybrid Systems</article-title>
          .
          <source>PhD thesis</source>
          , University of Pennsylvania (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Henzinger</surname>
            ,
            <given-names>T.A.</given-names>
          </string-name>
          :
          <article-title>Masaccio: A formal model for embedded components</article-title>
          .
          <source>In: IFIP International Conference on Theoretical Computer Science (TCS)</source>
          ,
          <source>LNCS1872</source>
          , Springer,
          <fpage>549</fpage>
          -
          <lpage>563</lpage>
          . (
          <year>2000</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Burmester</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Giese</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tichy</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Model-Driven Development of Reconfigurable Mechatronic Systems with Mechatronic UML</article-title>
          . In Assmann, U.,
          <string-name>
            <surname>Rensink</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Aksit</surname>
          </string-name>
          , M., eds.:
          <article-title>Model Driven Architecture: Foundations and Applications</article-title>
          . LNCS, Springer Verlag (
          <year>2005</year>
          )
          <fpage>1</fpage>
          -
          <lpage>15</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Métayer</surname>
            ,
            <given-names>D.L.</given-names>
          </string-name>
          :
          <article-title>Software architecture styles as graph grammars</article-title>
          .
          <source>In: SIGSOFT '96: Proceedings of the 4th ACM SIGSOFT symposium on Foundations of software engineering</source>
          , New York, NY, USA, ACM (
          <year>1996</year>
          )
          <fpage>15</fpage>
          -
          <lpage>23</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Kramer</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Magee</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sloman</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>Configuring distributed systems</article-title>
          .
          <source>In: EW 5: Proceedings of the 5th workshop on ACM SIGOPS European workshop</source>
          , New York, NY, USA, ACM (
          <year>1992</year>
          )
          <fpage>1</fpage>
          -
          <lpage>5</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Allen</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Douence</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Garlan</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Specifying and analyzing dynamic software architectures</article-title>
          .
          <source>Lecture Notes in Computer Science</source>
          <volume>1382</volume>
          (
          <year>1998</year>
          )
          <fpage>21</fpage>
          -
          <lpage>36</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Kramer</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Magee</surname>
          </string-name>
          , J.:
          <article-title>Analysing dynamic change in software architectures: A case study</article-title>
          .
          <source>In: CDS '98: Proceedings of the International Conference on Configurable Distributed Systems</source>
          , Washington, DC, USA, IEEE Computer Society (
          <year>1998</year>
          )
          <fpage>91</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Hungar</surname>
          </string-name>
          , H.:
          <article-title>Compositionality with strong assumptions, Mälardalen Real-Time Research Center (11</article-title>
          <year>2011</year>
          )
          <fpage>11</fpage>
          -
          <lpage>13</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Baumgart</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Böde</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Büker</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Damm</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ehmen</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gezgin</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Henkler</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hungar</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Josko</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Oertel</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Peikenkamp</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Reinkemeier</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stierand</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Weber</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          :
          <article-title>Architecture modeling</article-title>
          .
          <source>Technical report (03</source>
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20. Meyer, B.:
          <article-title>Applying "design by contract"</article-title>
          .
          <source>Computer</source>
          <volume>25</volume>
          (
          <issue>10</issue>
          ) (
          <year>1992</year>
          )
          <fpage>40</fpage>
          -
          <lpage>51</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>CESAR SP2</surname>
          </string-name>
          <article-title>Partners: Definition and exemplification of requirements specification language and requirements meta model</article-title>
          .
          <source>CESAR_D_SP2_R2</source>
          .2_
          <issue>M2</issue>
          _
          <fpage>v1</fpage>
          .000.pdf on http://www.cesarproject.eu/fileadmin/user_upload/ (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Damm</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hungar</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Josko</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Peikenkamp</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stierand</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>Using contractbased component specifications for virtual integration testing and architecture design</article-title>
          . In: Design, Aut. and Test in Europe (DATE
          <year>2011</year>
          .
          <article-title>1-6</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Bauer</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wilhelm</surname>
          </string-name>
          , R.:
          <article-title>Static analysis of dynamic communication systems by partner abstraction</article-title>
          . In Nielson,
          <string-name>
            <given-names>H.R.</given-names>
            ,
            <surname>File</surname>
          </string-name>
          , G., eds.:
          <source>Static Analysis, Int. Symposium</source>
          ,
          <string-name>
            <surname>SAS</surname>
          </string-name>
          <year>2007</year>
          .
          <article-title>Volume 4634 of LNCS</article-title>
          ., Springer (
          <year>2007</year>
          )
          <fpage>249</fpage>
          -
          <lpage>264</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>Winter</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kullbach</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Riediger</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          :
          <article-title>An overview of the gxl graph exchange language</article-title>
          .
          <source>In: Revised Lectures on Software Visualization</source>
          , International Seminar, London, UK, UK, Springer-Verlag (
          <year>2002</year>
          )
          <fpage>324</fpage>
          -
          <lpage>336</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <surname>Rensink</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>The groove simulator: A tool for state space generation</article-title>
          . In Pfaltz,
          <string-name>
            <given-names>J.L.</given-names>
            ,
            <surname>Nagl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Böhlen</surname>
          </string-name>
          , B., eds.:
          <article-title>Applications of Graph Transformations with Industrial Relevance (AGTIVE)</article-title>
          .
          <source>Volume 3062 of Lecture Notes in Computer Science</source>
          ., Berlin, Springer Verlag (
          <year>2004</year>
          )
          <fpage>479</fpage>
          -
          <lpage>485</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <surname>Gezgin</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Henkler</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stierand</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rettberg</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Impact analysis for timing requirements on real-time systems</article-title>
          .
          <source>In: Int. Conference on Embedded and RealTime Computing Systems and Applications (RTCSA</source>
          <year>2014</year>
          ). (To be published)
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>