<!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 Framework for Prototyping and Evaluating Self-adaptive Systems - A Research Preview</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Fabian Kneer</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Erik Kamsties</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Dortmund University of Applied Sciences and Arts</institution>
          ,
          <addr-line>Emil-Figge-Str. 42, 44227 Dortmund</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>[Context and motivation] In the last years, a considerable number of solutions were developed for self-adaptive systems (SAS). These solutions are based on a feedback loop (MAPE loop), but employ di erent approaches to realize the di erent facets of the feedback loop. For example, the models used for the analysis step di er (e.g., goalmodels, feature-models). [Question/problem] In order to build a selfadaptive system for a particular application, a researcher or practitioner has not only to implement the application itself, but also the feedback loop. That is, one has rst to select an appropriate solution from the literature and second to implement and evaluate the solution in the environment at hand. [Principal ideas/results] The goal of our work is to reduce the e ort for developing a SAS by providing a framework for prototyping and evaluation. This framework comprises (1) a set of open source implementations of selected approaches from which an engineer can choose, (2) a case study to execute the implementations, and (3) a set of metrics for data collection during execution. [Contribution] The engineer can use the framework as a sandbox to compare several approaches in order to make a more informed decision which approach to choose. Possibly, the prototypical implementation can also be used in the nal SAS implementation. This is a research preview that reports rst results about the implementation of selected approaches (1), setting up a case study (2), and it outlines concepts regarding evaluation (3).</p>
      </abstract>
      <kwd-group>
        <kwd>Self-adaptive systems</kwd>
        <kwd>case studies</kwd>
        <kwd>experimentation</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Following the ITU [10], the Internet of Things (IoT) is a global infrastructure for
the information society, enabling advanced services by interconnecting (physical
and virtual) things based on existing and evolving interoperable information
and communication technologies. A thing is an object of the physical world
(physical things) or the information world (virtual things), which is capable
of being identi ed and integrated into communication networks. A device is a
piece of equipment with the mandatory capabilities of communication and the
Copyright c 2016 for this paper by its authors. Copying permitted for private
and academic purposes.
optional capabilities of sensing, actuation, data capture, data storage, and data
processing. One key concern of systems operating in the IoT is to dynamically
adapt to changing environments, due uncertainties during requirements-, design-,
and run-time (see [12]).</p>
      <p>
        A self-adaptive system (SAS) contains a feedback loop to react on
uncertainties in the environment. This loop is called MAPE loop by IBM [
        <xref ref-type="bibr" rid="ref8">7</xref>
        ]: Monitor
- Analyze - Plan - Execute. As a rst step, a system has to monitor its
environment and context with software and hardware agents like sensors. Then this
information is ltered until an investigation-relevant phenomenon is detected.
The system has to analyze these measured properties to check the e ect on the
system requirements to verify if a change is required. Next, a plan is generated
which describes a reaction strategy on how to solve any potential issues. The
last step is to execute the con guration strategy via actuators of the system.
      </p>
      <p>A considerable number of concepts for self-adaptive systems has been
developed. From a practitioner's perspective, open implementations of the MAPE
feedback loop for prototyping purposes are missing. This is a show-stopper in
practice, as a practitioner would need to work through research papers in order
to build such a prototype. A researcher who is interested in the comparison,
extension and/or application of existing solutions to a new domain is in a similar
situation.</p>
      <p>In this research preview we suggest a prototyping and evaluation framework
for self-adaptive systems. The rst goal of the framework is to ease the
prototyping (and possibly development) of self-con guring systems. For this purpose,
the framework o ers implementations of selected approaches to SAS based on
the MAPE loop (e.g., based on feature models as suggest by Pascual et al. [11]).</p>
      <p>The second goal of the framework is to ease the evaluation of self-con guring
