<!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>Capturing Ambiguity in Artifacts to Support Requirements Engineering for Self-Adaptive Systems</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Juan C. Mun~oz-Fernandez</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Alessia Knauss</string-name>
          <email>Sweden.alessia.knauss@chalmers.se</email>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Lorena Castan~eda</string-name>
          <xref ref-type="aff" rid="aff6">6</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Mahdi Derakhshanmanesh</string-name>
          <email>mahdi.derakhshanmanesh@mhp.com</email>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Robert Heinrich</string-name>
          <email>heinrich@kit.edu</email>
          <xref ref-type="aff" rid="aff4">4</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Matthias Becker</string-name>
          <email>matthias.becker@iem.fraunhofer.de</email>
          <xref ref-type="aff" rid="aff5">5</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Nina Taherimakhsousi</string-name>
          <email>ninatag@uvic.ca</email>
          <xref ref-type="aff" rid="aff6">6</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>A Porsche Company</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>CRI, Universite Paris 1 Pantheon - Sorbonne</institution>
          ,
          <country country="FR">France</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Chalmers University of Technology</institution>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>Facultad de Ingenier a, Universidad Icesi</institution>
          ,
          <country country="CO">Colombia</country>
        </aff>
        <aff id="aff4">
          <label>4</label>
          <institution>Karlsruhe Institute of Technology</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
        <aff id="aff5">
          <label>5</label>
          <institution>Software Engineering Group</institution>
          ,
          <addr-line>Fraunhofer IEM</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
        <aff id="aff6">
          <label>6</label>
          <institution>University of Victoria</institution>
          ,
          <country country="CA">Canada</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Self-adaptive systems (SAS) automatically adjust their behavior at runtime in order to manage changes in their user requirements and operating context. To achieve this goal, a SAS needs to carry knowledge in artifacts (e.g., contextual goal models) at runtime. However, identifying, representing, and re ning requirements and their context to create and maintain such artifacts at runtime is a challenging task, especially if the runtime environment is not very well known. In this short paper, we present an early concept to requirements engineering for the implementation of SAS in the context of uncertainty. Especially the wide variety of knowledge materialized in artifacts created during software engineering activities at design time is considered. We propose to start with a list of ambiguous requirements - or under-speci ed requirements -, leaving the ambiguity in the requirements, which will in the later steps be resolved further as more information is known. In contrast to conventional requirements engineering approaches, not all ambiguous requirements will be resolved. Instead, ambiguities serve as key input for self-adaptation. We present ve steps for the resolution of the ambiguity. For each step, we describe its purpose, identi ed challenges, and resolution ideas.</p>
      </abstract>
      <kwd-group>
        <kwd>runtime requirements</kwd>
        <kwd>self-adaptive systems</kwd>
        <kwd>artifacts</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>and behavioral adaptation points explicitly (where, when, what, how). In
traditional RE approaches, a particular set of artifacts (e.g., requirements lists, goal
models, feature models, and statecharts) is created and managed by
requirements engineers. To achieve adaptation, a SAS must be aware of this knowledge
gathered at design-time to be able to adapt itself and carry the knowledge, e.g.,
in the form of models at runtime [2]. Furthermore, based on this knowledge, a
SAS can decide about the best suitable adaptation at runtime. In related work,
adaptive requirements have been introduced to explicitly de ne variation points
in requirements to leave room for adaptation [10].</p>
      <p>We propose to focus on the reuse of the knowledge contained by the set of
artifacts usually created and managed at design-time and to enable their
facilitation at runtime systematically. We de ne an artifact as a machine-readable
document relevant to requirements and context. A draft of the artifacts are
created by requirements engineers at design time, and they will be updated at
runtime.</p>
      <p>We start from a set of elicited requirements tolerating some degree of
