<!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>Towards a Model-Driven Approach for Context-Aware Software</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Jose Bocanegra</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Pontificia Universidad Javeriana</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Bogotá</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Colombia</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Systems Engineering Department</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>-Context-aware software (C-AS) uses context to provide users with relevant information or services. Although C-AS has an increasing importance, this area is still immature in terms of tools, languages, and methods. Therefore, C-AS presents several opportunities and challenges for software engineers, and new models and theories are needed to address these challenges. Some of the main problems in software engineering for C-AS are the lack of mechanisms for representing some relevant concepts in the requirements and design specifications directly, and the complexity to translate requirements and design specifications to a concrete implementation. As an alternative of solution, the research project proposes MiDAS, a framework that uses a model-driven approach to develop C-AS. Specifically, MiDAS comprises two domain-specific languages to specify requirements and design in C-AS; a model-to-model transformation to derive design models from requirements models; a modelto-text transformation to derive a platform independent model (PIM) from design models; and a model-to-text transformation to derive context-aware software for specific platforms, taking as input the PIM.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. PROBLEM</title>
      <p>
        An adaptive software is able to adapt its
own behavior when a change occurs in its
surrounding context [
        <xref ref-type="bibr" rid="ref1 ref3">1</xref>
        ]. A context-aware
software is a particular kind of adaptive software
that uses context to provide the users with
relevant information or services [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
      </p>
      <p>
        For example, a context-aware application
may provide specially-tailored contents to
students considering their cognitive skills or prior
knowledge [
        <xref ref-type="bibr" rid="ref4">3</xref>
        ].
      </p>
      <p>
        Some authors [
        <xref ref-type="bibr" rid="ref1 ref3">1</xref>
        ], [
        <xref ref-type="bibr" rid="ref5">4</xref>
        ], [
        <xref ref-type="bibr" rid="ref6">5</xref>
        ], [
        <xref ref-type="bibr" rid="ref7">6</xref>
        ] have
identified several challenges in the development
process of context-aware software. These
challenges can be grouped in two areas: (i)
requirements and design, and (ii) implementation.
      </p>
      <p>In the field of requirements and design,
the main issue is the lack of mechanisms for
representing the relevant concepts in C-AS in
the requirements and design specifications.</p>
      <p>Some of these relevant concepts are the user
(the person or group of people that performs
an operation with the system or the person
or group of people affected by an operation);
the operations performed by the system; the
objects (information required or affected by an
operation); the contextual entities (entities that
should be considered for context manipulation
purposes); and contextual elements (any piece
of data or information that can be used to
characterize an entity in an application domain).</p>
      <p>
        Generally, these concepts are usually placed
directly in the source code [
        <xref ref-type="bibr" rid="ref8">7</xref>
        ], [
        <xref ref-type="bibr" rid="ref9">8</xref>
        ]. However,
employing these kind of ad hoc solutions
usually increase the development effort and
complexity, and this reduces the project
success rate [
        <xref ref-type="bibr" rid="ref10">9</xref>
        ].
      </p>
      <p>
        One possible strategy to address this
problem is to use general purpose languages [
        <xref ref-type="bibr" rid="ref11">10</xref>
        ]
to model requirements and design for C-AS.
However, these languages are not sufficiently
expressive to represent these relevant
concepts.
      </p>
      <p>
        The use of Domain-Specific Languages
(DSL) would be more accurate, brief, and with
fewer errors than using modeling languages of
general purpose [
        <xref ref-type="bibr" rid="ref12">11</xref>
        ], [
        <xref ref-type="bibr" rid="ref13">12</xref>
        ].
      </p>
      <p>
        In the field of implementation, the problem
is the difficulty of developing context-aware
software based on the specified requirements.
Assuming that software engineers have an
adequate language to formally specify the
requirements and design of C-AS, one problem
persists: to translate those specifications to an
implementation. The traditional way to solve
this problem is to manually code a system that
implements the requirements and design
specified by software engineers [
        <xref ref-type="bibr" rid="ref14">13</xref>
        ]. In the domain
of context-aware software, this scheme has
several opportunities for improvement.
      </p>
      <p>One of them is that context-aware software
tends to share similar features. For example,
some context-aware applications take into
account the location and characteristics of the
user to display information about places of
interest. An application can display the closest
restaurants to a user and filter those that suit
the user tastes. An application related to the
medical field can display a list of nearby
hospitals that provide specialists for a
particular pathology of a user. In both cases, the
services provided by both systems are very
similar and can be abstracted into reusable
modules. Although this is a common
practice in developing traditional systems, to the
best of our knowledge, there are no libraries
that provide specially-tailored functionality for
context-aware software.</p>
      <p>Another opportunity for improvement is
related to the manual coding of certain parts
of context-aware software. Assuming that one
has a set of components that provide part of
the functionality of context-aware software,
there is still the need to manually integrate
them into a full application and to add all
of the functionality that is not commonly
implemented by those components. Since
manual coding is slow, wasteful, and error-prone,
there is an improvement opportunity by
automatizing the implementation through code
generation. A basic premise of this proposal is
that this automation is possible and would
significantly accelerate the development process,
similarly to what happens with traditional
systems.</p>
      <p>Taking into account the above assumptions,
this research project addresses two
fundamental issues, which are embodied in the
following research questions: (i) how to
develop a domain-specific language to specify
the requirements and design of context-aware
software?; and (ii) how to automate code
generation of context-aware software from the
requirements and design specifications?</p>
    </sec>
    <sec id="sec-2">
      <title>II. RELATED WORK</title>
      <p>This section analyzes the works that have
considered the concepts of requirements and
design specifications of context-aware
software, and the implementation of
contextaware software from these specifications.</p>
      <p>
        It is important to clarify that most of
related works are oriented to adaptive and
selfadaptive systems. Although a context-aware
system is a subset of adaptive systems, the
former has a much more specialized field of
action than the latter. In this way, if the
process for specifying requirements and design
in adaptive and self-adaptive software has had
limited attention [
        <xref ref-type="bibr" rid="ref15">14</xref>
        ] and it is a complex task
[
        <xref ref-type="bibr" rid="ref1 ref3">1</xref>
        ], [
        <xref ref-type="bibr" rid="ref16">15</xref>
        ], this limitation is more relevant in
context-aware systems [
        <xref ref-type="bibr" rid="ref17">16</xref>
        ]. Therefore, most
of the works analyzed in this section are
particularly oriented to adaptive and self-adaptive
systems.
      </p>
      <p>
        One of the most relevant works in the
field of requirements for adaptive software is
RELAX [
        <xref ref-type="bibr" rid="ref15">14</xref>
        ]. RELAX is a DSL designed to
support the rigorous specification of adaptive
systems requirements, that explicitly addresses
uncertainty inherent in these systems. The
formal semantics for RELAX is expressed in
terms of fuzzy logic. That language also
“enables developers to identify uncertainty in the
requirements, thereby facilitating the design of
systems that are, by definition, more flexible
and amenable to adaptation in a systematic
fashion”. Although the main focus of
RELAX is the formalization of several operators
(modal, temporal, and ordinal operators and
uncertainty factors), some important elements
required in a context-aware system, such as the
subjects and the objects are not considered. In
addition, this work does not propose
transformations to the design and subsequents phases
in the software development process.
      </p>
      <p>
        Other work related to requirements is
Adaptive RML [
        <xref ref-type="bibr" rid="ref18">17</xref>
        ]. This is a modeling language
focused on the representation of early
requirements for self-adaptive systems. The language
has graphical primitives in line with classical
goal modeling languages and it is formalized
via a mapping to Techne [
        <xref ref-type="bibr" rid="ref19">18</xref>
        ]. As Adaptive
RML takes as reference classical goal-oriented
languages such as i*, it contains several flaws
in its visual notation [
        <xref ref-type="bibr" rid="ref20">19</xref>
        ].
      </p>
      <p>
        The work of Hog et al. [
        <xref ref-type="bibr" rid="ref21">20</xref>
        ] proposes
AWS-UML, an UML profile for adaptive web
services which increases the expressiveness
of UML. AWS-UML provides (i) a special
use case model with three kind of actors
(application consumer, human consumer, and
provider) and a special icon for each one
of them; (ii) three predefined use cases with
a specific notation, (iii) a set of OCL
constraints, (iv) a class diagram enriched with
user’s profiles; and (v) a sequence diagram
with predefined objects and predefined
messages. Similarly, [
        <xref ref-type="bibr" rid="ref22">21</xref>
        ] propose an extension
to UML to represent contextual information
using profiles that contain stereotypes, tagged
values and constraints.
      </p>
      <p>
        In the area of design, Vogel and Giese
[
        <xref ref-type="bibr" rid="ref23">22</xref>
        ] propose EUREMA, a model-driven
approach for engineering adaptation engines for
self-adaptive software. EUREMA provides a
domain-specific modeling language to specify
and an interpreter to execute feedback loops.
However, EUREMA only aims at the
specifications and implementing adaptation engines,
which are closer to the solution domain rather
than the problem domain.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref24">23</xref>
        ], the authors present PerCAS, a
