<!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>Model-Driven Design of Ensemble-Based Component Systems</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Faculty of Mathematics and Physics Charles University in Prague Malostranske Namesti 25</institution>
          ,
          <addr-line>11800, Prague</addr-line>
          ,
          <country country="CZ">Czech Republic</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>In this research abstract we describe our approach towards the design of ensemble-based component systems. Our motivation lies in the fact that, in these systems, tracing the behavior of individual constituents to system-level goals and requirements is challenging. Our approach is based on a novel invariant-based model that achieves the desired traceability. Along with using the model in a method that allows for systematic contractual design, we employ the model at runtime to achieve dynamic adaptation on the basis of requirements re ection.</p>
      </abstract>
      <kwd-group>
        <kwd>ensembles</kwd>
        <kwd>invariants</kwd>
        <kwd>system design</kwd>
        <kwd>traceability</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>In the beginning, things were not going well. The heavy storm had damaged the
network infrastructure so heavily that temperature and moisture sensors on the
tarmac could not communicate with their base stations any longer. This meant
that continuous analysis of tarmac condition had to stop until the network cables
were back in place and sensors started providing fresh measurements to the base
stations. In face of the danger of failing in their task to disseminate the sensed
data, the sensors switched to ad-hoc communication mode: they propagated their
data to software modules inside the vehicles heading towards the base stations;
the vehicles acted as network relays for the ad-hoc network and \augmented"
sensors for the base stations. Even with considerable delays compared to the
default mode, the system managed to keep a su cient level of operation stability.</p>
      <p>
        Although developing a software-intensive cyber-physical system (siCPS) [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]
such as the above road sensing system is already technically feasible, there are
challenges related to streamlining the design and development of such systems.
      </p>
      <p>
        DEECo component model [
        <xref ref-type="bibr" rid="ref1 ref4">1,4</xref>
        ] has been proposed within the ASCENS FP7