systems, to allow for instance benchmarks between di erent approaches. For this
purpose, the framework provides a case study drawn from the smart city domain,
and a set of metrics for evaluation. The framework is able to collect data on a
subset of the metrics at runtime about overall quality, e ort, and cost.</p>
      <p>The framework can be used in a number of ways on the given case study:
{ to understand a particular SAS approach,
{ to optimize the application of an approach, or
{ to compare approaches in a particular target environment.</p>
      <p>The following section reports on the related work regarding frameworks for
construction and approaches to evaluation of self-adaptive systems. Section 3
describes the design of our framework for prototyping and evaluation, the current
extent of implementation and rst experiences. Section 4 outlines the next steps
that we scheduled to complete the framework, and Section 5 concludes the paper
by describing one envisioned application scenario in more detail.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Related Work</title>
      <p>
        This section presents previous approaches to prototyping and evaluation of
selfadaptive systems. Several implementations of the MAPE loop have been
published [
        <xref ref-type="bibr" rid="ref6">5</xref>
        ]. IBM's Autonomic Computing Toolkit1 was introduced in 2004. The
toolkit provides a practical framework and reference implementation for
incorporating autonomic capabilities into software systems [
        <xref ref-type="bibr" rid="ref6">5</xref>
        ]. A so-called autonomic
manager can be build with the toolkit, which is a prototype of the MAPE loop
and can be used for analyzing logs of a managed application.
      </p>
      <p>
        With respect to evaluation, metrics have been published. Some authors
proposed metrics to compare SAS, for example McCann et al. [
        <xref ref-type="bibr" rid="ref10">9</xref>
        ]: (1a) Quality
of Service, (b) Cost, (c) Granularity/Flexibility, (d) Failure avoidance
(Robustness), (e) Degree of Autonomy, (f) Adaptivity, (g) Time to adapt and (h)
Reaction Time, (i) Sensitivity and (j) Stabilization.
      </p>
      <p>
        Gjorven et al. [
        <xref ref-type="bibr" rid="ref5">4</xref>
        ] view adaption as a service which results in the metric
Quality of Adaption (QoA). The authors de ned the following properties that
describe the QoA, (2a) safe adaption, (b) secure adaption, (c) optimal adaption,
(d) cost of adaption, (e) performance of adaption and (f) human in the loop.
      </p>
      <p>We surveyed the literature on metrics that are actually used to evaluate
selfadaptive and self-con guring systems and identi ed the following metrics: (3)
the number of needed recon gurations vs optimal number of recon gurations,
(4) resource usage (a) power consumption, (b) memory size, (c) execution time
of the optimization process or parts like initializations, (5) average satisfaction
of elements over a time interval, (6) impact on the target system (a) average
lines of code per module that must be change (b) average response time of the
target system.</p>
      <p>We observed that an approach is validated with an average of two metrics
out of the list above. Furthermore, the di erent approaches vary in the chosen
metrics. These facts make it di cult or even impossible to compare current
approaches given the information provided in the publications.</p>
      <p>Our framework follows previous work in that it supports to build a SAS. The
di erence lies in our goal also to evaluate and compare competing solutions.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Design and Implementation of the Framework</title>
      <p>
        The framework bases on experiences we made with the implementation of a
goaloriented (i*-based) approach to self-adaptive systems [
        <xref ref-type="bibr" rid="ref7">6</xref>
        ]. We developed a
generalized architecture for prototyping SAS in the spirit of a software product-line
(SPL), by an analysis of commonalities and di erences of approaches suggested
for SAS. We implemented a feature-orientated approach (Pascual et al. [11]) to
validate the initial architecture of the prototyping framework. The details of the
design, implementation, and rst experiences are described in the remainder of
this section.
      </p>
      <p>
        Design. Three important paradigms for self-con guring and adaptive systems
can be distinguished:
{ Goal Oriented Approaches e.g. Zanshin from Mylopoulos et al. [13]
1 Autonomic Computing Toolkit Home page: http://www.ibm.com/developerworks/
autonomic/r3/overview.html
{ Dynamic Decision Networks by Bencomo et al. [2]
{ Feature Models e.g. by Garcia-Galan et al. [
        <xref ref-type="bibr" rid="ref4">3</xref>
        ] or Pascual et al. [11]
      </p>
      <p>The focus of these approaches mostly lies on a better recon guration of the
system and also on a better decision about the need of a new con guration. This
means to identify the best con guration for the current system situation.</p>
      <p>The largest commonality is the architecture of the approaches to self-adaptive
systems that we currently analyzed. All of them are based on a feedback loop
(MAPE) that consists of the parts monitor (monitoring con guration), analyze
(on a Requirements model), plan (decision algorithm &amp; decision model or
elements) and execute. The di erences are in the way in which the di erent
activities of the MAPE feedback cycle are carried out:
1. An indicator for an adaption can be Quality of Service for service-oriented
systems or a variable (input, output, parameter) for embedded systems.
2. A monitor con guration can be a simple event-condition-action (ECA), an
assertion, or a domain assumption. A monitor con guration describes a fact
of the running systems that should be monitored because it can lead to a
recon guration or adaption.
3. Di erent models are used for the analyze activity such as goal models or
feature models. These models allow to represent requirements with alternative
realization strategies.
4. The decision making is based on quality values for di erent realization
strategies. For example in goal models, softgoals and contribution links are used
to compute quality values, which in turn are used generate a recon guration
plan.
5. The recon guration plan can be to increase or decrease values of variables
or activate or deactivate components, modules, or functions.</p>
      <p>The implementation of the framework presented in the following section is
based on this analysis of commonalities and di erences.</p>
      <p>Implementation. The prototyping framework is implemented in the Python
programming language as this language allows for a wide range of deployments
and is frequently used for prototyping (yet not limited to that purpose). The
framework contains components to implement the di erent activities of the
MAPE loop as well as further functions that are needed to build and run an
adaptive system.</p>
      <p>Fig. 1 shows the concept of the prototyping framework. Fundamentally, we
separate development time and runtime artifacts. The development time artifacts
represent additional aspects to be captured in the requirements phase. Runtime
artifacts are components required to build the SAS. To easy prototyping, some
runtime artifacts are generated from the development time artifacts. This process
is described in more detail in the subsection "Generator" on Page 6.</p>
      <p>We start the detailed discussion of the framework with the development time
artifacts. Self-con guring Requirements are requirements with changing
indicator values and also a status label that shows if the requirements is active or
disabled for a system situation. Indicators are measurable elements that are
gathered by hardware agents or software agents depending on the system. A
Monitor Con guration describe how an indicator is measured and how an
assured element change if the indicator change. A simple example is if the WLAN
connection (indicator) of a system fails a realization strategy that needs this
connection must be disabled. A Requirements Model contains the di erent
realization strategies of a system. The model must be validated to verify that a
con guration for a given situation is valid or an adaption has to be performed.
The implementation of a Validation Algorithm di ers because of the previous
mentioned di erent requirements models. The last component of the framework
is a Decision Model, which is used to nd the best con guration for the current
system situation. It contains all information to compute the value for a
realization strategy. The computing is done by the Decision Algorithm. The result of
the decision algorithm is a recon guration plan for the application.</p>
      <p>The prototyping framework provides a set of components from which can be
chosen to develop a self-adaptive system. At the time of writing it contains a
feature-oriented approach with utility functions to compute a con guration with
a genetic algorithm (see Pascual et al. [11]).</p>
      <p>The framework can be populated with further approaches. In order to give
an impression of the required e ort, we provide programming e ort data of the
feature-oriented approach mentioned above. The extension has taken about 3
man-week's and 1500 LoC:
{ ECA's are used for monitoring the system (400 LoC 3-4 Days )
{ Feature model is used as requirements model and representation of
alternative realization strategies (600 LoC 3-5 days )
{ Utility Table and - function are used to compute a con guration (200 LoC
3 Days)
{ A genetic algorithm is used to choose the \best" con guration (100 LoC 2</p>
      <p>Days)
{ Con guration example (150 LoC 1/2 day )
{ Simple Speci cation (1 textual requirement and feature model with 19
features) (200 LoC 1/2 day )
Generator. In order to ease the development of a prototype, a self-adaptive
system is partially generated. That is, during development time (see upper part
of Fig. 1), only the essential information for building the SAS is speci ed by the
user. When using the feature-oriented approach this is: indicators (variables of
the systems with a type), a feature model (di erent features of the systems and
variation points), ECA rules (indicator change event, boolean condition, change
action on a element, e.g. feature), utility function (table with utility values of
the di erent variations of the feature model).</p>
      <p>Probes for an application and the whole self-con guring framework (with
integrated MAPE loop), see bottom part Fig. 1 can now be generated out of
a speci cation. The indicators are used to generate probes for an application.
These probes are used by the self-con guring framework to monitor the
indicators and check the related ECA rules. The ECA description is used to generate
the rules of the ECA rule engine. An application that include the generated
probes can use the self-con guring systems to adapt the behavior to the
changing context.</p>
      <p>
        If the speci cation changes because new elements like indicators, ECA rules,
features or utility elements are added or elements are re ned for example an ECA
rule change, only the generation process is re-triggered and the new prototype
can be used for the system which contains the probes. Further details about the
generator concept are given in [
        <xref ref-type="bibr" rid="ref9">8</xref>
        ].
4
      </p>
    </sec>
    <sec id="sec-4">
      <title>Roadmap</title>
      <p>The next steps on our roadmap to complete the framework are described in the
following.</p>
      <p>
        Extension of Framework. Our next step is to re-implement our goal-oriented
approach to self-adaptive systems based on i* described in [
        <xref ref-type="bibr" rid="ref7">6</xref>
        ]. This will allow
for comparisons which are not possible at the time of writing.
      </p>
      <p>Case Study. Within the Internet of Things, we have identi ed smart cities
as an interesting domain for a case study. It is accessible to many readers, it
is complex, and comprises many di erent facets. A hardware demonstrator of a
smart public lighting systems is under development that includes dynamic street
lights which adapt there light color and light intensity to its environment and
also communicate with other systems for example to display free parking-lots in
navigation systems.</p>
      <p>Evaluation. A component for logging and monitoring metrics is under
development. Given the overall structure of our framework shown in Fig. 1, the data
on the following metrics can be automatically collected:
{ Cost : Some possible indicators are memory size, CPU or power consumption.
{ Failure Avoidance: how much time elapse until a failure is xed.
{ Human in the loop/ Degree of Autonomy : count of the interaction with a
user over a speci ed time interval.
{ Optimal Adaption: collect the satisfaction of con gurations and count of
adaptations during a speci ed time interval. Build the average of these values
and compare the values with a de ned ideal state.
{ Adaption/ Reaction Time: execution time of an adaption process.
{ Safe Adaption: count of failures (e.g. real-time constrains of an embedded
system) that are produced because of an adaption.
{ Stabilization: that is the time taken from a change in the systems
environment to stabilize the operations of a system.</p>
      <p>The evaluation is limited to the metrics that can be captured at runtime.
5</p>
    </sec>
    <sec id="sec-5">
      <title>Envisioned Usage of Framework</title>
      <p>Under the assumption that a researcher has developed a SAS prototype (using
feature models, ECAs, and a utility function as described before), we sketch in
this section a scenario for evaluation.</p>
      <p>Measurement is an established discipline in software engineering and there is
a large consensus that measurement has to conducted in an goal-oriented fashion.
The Goal-Question-Metric paradigm [1] is one approach to systematically derive
metrics from measurement goals.</p>
      <p>A goal for a researcher could be to analyze the decision process of the MAPE
loop for the purpose to understand with the focus on performance of the
decision process from the perspective of a researcher in the context of an SAS
implementation on a Raspberry Pi. Following the GQM approach, questions are
derived to capture quality factors and factors that are hypothesized to in uence
the quality factors. Questions are further re ned into metrics. Table 1 shows a
possible GQM measurement model for this evaluation.
6</p>
    </sec>
    <sec id="sec-6">
      <title>Conclusion</title>
      <p>In this research preview we outlined a prototyping and evaluation framework for
self-adaptive systems (SAS) and sketched its application. The architecture of the
framework is based on the MAPE loop and it will o er a number of components
implementing di erent approaches to SAS.</p>
      <p>One major bene t of the framework is to ease the development of
selfadaptive systems by a code generator and components that can be used out
Metrics
Question
Metrics
Question
Metrics
M1
M2
Q2
M3
M4
M5
Q3
M6
M7</p>
      <p>Understand the performance of decision process.</p>
      <p>What is the current adaption and decision processing
performance
Average execution time
Average execution time of the decision process
What resources are currently used by the decision process
related to the adaption process
Average memory size of addeacipstiioonnpprroocceessss 100
Average power consumption of addeacipstiioonnpprroocceessss 100
Average CPU load of addeacipstiioonnpprroocceessss 100
What is the current quality of the adaption process
Average utility</p>
      <p>Average number of adaptations
of the box. That is, the user of the framework is able to focus on the
application itself and on the de nition of the adaptation requirements in the selected
formalism (e.g., feature models or goal models). The framework may also serve
as a basis for 3rd party implementations.</p>
      <p>The other major bene t is to provide a common basis for evaluation of
approaches to SAS. For this purpose, a component is currently added the
framework that automates data collection at execution time. The metrics that could
be collected with the help of the framework were outlined.</p>
      <p>As this paper is a research preview we have not paid much attention to
validation. Yet, one major question to answer is how much e ort the framework
actually saves in prototyping a SAS.</p>
      <p>Finally, we believe that commonly available, open-source implementations of
self-adaptive systems help to promote the eld. Therefore, it is planed to make
the framework open source and publicly available using GitHub, when it has
passed a rst validation.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <string-name>
            <given-names>V. R.</given-names>
            <surname>Basili</surname>
          </string-name>
          , G. Caldiera, and
          <string-name>
            <given-names>H. D.</given-names>
            <surname>Rombach</surname>
          </string-name>
          . \
          <article-title>The Goal Question Metric Approach"</article-title>
          . In: Encyclopedia of Software Engineering. Wiley,
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <article-title>In: Requirements Engineering: Foundation for Software Quality</article-title>
          . Ed. by
          <string-name>
            <given-names>J.</given-names>
            <surname>Doerr</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Opdahl</surname>
          </string-name>
          . Vol.
          <volume>7830</volume>
          . Lecture Notes in Computer Science.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          Springer Berlin Heidelberg,
          <year>2013</year>
          , pp.
          <volume>221</volume>
          {
          <fpage>236</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>J.</given-names>
            <surname>Garc</surname>
          </string-name>
          a-Galan,
          <string-name>
            <given-names>L.</given-names>
            <surname>Pasquale</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Trinidad</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A. R.</given-names>
            <surname>Cortes</surname>
          </string-name>
          . \
          <article-title>User-centric adaptation of multi-tenant services: preference-based analysis for service recon guration"</article-title>
          .
          <source>In: 9th International Symposium on Software Engineering for Adaptive</source>
          and
          <string-name>
            <surname>Self-Managing</surname>
            <given-names>Systems</given-names>
          </string-name>
          ,
          <string-name>
            <surname>SEAMS</surname>
          </string-name>
          <year>2014</year>
          , Proceedings, Hyderabad, India, June 2-3,
          <year>2014</year>
          .
          <year>2014</year>
          , pp.
          <volume>65</volume>
          {
          <fpage>74</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>E.</given-names>
            <surname>Gjorven</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Eliassen</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Aagedal</surname>
          </string-name>
          . \
          <article-title>Quality of Adaptation"</article-title>
          .
          <source>In: Autonomic and Autonomous Systems</source>
          ,
          <year>2006</year>
          . ICAS '
          <volume>06</volume>
          . 2006 International Conference on.
          <year>2006</year>
          , pp.
          <volume>9</volume>
          {
          <fpage>9</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>M. C.</given-names>
            <surname>Huebscher</surname>
          </string-name>
          and
          <string-name>
            <surname>J. A. McCann.</surname>
          </string-name>
          \
          <article-title>A Survey of Autonomic Computing - Degrees, Models, and Applications"</article-title>
          .
          <source>In: ACM Comput. Surv. 40.3</source>
          (
          <issue>2008</issue>
          ),
          <volume>7</volume>
          :
          <issue>1</issue>
          {7:
          <fpage>28</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>E.</given-names>
            <surname>Kamsties</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Kneer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Voelter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Igel</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Kolb</surname>
          </string-name>
          . \
          <article-title>Feedback-Aware Requirements Documents for Smart Devices"</article-title>
          . In: Requirements Engineering:
          <article-title>Foundation for Software Quality</article-title>
          . Ed. by
          <string-name>
            <given-names>C.</given-names>
            <surname>Salinesi</surname>
          </string-name>
          and
          <string-name>
            <given-names>I.</given-names>
            <surname>Weerd</surname>
          </string-name>
          . Vol.
          <volume>8396</volume>
          . Lecture Notes in Computer Science. Springer International Publishing,
          <year>2014</year>
          , pp.
          <volume>119</volume>
          {
          <fpage>134</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>J. O.</given-names>
            <surname>Kephart</surname>
          </string-name>
          and
          <string-name>
            <given-names>D. M.</given-names>
            <surname>Chess</surname>
          </string-name>
          . \
          <article-title>The Vision of Autonomic Computing"</article-title>
          .
          <source>In: Computer 36.1</source>
          (
          <issue>2003</issue>
          ), pp.
          <volume>41</volume>
          {
          <fpage>50</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>F.</given-names>
            <surname>Kneer</surname>
          </string-name>
          and
          <string-name>
            <surname>E. Kamsties.</surname>
          </string-name>
          \
          <article-title>Model-based Generation of a Requirements Monitor"</article-title>
          .
          <source>In: Joint Proceedings of REFSQ-2015 Workshops</source>
          , Research Method Track, and
          <article-title>Poster Track co-located with the 21st International Conference on Requirements Engineering: Foundation for Software Quality (REFSQ</article-title>
          <year>2015</year>
          ), Essen, Germany, March
          <volume>23</volume>
          ,
          <year>2015</year>
          .
          <year>2015</year>
          , pp.
          <volume>156</volume>
          {
          <fpage>170</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>J.</given-names>
            <surname>McCann</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Huebscher</surname>
          </string-name>
          . \
          <article-title>Evaluation Issues in Autonomic Computing"</article-title>
          .
          <source>English</source>
          . In: Grid and
          <string-name>
            <surname>Cooperative Computing - GCC</surname>
          </string-name>
          <year>2004</year>
          Workshops. Ed. by
          <string-name>
            <given-names>H.</given-names>
            <surname>Jin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Pan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Xiao</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Sun</surname>
          </string-name>
          . Vol.
          <volume>3252</volume>
          . Lecture Notes in Computer Science. Springer Berlin Heidelberg,
          <year>2004</year>
          , pp.
          <volume>597</volume>
          {
          <fpage>608</fpage>
          . \
          <article-title>Overview of the Internet of things"</article-title>
          . In:
          <string-name>
            <surname>IUT-T Y</surname>
          </string-name>
          .
          <year>2060</year>
          (
          <year>2012</year>
          ). G. G. Pascual,
          <string-name>
            <given-names>M.</given-names>
            <surname>Pinto</surname>
          </string-name>
          , and
          <string-name>
            <given-names>L.</given-names>
            <surname>Fuentes</surname>
          </string-name>
          . \
          <article-title>Run-time adaptation of mobile applications using genetic algorithms"</article-title>
          .
          <source>In: Proceedings of the 8th International Symposium on Software Engineering for Adaptive and SelfManaging Systems</source>
          , SEAMS 2013, San Francisco, CA, USA, May
          <volume>20</volume>
          -21,
          <year>2013</year>
          .
          <year>2013</year>
          , pp.
          <volume>73</volume>
          {
          <fpage>82</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          <string-name>
            <given-names>A.</given-names>
            <surname>Ramirez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Jensen</surname>
          </string-name>
          , and B. Cheng. \
          <article-title>A taxonomy of uncertainty for dynamically adaptive systems"</article-title>
          .
          <source>In: Software Engineering for Adaptive and Self-Managing Systems (SEAMS)</source>
          ,
          <source>2012 ICSE Workshop on. 2012</source>
          , pp.
          <volume>99</volume>
          {
          <fpage>108</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          <string-name>
            <given-names>V. E. Silva</given-names>
            <surname>Souza</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Lapouchnian</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W. N.</given-names>
            <surname>Robinson</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Mylopoulos</surname>
          </string-name>
          . \
          <article-title>Awareness Requirements for Adaptive Systems"</article-title>
          .
          <source>In: Proceedings of the 6th International Symposium on Software Engineering for Adaptive and Self-Managing Systems. SEAMS '11</source>
          .
          <string-name>
            <surname>Waikiki</surname>
            , Honolulu,
            <given-names>HI</given-names>
          </string-name>
          , USA: ACM,
          <year>2011</year>
          , pp.
          <volume>60</volume>
          {
          <fpage>69</fpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>