model-driven approach for developing
dynamic and personalized context-aware
services. A natural language-like rule language
is proposed for specifying context-awareness
logic and personalized rules can be
dynamically switched at runtime. However, the
proposed language does not provides a way to
model subjects and objects.
      </p>
      <p>
        Hoyos et al. [
        <xref ref-type="bibr" rid="ref13">12</xref>
        ] propose MLContext, a
textual Domain-Specific Language (DSL) which
is specially tailored for modeling context
information. The work also provides the
generation of software artifacts from abstract models
which do not include implementation details.
In MLContext, models do not include
information related to specific platforms or
implementations, thus, the models can be reused in
different context-aware applications which are
based on the same context. The language also
supports a taxonomy of types of context.
      </p>
      <p>In conclusion, (i) none of the proposals
takes into account all the relevant concepts
defined for a C-AS; (ii) they do not propose
both transformations (from requirements to
design and from design to implementation);
(iii) they only use a kind of notation; and (iv)
the works do not support some of the language
design principles.</p>
    </sec>
    <sec id="sec-3">
      <title>III. PROPOSED SOLUTION</title>
      <p>To solve the research problem stated in
Section I, this research project proposes MiDAS,
a model-driven approach to develop
contextaware software. MiDAS is composed by:
1) c-RSL: a domain-specific language to
specify requirements in C-AS. c-RSL
addresses the representation of users,
objects, contextual entities, and
contextual elements.
2) c-DSL: a domain-specific language to
specify the design in C-AS. c-DSL
addresses the representation of the
operations (i.e., the way in which the system
adapt a content to the user, or the the
way in which the system executes a
service).
3) A set of transformations. The first
transformation is aimed to derive design
specifications from requirements
specifications. The second transformation
addresses the derivation of a platform
independent model (PIM) from a design
specification model. The third
transformation generates context-aware
software in specific platforms (e.g., J2EE,
PHP, Android) taking as input the PIM.
Both languages use two types of notation
(textual and visual). Textual representations
have the advantage of detailing the specific
elements of a system whereas graphical
representation provide a better overview and ease
the understanding of models.</p>
      <p>The languages also cover three principles