project [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] as a modeling approach suitable for the development of siCPS. A
DEECo application consists of a number of components and interaction
templates, based on which dynamic component groups { ensembles [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] { are
established at runtime. A DEECo component comprises state (referred to as
knowledge) and processes which periodically read and/or update its knowledge, similar
1 ensemble PropagateTemperatureToVehicles:
2 coordinator: TemperatureSensor
3 member: Vehicle
4 membership:
5 distance(coordinator.position, member.position) &lt; THRESHOLD
6 exchange:
7 member.temperatureMap (coordinator.id, coordinator.temperature)
8 scheduling: periodic( 15 secs )
to processes in a real-time system. Interaction is allowed only between
components within an ensemble and takes the form of knowledge exchange. An
ensemble de nition (Fig. 1) speci es (i) a membership condition, i.e., under which
condition (evaluated on components' knowledge) one coordinator and potentially
many member components should interact, and (ii) an exchange function, i.e.,
which knowledge exchange should be performed within the established group.
We view DEECo as an instantiation of the new class of ensemble-based
component systems (EBCS), and use it to demonstrate our EBCS design approach.
      </p>
      <p>The problem in EBCS is that it is di cult to associate the low-level
concepts of periodic computation and conditional knowledge exchange to
systemlevel goals and requirements applicable in di erent operational contexts. This
problem manifests itself both at design time and at runtime. At design time the
challenge is: \How to design an ensemble-based system so that its
situationspeci c system-level goals are consistently mapped to implementation-level
artifacts?"; at runtime the challenge becomes: \How to trace the runtime behavior
to situation-speci c system-level goals to achieve runtime compliance checking?".</p>
      <p>The objective of this research is thus to investigate the design dimension of
ECBS and propose a model that provides dependability (in the form of
traceability to system-level goals) and adaptability (in the form of adjusting to di erent
operational contexts/situations). We aim for using the model both to guide the
design of EBCS (Sect. 2.1), and to achieve runtime compliance checking and
model-based adaptation (Sect. 2.2).
2</p>
    </sec>
    <sec id="sec-2">
      <title>Approach: Invariant-Based Model</title>
      <p>
        Our approach is based on the observation that component processes and
knowledge exchange activities in EBCS are feedback loops that constantly maintain
the property of being within the bounds of normal operation { operational
normalcy. We have thus proposed the invariant concept to model the operational
normalcy at every time instant [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. Syntactically, an invariant is an expression
that relates the input and output knowledge of an (abstract) activity, e.g.
\Vehicle's V belief over sensor S::temperature { V::temperatureMap { is updated every
30 secs.". A key assumption here is that system-level goals in EBCS can also
be described declaratively and thus modeled with the invariant construct. For
instance, one such high-level invariant in our running example is \Temperature
readings must reach the base stations within 120 secs".
      </p>
      <p>M1 level</p>
      <p>IRM-SA design
model
M2M
transf.</p>
      <p>DEECo design</p>
      <p>model
M2T
transf.
cSkoemleptoonnesnotfsDanEdECo Udseevdeilnopsmysetenmt
ensembles</p>
      <p>Design time Runtime</p>
      <p>Traceability</p>
      <p>model
Generated
atstartup</p>
      <p>IRM-SA runtime</p>
      <p>model
Generated atruntime by
knowledge valuation of
active components</p>
      <p>DEECo runtime</p>
      <p>model
Generated atstartup, kept
in syncwithEMF listeners</p>
      <p>Running System</p>
      <p>DEECo runtime
metamodel
conforms to
Predicate logic
formula</p>
      <p>Solver
Processes torun
M2 level</p>
      <p>IRM-SA design
metamodel
conforms to</p>
      <p>DEECo design
metamodel
conforms to</p>
      <p>Traceability
metamodel
conforms to</p>
      <p>IRM-SA runtime
metamodel
conforms to</p>
      <p>
        Armed with the invariant concept, we have proposed the Invariant-Re nement
Method for Self-Adaptation { IRM-SA [
        <xref ref-type="bibr" rid="ref13 ref5">5,13</xref>
        ], whose goal is to link high-level
invariants (corresponding to system-level goals) to low-level ones (corresponding
to concrete activities of the software system). The output of the method is the
IRM-SA design model ; this model can be used (i) to generate DEECo code
skeletons via the series of model transformations depicted on the left part of Fig. 2
and (ii) to enable online checking of invariant satisfaction and system adaptation
via a models@runtime approach (illustrated on the right part of Fig. 2).
2.1
      </p>
      <sec id="sec-2-1">
        <title>Design with IRM-SA</title>
        <p>In this section we present the design process of IRM-SA. It is a mixed
topdown/bottom-up iterative process where invariants are re ned into sub-invariants
by means of decomposition (e.g. structural elaboration). The process comprises:
1. Identi cation of the top-level goals and speci cation of top level invariants
of the system-to-be, e.g. invariant [i1] in Fig. 3.
2. Identi cation of the design components by asking \which knowledge does
each invariant involve and where is this knowledge obtained from?". At the
design stage, a component is a participant/actor of the system-to-be,
comprising internal state. In our example, the identi ed components are the
TemperatureSensor, BaseStation, and Vehicle.
3. Decomposition of each non-leaf invariant by asking \how can this invariant
be satis ed?". Leaf invariants are either process invariants (e.g. invariant
[p1]) or exchange invariants (e.g. invariant [e2]) that can be mapped 1-to-1 to
component processes or ensemble de nitions, respectively. For instance, the
exchange invariant [e2] can be mapped to the
PropagateTemperatureToVehicles ensemble of Fig. 1.
4. Identi cation of any other activities that have to be performed in the system
and speci cation of invariants out of them (not demonstrated here).
5. Composition of dangling invariants together by asking \why do we need to
satisfy these invariants?". This step is also not demonstrated in our example.
6. Capturing of the situation that conditions every situation-speci c invariant
using assumptions (e.g. invariant [a1]). An assumption is a special type of
invariant that is expected to be maintained by the environment.
7. Identi cation of alternative (OR) decompositions according to the di erent
situations identi ed at step 6. In our example, the right-most part of the
top-level decomposition is OR-decomposed to capture the fact that di erent
invariants should hold when a BaseStation is out of direct reach.</p>
        <p>The IRM-SA design process is backed up by a prototype design tool (used
to produce the IRM-SA model of Fig. 3) and a Java code generation tool, based
on Eclipse's EMF and Epsilon toolchains; both are accessible via http://d3s.
mff.cuni.cz/projects/components_and_services/irm-sa/.
2.2</p>
      </sec>
      <sec id="sec-2-2">
        <title>Runtime compliance checking and adaptation</title>
        <p>
          To check which invariants hold at runtime and adapt the system accordingly,
we follow a models@runtime approach [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ]. As a rst step, the running system
is re ected into an architectural model (DEECo runtime model in Fig. 2) that
captures the running component processes and established ensembles. Along
with a traceability model, which contains the mapping between design and
runtime artifacts, DEECo runtime model is used to generate another model that
captures the runtime state at the requirements level (IRM-SA runtime model ).
This is basically an instantiation of the IRM-SA design model in which design
components are mapped to concrete component instances and invariants are
associated with boolean values. This is done by associating the invariants and the
computable assumptions to monitors (implemented as Boolean methods in Java)
that evaluate the condition under which each invariant is considered to hold.
        </p>
        <p>
          The second step involves reasoning on the generated IRM-SA runtime model.
As an illustration of one possible way to do this, we are translating the model
into a predicate logic formula which can be automatically evaluated by a solver
(we use Sat4j [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ]). The result of the solver is then used to enact changes on the
DEECo runtime model (currently by starting/stopping processes corresponding
to invariants chosen in the OR-decompositions), which are eventually propagated
to the running system, as illustrated on the right-most part of Fig. 2.
        </p>
        <p>A proof-of-concept implementation of IRM-SA-based adaptation is accessible
via http://d3s.mff.cuni.cz/projects/components_and_services/irm-sa/.
On-going work. We are currently investigating (i) the fuzzi cation of invariant
evaluation to achieve more ne-grained control, and (ii) more elaborate
adaptation actions (e.g. changing a component's period at runtime). To evaluate our
approach we are conducting experiments to measure the applicability of our
adaptation loop in practical settings (e.g. in face of frequent component
disconnections). We have also designed and conducted a pilot of a controlled experiment
(empirical study) to evaluate the e ectiveness of the IRM-SA process.
3</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Related Work</title>
      <p>
        Systematic elaboration of requirements has been advocated by goal-oriented
requirements engineering approaches, such as KAOS [
        <xref ref-type="bibr" rid="ref15 ref7">7,15</xref>
        ] and Tropos [
        <xref ref-type="bibr" rid="ref3 ref9">3,9</xref>
        ].
Although we draw inspiration from them we di erentiate in the following [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]:
(i) neither KAOS nor Tropos are tailored for ensemble-based systems, whereas
IRM-SA provides a direct translation to the implementation-level concepts of
autonomous components and ensembles; (ii) compared to KAOS, the objective
of the IRM-SA method is not to create requirements documents (e.g., SRS),
but software architectures; (iii) compared to Tropos, which also supports design
of dynamic systems, IRM-SA concepts (i.e., invariants) do not focus on future
states (like goals in Tropos), but on knowledge evaluation at every time instant,
tting better the design of feedback loop-based systems.
      </p>
      <p>
        Our approach towards adaptation ts into the conceptual model proposed by
Kramer and Magee [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], where the IRM-SA model stands as a domain-speci c
goal management layer. Our adaptation mechanism also follows the proposals
for explicit representation of requirements as runtime entities [
        <xref ref-type="bibr" rid="ref2 ref6">2,6</xref>
        ].
      </p>
      <p>
        Compositional de nition of architecture con gurations based on individual
variation points and runtime recon guration is also employed in Dynamic
Software Product Lines [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. Our main di erence is that, in IRM-SA, decomposition
carries the formal semantics of re nement, i.e., in an AND (resp. OR)
decomposition the conjunction (resp. disjunction) of the children entails the parent.
Acknowledgments. The research leading to these results has received funding
from the European Union Seventh Framework Programme
FP7-PEOPLE-2010ITN under grant agreement no264840.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Al</surname>
            <given-names>Ali</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            ,
            <surname>Bures</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            ,
            <surname>Gerostathopoulos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I.</given-names>
            ,
            <surname>Hnetynka</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            ,
            <surname>Keznikl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>Kit</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Plasil</surname>
          </string-name>
          ,
          <string-name>
            <surname>F.</surname>
          </string-name>
          :
          <article-title>DEECo: An Ecosystem for Cyber-Physical Systems</article-title>
          .
          <source>In: Companion Proc. of ICSE'14</source>
          ,
          <string-name>
            <surname>Hyderabad</surname>
          </string-name>
          , India. pp.
          <volume>610</volume>
          {
          <fpage>611</fpage>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (Jun
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Bencomo</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Whittle</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sawyer</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Finkelstein</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Letier</surname>
          </string-name>
          , E.:
          <article-title>Requirements Re ection: Requirements as Runtime Entities</article-title>
          .
          <source>In: Proc. of ICSE '10</source>
          ,
          <string-name>
            <surname>Cape</surname>
            <given-names>Town</given-names>
          </string-name>
          , South Africa. pp.
          <volume>199</volume>
          {
          <fpage>202</fpage>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Bresciani</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Perini</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Giorgini</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Giunchiglia</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mylopoulos</surname>
          </string-name>
          , J.:
          <source>Tropos: An Agent-Oriented Software Development Methodology. Autonomous Agents and Multi-Agent Systems</source>
          <volume>8</volume>
          (
          <issue>3</issue>
          ),
          <volume>203</volume>
          {236 (May
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Bures</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gerostathopoulos</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hnetynka</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Keznikl</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kit</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Plasil</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>DEECo { an Ensemble-Based Component System</article-title>
          .
          <source>In: Proc. of CBSE'13</source>
          , Vancouver, Canada. pp.
          <volume>81</volume>
          {
          <fpage>90</fpage>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (Jun
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Bures</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gerostathopoulos</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hnetynka</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Keznikl</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kit</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Plasil</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Plouzeau</surname>
          </string-name>
          , N.:
          <article-title>Adaptation in Cyber-Physical Systems: from System Goals to Architecture Con gurations</article-title>
          .
          <source>Tech. rep., D3S-TR-2014-01</source>
          , Charles University (
          <year>Jan 2014</year>
          ), http://d3s.mff.cuni.cz/publications/download/D3S-TR-2014-01.pdf
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6. Cheng, B., et al.:
          <article-title>Software Engineering for Self-Adaptive Systems: A Research Roadmap</article-title>
          . In: Cheng, B.,
          <string-name>
            <surname>de</surname>
            <given-names>Lemos</given-names>
          </string-name>
          , R.,
          <string-name>
            <surname>Giese</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Inverardi</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Magee</surname>
            ,
            <given-names>J</given-names>
          </string-name>
          . (eds.)
          <article-title>Software Engineering for Self-Adaptive Systems</article-title>
          , LNCS, vol.
          <volume>5525</volume>
          , pp.
          <volume>1</volume>
          {
          <fpage>26</fpage>
          . Springer Berlin Heidelberg (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Dardenne</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Van Lamsweerde</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fickas</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Goal-directed requirements acquisition</article-title>
          .
          <source>Science of Computer Programming</source>
          <volume>20</volume>
          (
          <issue>April</issue>
          ),
          <volume>3</volume>
          {
          <fpage>50</fpage>
          (
          <year>1993</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Gerostathopoulos</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bures</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hnetynka</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          : Position Paper:
          <article-title>Towards a Requirements-Driven Design of Ensemble-Based Component Systems</article-title>
          .
          <source>In: Proc. of HotTopiCS workshop of ICPE'13</source>
          . pp.
          <volume>79</volume>
          {
          <fpage>86</fpage>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (Apr
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Giorgini</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kolp</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mylopoulos</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pistore</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>The Tropos Methodology: An Overview</article-title>
          .
          <source>In: Methodologies and Software Engineering for Agent Systems</source>
          , pp.
          <volume>89</volume>
          {
          <fpage>106</fpage>
          . Kluwer Academic Publishers (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Hinchey</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Park</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schmid</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <source>Building Dynamic Software Product Lines. Computer</source>
          <volume>45</volume>
          (
          <issue>10</issue>
          ),
          <volume>22</volume>
          {26 (Oct
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11. Holzl,
          <string-name>
            <surname>M.</surname>
          </string-name>
          , et al.:
          <article-title>Engineering Ensembles: A White Paper of the ASCENS Project</article-title>
          .
          <source>ASCENS Deliverable JD1.1</source>
          (
          <issue>2011</issue>
          ), Online: http://www.ascens-ist.eu/ whitepapers
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12. Holzl,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Rauschmayer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Wirsing</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          :
          <article-title>Engineering of Software-Intensive Systems: State of the Art and Research Challenges</article-title>
          . In: Wirsing,
          <string-name>
            <surname>M.</surname>
          </string-name>
          , Bana^tre,
          <string-name>
            <surname>J.P.</surname>
          </string-name>
          , Holzl,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Rauschmayer</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          . (eds.)
          <source>Software-Intensive Systems and New Computing Paradigms, LNCS</source>
          , vol.
          <volume>5380</volume>
          , pp.
          <volume>1</volume>
          {
          <fpage>44</fpage>
          . Springer Berlin Heidelberg (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Keznikl</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bures</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Plasil</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gerostathopoulos</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hnetynka</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hoch</surname>
          </string-name>
          , N.:
          <article-title>Design of Ensemble-Based Component Systems by Invariant Re nement</article-title>
          .
          <source>In: Proc. of CBSE'13</source>
          , Vancouver, Canada. pp.
          <volume>91</volume>
          {
          <fpage>100</fpage>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (Jun
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Kramer</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Magee</surname>
            ,
            <given-names>J.: A Rigorous</given-names>
          </string-name>
          <string-name>
            <surname>Architectural</surname>
          </string-name>
          <article-title>Approach to Adaptive Software Engineering</article-title>
          .
          <source>Journal of Computer Science and Technology</source>
          <volume>24</volume>
          (
          <issue>2</issue>
          ),
          <volume>183</volume>
          {
          <fpage>188</fpage>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Lamsweerde</surname>
            ,
            <given-names>A.V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Darimont</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Letier</surname>
          </string-name>
          , E.:
          <article-title>Managing Con icts in Goal-Driven Requirements Engineering</article-title>
          .
          <source>IEEE Trans. on Soft. Engin</source>
          .
          <volume>24</volume>
          (
          <issue>11</issue>
          ),
          <volume>908</volume>
          {
          <fpage>926</fpage>
          (
          <year>1998</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Le Berre</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Parrain</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>The Sat4j library, release 2.2</article-title>
          .
          <source>Boolean Modeling and Computation</source>
          <volume>7</volume>
          ,
          <issue>59</issue>
          {
          <fpage>64</fpage>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Morin</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Barais</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jezequel</surname>
            ,
            <given-names>J.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fleurey</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Solberg</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Models at Runtime to Support Dynamic Adaptation</article-title>
          .
          <source>Computer</source>
          <volume>42</volume>
          (
          <issue>10</issue>
          ),
          <volume>44</volume>
          {
          <fpage>51</fpage>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>