ambiguity. We propose to keep on purpose the potentially contained ambiguity
captured in the requirements artifacts and to design and implement the
software without (entirely) resolving the ambiguity. We de ne the ambiguity as of
under-speci cation of requirements. Usually, resolving ambiguities is an essential
part of the traditional RE activities. In a SAS, however, we claim that
embracing ambiguity throughout software design and implementation is a major step
towards de ning and extending relevant context attributes for self-adaptation.
Nevertheless, only the ambiguity that leads to feasible variability points should
be maintained. For example, for autonomous vehicles, the requirements will be
re ned after the vehicle is developed (e.g., using continuous experimentation). A
SAS shall resolve contextually relevant ambiguity itself or with human help at
runtime. Runtime testing will then serve to guarantee that the detailed
requirements are implemented properly. This resolution requires an implementation
of the system without fully hard coding all choices, thereby leaving space for
runtime variability.</p>
      <p>Two aspects enable a SAS to adapt to emerging situations at runtime within
safe and secure bounds. On the one hand, the combination of knowledge about
ambiguity in requirements and its context (problem space). On the other hand,
foreseen adaptation points in the software itself (solution space).
2</p>
    </sec>
    <sec id="sec-2">
      <title>Guiding Artifact Centric RE Activities for SASs</title>
      <p>To guide software engineers during requirements engineering and design of SAS,
we propose an iterative and incremental approach comprising ve steps. Table
1 summarizes the steps and its associated artifacts. The steps are described in
the rest of this section.</p>
      <p>Step 1: Capture Requirements
This rst step starts with a traditional requirements elicitation activity at
design time resulting in a set of requirements. Some of these requirements can be
Step</p>
      <p>Activity</p>
      <p>Artifact
1 Capture requirements Speci cation (e.g., early goal models)
2 (Iter.) Identify variability points Model (e.g., late goal models)
3 (Iter.) Identify context Context model (e.g., ontologies)
4 (Iter.) Identify situations Situations model (e.g., reasoning support)
5 (Iter.) Design variability (solution space) Architecture models (e.g., component models)
ambiguous. The assumption here is that such ambiguities will be either resolved
by the SAS or with human participation at runtime. Therefore, it is crucial that
the requirements elicited in this step be documented or mapped to a
machinereadable notation (e.g., goal models). In later steps when more information on
the context is available, goal models can be extended to contextual goal models
[12] and use cases can be extended to adapt cases [7].</p>
      <p>Challenges: The consideration of leaving ambiguity in requirements: Some