suggested by Moody in terms of symbol
redundancy, symbol overload, and perceptual
discriminability.</p>
      <p>The modeling process and the
transformations will be supported by means of a case tool
based-on frameworks such as Eclipse EMF,
XText, Sirius, and Accelo.</p>
    </sec>
    <sec id="sec-4">
      <title>IV. PLAN FOR EVALUATION AND</title>
      <p>VALIDATION</p>
      <p>The main aspects to be evaluated in the
framework are (i) the usability and (ii)
expressiveness of the proposed languages, (iii)
the consistency of the models generated by
the transformation, and (iv) the productivity
improvement.</p>
      <p>
        Usability evaluation will be based on some
metrics proposed by Hoyos et al. [
        <xref ref-type="bibr" rid="ref13">12</xref>
        ]. These
metrics measure, for example, the required
effort to understand grammar or the facility
to learn the language.
      </p>
      <p>Expressiveness will be measured by
requesting a group of C-AS expert developers
that use the framework and determine if it is
possible to represent the most important
concepts required to develop a functional system
from the specifications.</p>
      <p>
        To evaluate the consistency of the
automatically generated models (particularly the design
models), we will develop a set of algorithms
to ensure that there are no redundant, lost,
missing, and mismatched data [
        <xref ref-type="bibr" rid="ref25">24</xref>
        ].
      </p>
      <p>In regards to productivity, we will measure
the ratio between models and generated code.</p>
    </sec>
    <sec id="sec-5">
      <title>V. EXPECTED CONTRIBUTIONS</title>
      <p>This research project expects to have
following outcomes: (i) the development of two
domain-specific languages; (ii) the definition
and implementation of three transformations;
and (iii) the validation and evaluation of the
developed framework. It is expected that with
these contributions, the software development
community may use the framework to
develop context-aware software. The use of the
proposed framework may reduce the
development times, improve the quality of developed
systems, and increase the productivity and
competitiveness of software organizations.</p>
    </sec>
    <sec id="sec-6">
      <title>VI. CURRENT STATUS The following is the list of the preliminary work developed in the context of this research project.</title>
      <p>
        First, an outline of the main problems in
software engineering for adaptive software and
the definition of the big picture of MiDAS
were presented in [
        <xref ref-type="bibr" rid="ref26">25</xref>
        ]. Second, in [
        <xref ref-type="bibr" rid="ref27">26</xref>
        ] was
presented the correlation between the main
problems to develop adaptive software and
Model-Driven Engineering. Third, the author
of this work has developed a preliminary
version of c-DSL1 [
        <xref ref-type="bibr" rid="ref28">27</xref>
        ]. That work also provides
a functional prototype based on the Generic
Modeling Environment (GME) and suggests
the first steps to validate the graphical
notation. Fourth, an improved version of c-DSL
which uses a more complex metamodel, a
refined notation, and a new functional prototype
based on the Sirius plugin for Eclipse was
presented in [
        <xref ref-type="bibr" rid="ref29">28</xref>
        ].
      </p>
      <p>The next proposed activities are the