types of ambiguity might need to be resolved, as they will not lead to any
adaptation needs (e.g., logical inconsistencies, stakeholders' interpretations) while
other types of ambiguity are necessary for the SAS variability at runtime.</p>
      <p>Ideas: De ne di erent categories of ambiguity and their e ect on adaptation
capabilities of a SAS through empirical investigations.</p>
      <p>
        Step 2: Identify Variability Points
The identi cation of ambiguities is an iterative process comprising three cases:
(
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) If a requirement is ambiguous in our accepted sense, a new variation of the
requirement is produced for each interpretation and is evaluated again. (
        <xref ref-type="bibr" rid="ref2">2</xref>
        ) If a
requirement is not ambiguous, then its variabilities are identi ed, and all
considerable behaviors are de ned as an alternative to the requirement. (
        <xref ref-type="bibr" rid="ref3">3</xref>
        ) If there is
no variability, then the requirement is considered as solid with only one expected
behavior. That behavior determines a system's state, and it is marked as valid
or not. It is important to store the older versions of a requirement as well as
invalid behaviors as system's knowledge. The initially de ned requirements can be
associated with a special type of requirements called architecturally signi cant
requirements (ASRs). ASRs should provide relevant information for designers
based on quality attributes, architecting family of related products and speci c
technologies required, as proposed by Bass et al. [1]. The identi cation of ASRs
is important to satisfy all requirements adequately.
      </p>
      <p>Existing work on variability in software engineering focuses on software
product lines (SPL) [14], in which variability is used to produce new versions of a
software product whereas goal-oriented modeling use variability to de ne
behaviors of the system [4]. A Dynamic software product line (DSPL) target a single
system with multiple and dynamic bindings [3]. REFAS [8] includes support the
sub-speci cation with concern levels and aggregation relations. The speci cation
is centered on constraints that are applicable at design time and runtime.</p>
      <p>
        Challenges: Techniques and methods are required to provide (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) runtime
variability assurance (i.e., reaction to a variability at runtime), (
        <xref ref-type="bibr" rid="ref2">2</xref>
        ) unexpected
variability and ambiguities management (i.e., not being prepared for certain
variability), and (
        <xref ref-type="bibr" rid="ref3">3</xref>
        ) alternatives to model the sub-speci cation of variability
and adaptation requirements, including the horizontal and hierarchical relations
to be evaluated only at runtime.
      </p>
      <p>
        Ideas: (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) The development of an evaluation framework with techniques and
metrics to assess the variability of the requirements. This framework should
consider the restrictions of a runtime environment such as response time,
performance, and availability. (
        <xref ref-type="bibr" rid="ref2">2</xref>
        ) The development of runtime techniques to validate
the variabilities of the requirements according to the states of the running
system. (
        <xref ref-type="bibr" rid="ref3">3</xref>
        ) The development of runtime management infrastructures to sense,
analyze and act upon unforeseen variabilities (i.e., discard or accept) and ambiguities
(i.e., generate its variabilities) on the requirements such as the DYNAMICO
reference model. [15]. (
        <xref ref-type="bibr" rid="ref4">4</xref>
        ) The runtime consideration for the de nition of relevant
relations that constraint the adaptation (e.g., constraints to adapt between two
scenarios).
      </p>
      <p>Step 3: Identify Context which In uences System Behavior
After having identi ed variation points, the requirements engineer has to
understand the in uence factors for variation points. We propose to represent these
factors through context-attributes [6], which means that ambiguous parts of
requirements can be re ned further through context attributes (i.e., relevant
information for the system that can be sensed and monitored). The context data can
be obtained from the system and information about the external environment.</p>
      <p>
        Challenges: (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) the identi cation of context attributes that are relevant to
the variation points { this is partially done by the system and requires techniques
to support this process { and (
        <xref ref-type="bibr" rid="ref2">2</xref>
        ) how to reduce invalid or not desired adaptation
possibilities from an initial situation.
      </p>
      <p>Ideas: Modeling constraints between variables for particular values and
evaluate them at runtime. With the results of this evaluation, the system can reduce
the adaptation possibilities of the model.</p>
      <p>Step 4: Identify Context Situations and Variabilities
During this step, context is analyzed with the purpose of identifying the
situations that are relevant to runtime events. For this purpose, the context already
identi ed is traced to each requirement while specifying the meaning for each of
them. Changes in the context have di erent reactions and implications for
requirements depending on the interpretation of the situations and requirements.</p>
      <p>Existing work on context situations in software engineering include
techniques to manage context information, such as context models [16, 13] and using
machine learning techniques to keep context information up-to-date [5].</p>
      <p>
        Challenges: (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) Information on the scenario that might not be sensed by the
system is not available. (
        <xref ref-type="bibr" rid="ref2">2</xref>
        ) Situations (or scenarios) can be subjective. (
        <xref ref-type="bibr" rid="ref3">3</xref>
        ) The
generation of all possible situations poses a risk to the system's performance.
(
        <xref ref-type="bibr" rid="ref4">4</xref>
        ) The in uence of values from context variables is oversimpli ed. They are
directly linked to some of the requirements.
      </p>
      <p>
        Ideas: (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) The implementation of runtime models to represent situations, as
well as required infrastructures to support the evolution of such representations.
(
        <xref ref-type="bibr" rid="ref2">2</xref>
        ) Strategies to guarantee the system's performance while generating diverse
situations, including mechanisms and metrics to stop the system before an
explosion of scenarios and computing possible scenarios o ine or when the system
is idle. (
        <xref ref-type="bibr" rid="ref3">3</xref>
        ) The de nition of in uence from context variables mediated by
scenarios or other runtime context conditions to support more complex situations.
Thus, the semi-automatic or automatic derivation of possible situations only
from those in uence factors. (
        <xref ref-type="bibr" rid="ref4">4</xref>
        ) The support of complex expressions to relate
the context with the requirements closer to the real system con guration.
Step 5: Design Variation Points in the Solution Space
The intention of this step is to provide a software solution that (i) can satisfy the
goals according to a given variability de nition and (ii) is extendable when new
goals emerge. The realization must especially support adaptation at runtime.
      </p>
      <p>
        Existing work includes external and internal approaches [9]. External
approaches use explicit feature models linked to artifact elements using (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) hard
links/references or (
        <xref ref-type="bibr" rid="ref2">2</xref>
        ) an expression language where elements in artifacts are
annotated using Boolean expressions over features. Internal approaches present
the expressiveness of an artifacts language used to express variability (e.g.,
dynamic binding in Java, preprocessor in C and conditional "tags" in XML). Other
techniques for dealing with variability include tailoring of artifacts (e.g., scripts
in ANT or MAKE) and model transformation languages (e.g., ATL or QVT).
      </p>
      <p>Challenges: Knowledge about variability is not fully (re)used at runtime.
DSPL approaches support this reuse, but the relation between design-time and
runtime variability is not well established.</p>
      <p>Ideas: To have di erent views on the variability data: some for design-time
(suited for requirements engineers) and some for runtime (suited for software:
adaptation manager components). These views imply a language that requires
the integration of knowledge (meta-data) from both { design time and runtime,
i.e., make explicit why a variation at a certain variation point is an alternative.
Such knowledge can also facilitate automated decision-making at runtime.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Concluding Remarks</title>
      <p>SAS are expected to deal with uncertainty from their requirements and operating
context, resulting in situations that require adaptations of the system. Some of
these situations already occur at requirements level.</p>
      <p>In this short paper, we sketched an artifact-centric approach for RE in the
domain of SAS comprising ve guiding, incremental, and iterative steps. For each
step, we described its purpose, estimated associated challenges and potential
ideas on how to resolve these challenges. The overall goal of the presented concept
is to bridge design-time and run-time RE activities to manage ambiguities better.</p>
      <p>Future work has to investigate the presented challenges and corresponding
evaluation of results. As for the methodology, our proposal is to use empirical
research methods, but combining quantitative and qualitative experiments with
selected project cases from industry.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Acknowledgments</title>
      <p>We thank T. Vogel, M. Tichy, and A. Gorla, organizers GI-Dagstuhl Seminar
14433 in which this paper was conceived. This work was supported by Vinnova
grant 2014-06229.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>L.</given-names>
            <surname>Bass</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Bergey</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Clements</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Merson</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Ozkaya</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Sangwan</surname>
          </string-name>
          .
          <article-title>A Comparison of Requirements Speci cation Methods from a Software Architecture Perspective</article-title>
          .
          <source>Technical report.</source>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>N.</given-names>
            <surname>Bencomo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Whittle</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Sawyer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Finkelstein</surname>
          </string-name>
          , and
          <string-name>
            <given-names>E.</given-names>
            <surname>Letier</surname>
          </string-name>
          . Requirements Re ection:
          <article-title>Requirements as Runtime Entities</article-title>
          .
          <source>In ICSE'10</source>
          , pages
          <fpage>199</fpage>
          {
          <fpage>202</fpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>R.</given-names>
            <surname>Capilla</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Bosch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Trinidad</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. Ruiz</given-names>
            <surname>Cortes</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Hinchey</surname>
          </string-name>
          .
          <article-title>An overview of dynamic software product line architectures and techniques: Observations from research and industry</article-title>
          .
          <source>Journal of Systems and Software</source>
          ,
          <volume>91</volume>
          :3{
          <fpage>23</fpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>B.</given-names>
            <surname>Gonzales-Baixauli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.C.S.</given-names>
            <surname>Prado Leite</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Mylopoulos</surname>
          </string-name>
          .
          <article-title>Visual Variability Analysis for Goal Models</article-title>
          .
          <source>In RE'04</source>
          , pages
          <fpage>198</fpage>
          {
          <fpage>207</fpage>
          ,
          <string-name>
            <surname>Sept</surname>
          </string-name>
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>A.</given-names>
            <surname>Knauss</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Damian</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Franch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Rook</surname>
          </string-name>
          ,
          <string-name>
            <surname>H.</surname>
          </string-name>
          <article-title>A Muller, and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Thomo. ACon</surname>
          </string-name>
          :
          <article-title>A learning-based approach to deal with uncertainty in contextual requirements at runtime</article-title>
          .
          <source>Information and Software Technology</source>
          ,
          <volume>70</volume>
          :
          <fpage>85</fpage>
          {
          <fpage>99</fpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>A.</given-names>
            <surname>Knauss</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Damian</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Schneider</surname>
          </string-name>
          .
          <article-title>Eliciting Contextual Requirements at Design Time: A Case Study</article-title>
          .
          <source>In EmpiRE'14</source>
          , pages
          <fpage>56</fpage>
          {
          <fpage>63</fpage>
          . IEEE,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>M.</given-names>
            <surname>Luckey</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Nagel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Gerth</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Engels. Adapt Cases</surname>
          </string-name>
          :
          <article-title>Extending Use Cases for Adaptive Systems</article-title>
          .
          <source>In SEAMS'11</source>
          , pages
          <fpage>30</fpage>
          {
          <fpage>39</fpage>
          . ACM,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>J.C.</surname>
          </string-name>
          <article-title>Mun~oz-</article-title>
          <string-name>
            <surname>Fernandez</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          <string-name>
            <surname>Tamura</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Mazo</surname>
            , and
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Salinesi</surname>
          </string-name>
          .
          <article-title>Towards a Requirements Speci cation Multi-View Framework for Self-Adaptive Systems</article-title>
          . CLEIej,
          <volume>18</volume>
          (
          <issue>2</issue>
          ),
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>K.</given-names>
            <surname>Pohl</surname>
          </string-name>
          , G Bo
          <article-title>ckle, and</article-title>
          <string-name>
            <given-names>F.J. van der Linden. Software</given-names>
            <surname>Product</surname>
          </string-name>
          Line Engineering: Foundations, Principles and Techniques. Springer-Verlag New York, Inc., Secaucus, NJ, USA,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>N.A.</given-names>
            <surname>Qureshi</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Perini</surname>
          </string-name>
          . Engineering Adaptive Requirements.
          <source>In SEAMS'09</source>
          , pages
          <fpage>126</fpage>
          {
          <fpage>131</fpage>
          . IEEE,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>N.A.</given-names>
            <surname>Qureshi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Perini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Bruno</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Irst</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.A.</given-names>
            <surname>Ernst</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Mylopoulos</surname>
          </string-name>
          .
          <article-title>Towards a Continuous Requirements Engineering Framework for Self-Adaptive Systems</article-title>
          . In RE@RunTime, pages
          <volume>9</volume>
          {
          <fpage>16</fpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>A.</given-names>
            <surname>Raian</surname>
          </string-name>
          .
          <article-title>Modeling and Reasoning about Contextual Requirements: Goal-Based Framework</article-title>
          .
          <source>PhD thesis</source>
          , University of Trento, Italy,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>Q.Z.</given-names>
            <surname>Sheng</surname>
          </string-name>
          and
          <string-name>
            <given-names>B.</given-names>
            <surname>Benatallah</surname>
          </string-name>
          .
          <article-title>Contextuml: a uml-based modeling language for model-driven development of context-aware web services</article-title>
          .
          <source>In In: The 4th Int. Conf. on Mobile Business</source>
          , pages
          <volume>206</volume>
          {
          <fpage>212</fpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <given-names>R.</given-names>
            <surname>Tawhid</surname>
          </string-name>
          and
          <string-name>
            <given-names>D.C.</given-names>
            <surname>Petriu</surname>
          </string-name>
          .
          <article-title>Product Model Derivation by Model Transformation in Software Product Lines</article-title>
          .
          <source>In ISORCW'11</source>
          , pages
          <fpage>72</fpage>
          {
          <fpage>79</fpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>N. M. Villegas</surname>
            , G. Tamura, H. A. Muller, L. Duchien, and
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Casallas</surname>
          </string-name>
          . DYNAMICO:
          <article-title>A reference model for governing control objectives and context relevance in self-adaptive software systems</article-title>
          .
          <source>In Self-Adaptive Software Systems</source>
          , volume
          <volume>7475</volume>
          <source>of LNCS</source>
          , pages
          <volume>265</volume>
          {
          <fpage>293</fpage>
          . Springer,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <given-names>N.M.</given-names>
            <surname>Villegas</surname>
          </string-name>
          .
          <article-title>Context Management and Self-Adaptivity For Situation-Aware Smart Software Systems</article-title>
          .
          <source>Phd Thesis</source>
          , Univ. Of Victoria,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>