following: (i) the definition of the transformations
from requirements to design and from design
to implementation; (ii) the creation of the
CASE tool as support for the entire software
development process; (iii) the definition of
the experiments to evaluate and validate the
framework; and (iv) the application of these
experiments.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>B. H.</given-names>
            <surname>Cheng</surname>
          </string-name>
          , R. De Lemos,
          <string-name>
            <given-names>H.</given-names>
            <surname>Giese</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Inverardi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Magee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Andersson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Becker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Bencomo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Brun</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Cukic</surname>
          </string-name>
          , et al., “
          <article-title>Software engineering for self-adaptive systems: A research roadmap,” in Software engineering for self-adaptive systems</article-title>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>26</lpage>
          , Springer,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>A. K.</given-names>
            <surname>Dey</surname>
          </string-name>
          , “
          <article-title>Understanding and using context,” Personal and ubiquitous computing</article-title>
          , vol.
          <volume>5</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>4</fpage>
          -
          <lpage>7</lpage>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <article-title>1This language was previously named DMLAS</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>G. G.</given-names>
            <surname>Castro</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E. L.</given-names>
            <surname>Dominguez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y. H.</given-names>
            <surname>Velazquez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. Y. R.</given-names>
            <surname>Matla</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. B. E.</given-names>
            <surname>Toledo</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S. E. P.</given-names>
            <surname>Hernandez</surname>
          </string-name>
          , “Mobilearn:
          <article-title>Context-aware mobile learning system</article-title>
          ,
          <source>” IEEE Latin America Transactions</source>
          , vol.
          <volume>14</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>958</fpage>
          -
          <lpage>964</lpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>M.</given-names>
            <surname>Salehie</surname>
          </string-name>
          and
          <string-name>
            <given-names>L.</given-names>
            <surname>Tahvildari</surname>
          </string-name>
          , “
          <article-title>Self-adaptive software: landscape and research challenges,” ACM TAAS</article-title>
          , vol.
          <volume>4</volume>
          , no.
          <issue>2</issue>
          , p.
          <fpage>14</fpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [5]
          <string-name>
            <surname>R. De Lemos</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          <string-name>
            <surname>Giese</surname>
            ,
            <given-names>H. A.</given-names>
          </string-name>
          <string-name>
            <surname>Müller</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Shaw</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Andersson</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Litoiu</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Schmerl</surname>
            , G. Tamura,
            <given-names>N. M.</given-names>
          </string-name>
          <string-name>
            <surname>Villegas</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Vogel</surname>
          </string-name>
          , et al., “
          <article-title>Software engineering for self-adaptive systems: A second research roadmap,” in Software Engineering for Self-Adaptive Systems II</article-title>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>32</lpage>
          , Springer,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>F. D.</given-names>
            <surname>Macías-Escrivá</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Haber</surname>
          </string-name>
          ,
          <string-name>
            <surname>R.</surname>
          </string-name>
          <article-title>del</article-title>
          <string-name>
            <surname>Toro</surname>
            , and
            <given-names>V.</given-names>
          </string-name>
          <string-name>
            <surname>Hernandez</surname>
          </string-name>
          , “
          <article-title>Self-adaptive systems: A survey of current approaches, research challenges and applications</article-title>
          ,
          <source>” Expert Systems with Applications</source>
          , vol.
          <volume>40</volume>
          , no.
          <issue>18</issue>
          , pp.
          <fpage>7267</fpage>
          -
          <lpage>7279</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>X.</given-names>
            <surname>Mao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Dong</surname>
          </string-name>
          , L. Liu, and
          <string-name>
            <given-names>H.</given-names>
            <surname>Wang</surname>
          </string-name>
          , “
          <article-title>An integrated approach to developing self-adaptive software</article-title>
          ,
          <source>” Journal of Information Science and Engineering</source>
          , vol.
          <volume>30</volume>
          , no.
          <issue>4</issue>
          , pp.
          <fpage>1071</fpage>
          -
          <lpage>1085</lpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>B. H.</given-names>
            <surname>Cheng</surname>
          </string-name>
          , P. Sawyer,
          <string-name>
            <given-names>N.</given-names>
            <surname>Bencomo</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Whittle</surname>
          </string-name>
          , “
          <article-title>A goal-based modeling approach to develop requirements of an adaptive system with environmental uncertainty,”</article-title>
          <source>in Model Driven Engineering Languages and Systems</source>
          , pp.
          <fpage>468</fpage>
          -
          <lpage>483</lpage>
          , Springer,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>T.</given-names>
            <surname>Ruiz-López</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Rodríguez-Domínguez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. J.</given-names>
            <surname>Rodríguez-Fórtiz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. F.</given-names>
            <surname>Ochoa</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J. L.</given-names>
            <surname>Garrido</surname>
          </string-name>
          , “
          <article-title>Context-aware self-adaptations: From requirements specification to code generation</article-title>
          ,” in UCAmI, pp.
          <fpage>46</fpage>
          -
          <lpage>53</lpage>
          , Springer,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>G.</given-names>
            <surname>Booch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Rumbaugh</surname>
          </string-name>
          ,
          <string-name>
            <surname>and I. Jacobson</surname>
          </string-name>
          ,
          <article-title>The unified modeling language user guide</article-title>
          .
          <source>Addison-Wesley</source>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>S.</given-names>
            <surname>Kelly</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.-P.</given-names>
            <surname>Tolvanen</surname>
          </string-name>
          ,
          <article-title>Domain-specific modeling: enabling full code generation</article-title>
          . John Wiley &amp; Sons,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>J. R.</given-names>
            <surname>Hoyos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>García-Molina</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>J. A.</given-names>
            <surname>Botía</surname>
          </string-name>
          , “
          <article-title>A domain-specific language for context modeling in context-aware systems</article-title>
          ,
          <source>” Journal of Systems and Software</source>
          , vol.
          <volume>86</volume>
          , no.
          <issue>11</issue>
          , pp.
          <fpage>2890</fpage>
          -
          <lpage>2905</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>F.</given-names>
            <surname>Fleurey</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Solberg</surname>
          </string-name>
          , “
          <article-title>A domain specific modeling language supporting specification, simulation and execution of dynamic adaptive systems</article-title>
          ,” in
          <source>Model Driven Engineering Languages and Systems</source>
          , pp.
          <fpage>606</fpage>
          -
          <lpage>621</lpage>
          , Springer,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [14]
          <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>N.</given-names>
            <surname>Bencomo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B. H.</given-names>
            <surname>Cheng</surname>
          </string-name>
          , and J.
          <string-name>
            <surname>-M. Bruel</surname>
          </string-name>
          , “
          <article-title>Relax: a language to address uncertainty in self-adaptive systems requirement</article-title>
          ,” Requirements Engineering, vol.
          <volume>15</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>177</fpage>
          -
          <lpage>196</lpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>N.</given-names>
            <surname>Esfahani</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Malek</surname>
          </string-name>
          , “
          <article-title>Uncertainty in selfadaptive software systems,” in Software Engineering for Self-Adaptive Systems II</article-title>
          , vol.
          <volume>7475</volume>
          , pp.
          <fpage>214</fpage>
          -
          <lpage>238</lpage>
          , Springer,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>U.</given-names>
            <surname>Alegre</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. C.</given-names>
            <surname>Augusto</surname>
          </string-name>
          , and T. Clark, “
          <article-title>Engineering context-aware systems and applications: a survey</article-title>
          ,
          <source>” Journal of Systems and Software</source>
          , vol.
          <volume>117</volume>
          , pp.
          <fpage>55</fpage>
          -
          <lpage>83</lpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>N. A.</given-names>
            <surname>Qureshi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I. J.</given-names>
            <surname>Jureta</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Perini</surname>
          </string-name>
          ,
          <article-title>Towards a requirements modeling language for self-adaptive systems</article-title>
          , pp.
          <fpage>263</fpage>
          -
          <lpage>279</lpage>
          . Springer Berlin Heidelberg,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>I. J.</given-names>
            <surname>Jureta</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Borgida</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>Techne: towards a new generation of requirements modeling languages with goals, preferences</article-title>
          , and inconsistency handling,” in Requirements Engineering Conference (RE),
          <year>2010</year>
          18th IEEE International, pp.
          <fpage>115</fpage>
          -
          <lpage>124</lpage>
          , IEEE,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [19]
          <string-name>
            <surname>D</surname>
            . L. Moody, P. Heymans, and
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Matulevicius</surname>
          </string-name>
          , “
          <article-title>Improving the effectiveness of visual representations in requirements engineering: an evaluation of i* visual syntax</article-title>
          ,” in
          <year>2009</year>
          17th IEEE International Requirements Engineering Conference, pp.
          <fpage>171</fpage>
          -
          <lpage>180</lpage>
          , IEEE,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>C.</given-names>
            <surname>Hog</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. B.</given-names>
            <surname>Djemaa</surname>
          </string-name>
          ,
          <string-name>
            <surname>and I. Amous</surname>
          </string-name>
          , “
          <article-title>Towards an UML based modeling language to design adaptive web services,”</article-title>
          <source>in Proceedings of the International Conference on Semantic Web and Web Services</source>
          , pp.
          <fpage>38</fpage>
          -
          <lpage>44</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [21]
          <string-name>
            <surname>M.-S. Benselim</surname>
            and
            <given-names>H.</given-names>
          </string-name>
          <string-name>
            <surname>Seridi-Bouchelaghem</surname>
          </string-name>
          , “
          <article-title>Towards a uml profile for context-awareness domain</article-title>
          .,” International
          <source>Arab Journal of Information Technology (IAJIT)</source>
          , vol.
          <volume>14</volume>
          , no.
          <issue>2</issue>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>T.</given-names>
            <surname>Vogel</surname>
          </string-name>
          and
          <string-name>
            <given-names>H.</given-names>
            <surname>Giese</surname>
          </string-name>
          ,
          <article-title>Model-driven engineering of adaptation engines for self-adaptive software: Executable runtime megamodels</article-title>
          .
          <source>Universitätsverlag Potsdam</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>J.</given-names>
            <surname>Yu</surname>
          </string-name>
          , J. Han,
          <string-name>
            <given-names>Q. Z.</given-names>
            <surname>Sheng</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S. O.</given-names>
            <surname>Gunarso</surname>
          </string-name>
          , “
          <article-title>Percas: an approach to enabling dynamic and personalized adaptation for context-aware services</article-title>
          ,” in International Conference on Service-Oriented Computing, pp.
          <fpage>173</fpage>
          -
          <lpage>190</lpage>
          , Springer,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>S.</given-names>
            <surname>Sadiq</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Orlowska</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Sadiq</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Foulger</surname>
          </string-name>
          , “
          <article-title>Data flow and validation in workflow modelling</article-title>
          ,”
          <source>in Proceedings of the 15th Australasian database conference-</source>
          Volume
          <volume>27</volume>
          , pp.
          <fpage>207</fpage>
          -
          <lpage>214</lpage>
          , Australian Computer Society, Inc.,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>J.</given-names>
            <surname>Bocanegra</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Pavlich-Mariscal</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <surname>A</surname>
          </string-name>
          . CarrilloRamos, “
          <article-title>MiDAS: a model-driven approach for adaptive software</article-title>
          ,”
          <source>in Proceedings of the 11th International Conference on Web Information Systems and Technologies - Volume</source>
          <volume>1</volume>
          : WEBIST,, pp.
          <fpage>281</fpage>
          -
          <lpage>286</lpage>
          , INSTICC, SciTePress,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>J.</given-names>
            <surname>Bocanegra</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Pavlich-Mariscal</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <surname>A</surname>
          </string-name>
          . CarrilloRamos, “
          <article-title>On the role of model-driven engineering in adaptive systems</article-title>
          ,
          <source>” in Computing Conference (CCC)</source>
          ,
          <source>2016 IEEE 11th Colombian</source>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>8</lpage>
          , IEEE,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>J.</given-names>
            <surname>Bocanegra</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Pavlich-Mariscal</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <surname>A</surname>
          </string-name>
          . CarrilloRamos, “
          <article-title>DMLAS: a domain-specific language for designing adaptive systems</article-title>
          ,
          <source>” in 2015 10th Computing Colombian Conference (10CCC)</source>
          , pp.
          <fpage>47</fpage>
          -
          <lpage>54</lpage>
          ,
          <year>Sept 2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [28]
          <string-name>
            <given-names>J.</given-names>
            <surname>Bocanegra</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Pavlich-Mariscal</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <surname>A</surname>
          </string-name>
          . CarrilloRamos, “
          <article-title>Towards a domain-specific language to design adaptive software: the DMLAS approach</article-title>
          ,” Ingeniería y Universidad, vol.
          <volume>20</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>277</fpage>
          -
          <lpage>296</lpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>