<!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>Beyond Context-Oriented Software</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Bruno Dumas University of Namur</institution>
          ,
          <country country="BE">Belgium</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Kim Mens Université catholique de Louvain, Belgium Nicolás Cardozo Universidad de los Andes, Colombia Anthony Cleve University of Namur</institution>
          ,
          <country country="BE">Belgium</country>
        </aff>
      </contrib-group>
      <abstract>
        <p />
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>The last two decades have seen a lot of research on</title>
      <p>context-aware and context-oriented software
development technologies, across subfields of computer science.</p>
      <p>This research area is slowly starting to mature and
researchers currently explore how to unify di↵ erent
solutions proposed in these subfields. We envision that
within another decade some of these solutions will make
it into mainstream software development approaches,
tools and environments. Most end-user software built
by that time will be context-aware and able to adapt
seamlessly to its context of use (devices, surrounding
environment, and users’ preferences). This transition
from traditional to context-oriented software also
requires a mindset shift in users. If users are to accept
adaptive systems, they need to be in control.
Contextorientation should evolve to become less
technologyand more user-centric, putting the user back in control.</p>
      <p>A first step is to provide good feedback to the user about
when and what adaptations take place, and mechanisms
to allow users to partly control certain adaptations,
followed by easily usable and understandable
personalisation mechanisms dedicated to each end user.
Eventually, when adaptive systems become completely natural
and adopted by end users, this will culminate in our
vision where users are in full control of relevant features
or adaptations of applications of their interest, selected
on-demand from online feature clouds, and integrated
automatically into the running system.</p>
      <p>Copyright c by the paper’s authors. Copying permitted for private and academic purposes.</p>
      <p>Proceedings of the Seminar Series on Advanced Techniques and Tools for Software Evolution SATToSE2016 (sattose.org),
Bergen, Norway, 11-13 July 2016, published at http://ceur-ws.org</p>
      <sec id="sec-1-1">
        <title>A Historical Perspective</title>
        <p>
          The first civil examples of context-aware systems started to appear in the early nineties, with
application prototypes that acted as o ce or personal assistants. Since the turn of the century, the
amount of context-aware applications, such as context-aware tour guides [
          <xref ref-type="bibr" rid="ref38">38</xref>
          ], increased rapidly,
by taking advantage of smart mobile devices, sensors or smart objects. Such smart devices are able
to perceive their context of execution, communicate with each other, and interact with people [
          <xref ref-type="bibr" rid="ref29">29</xref>
          ].
With these new found capabilities, software systems have become increasingly sensitive to their
context. In contrast to traditional software, the behaviour of context-aware systems depends not
only on their input and output, but also on their context of use, including the time, place, weather,
user preferences, system internals, and interaction habits [
          <xref ref-type="bibr" rid="ref26">26</xref>
          ].
        </p>
        <p>
          In 2003, Rohn [
          <xref ref-type="bibr" rid="ref38">38</xref>
          ] predicted the first context-aware systems to become commercially available
by 2007 and to reach maturity by 2035. Today, many applications on smart devices indeed exhibit
context-aware features. Di↵ erent programming paradigms to develop context-aware systems
have been proposed over the last two decades [
          <xref ref-type="bibr" rid="ref39 ref40">39, 40</xref>
          ]. Such new trends to make software
systems more aware of and adaptive to context have even started to appear in mainstream
languages, in the form of application frameworks like OSGi1 or ReactiveBlocks.2 We expect the
ideas and mechanisms of context-aware systems to slowly percolate and become more available
and adopted over the following decade, when most end-user applications will be developed with
dedicated context-oriented technology so that software systems can seamlessly adapt to their
users and context of use. By that time, the fact that software knows its context of use and how it
needs to adapt, will have become a feature expected by every user.
        </p>
        <p>
          This ongoing trend towards context-oriented software development has opened many
questions from a technological perspective as well as from a human perspective. From a computer
science perspective, the problem of building context-oriented software systems that can adapt
dynamically to changing contexts has been studied from at least three di↵ erent angles, each
proposing independent solutions to manage adaptations in their own domain. In the domain
of software development, programming language research has explored novel programming
paradigms to dynamically adapt the behaviour of running systems according to detected context
changes [
          <xref ref-type="bibr" rid="ref22 ref40">22, 40</xref>
          ]. In the domain of information systems, database research has studied
contextaware database technology and more flexible query languages [
          <xref ref-type="bibr" rid="ref16 ref28 ref31 ref5">5, 16, 28, 31</xref>
          ]. In the domain of
human-computer interaction (HCI), research has studied the problem from the point of view of
user interfaces [
          <xref ref-type="bibr" rid="ref27 ref3 ref8">3, 8, 27</xref>
          ], including multimodal interfaces [
          <xref ref-type="bibr" rid="ref18 ref19">18, 19</xref>
          ], adapting software systems’
interfaces to particular devices or (group of) users.
        </p>
        <p>
          From a human perspective, the notion of context in computer science as a user-centered
concept can be seen as an individualising paradigm, raising interesting ethical and sociological
questions [
          <xref ref-type="bibr" rid="ref20 ref4">4, 20</xref>
          ]. Nevertheless, despite the fact that the concept of “context” is a key issue in
humanities and social sciences, these areas have not yet researched in detail the notion of context
in computing, and the impact it has on how users interact with a software system, or with their
environment through a software system.
        </p>
        <p>
          Today, these di↵ erent research perspectives are still largely disconnected and independent,
which begs for more unified approaches that reconcile the progress in these di↵ erent domains.
Current research [
          <xref ref-type="bibr" rid="ref30">30</xref>
          ] is starting to look at how to integrate these proposals of context-orientation
in di↵ erent domains into a single unified approach. We expect that quite some progress towards
such unified approaches will be achieved in the next decade. Yet, something is still missing for
this paradigm to become truly mature and accepted: a user-centric vision.
2
        </p>
      </sec>
      <sec id="sec-1-2">
        <title>Putting the user in control</title>
        <p>
          Context-orientation can be seen as a new modularisation mechanism that supports the trend
towards ever more dynamicity and context-awareness. As stated in the previous section, in the
coming years we expect context-oriented technology to reach some level of maturity and adoption.
1https://www.osgi.org
2http://www.bitreactive.com
But what will still be missing for this technology to reach full maturity, is for the technology to
become “really” user-centric by putting the end-user in control. So far, software development
technology focused mainly on systems that are developed for users, and not by users. The
finegrained dynamic composition and conflict resolution mechanisms, o↵ ered by context-oriented
software development technology, provides an ideal basis to finally put the power of building
software in the hands of the end user. The user will become able to incrementally build or adapt
applications, even as they are being executed, by selecting or deselecting the fine-grained features
chosen by users, from online feature clouds [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ], pushing the idea of features-as-a-service to the
extreme. Dependencies and incompatibilities between features would be taken into account by
the composition mechanism. Selected features would be customized to the user’s habits and
typical contexts of use, integrating them automatically into the running system. We foresee four
important steps (in the following order) that need to be taken to put the user in control:
1. Self-explanation: If end-users are ever to accept highly adaptive systems, they need to feel
they remain in control of what is happening with their system. Therefore, whenever the
software adapts its behaviour in response to context changes, the system should provide
clues to the user about what was adapted and why [
          <xref ref-type="bibr" rid="ref25">25</xref>
          ], yet without being too intrusive by
asking the user for its input or reaction with every adaptation.
2. Active customization: In case users do not accept adaptations, it is necessary to provide
mechanisms for users to reject adaptations, gaining actual control over the behaviour of their
system. Defining how users can “undo” or “redo” adaptations triggered by context changes
remains to be explored.
3. Maleable tools: To regain control of the system, end users interact with the system and their
environment via a toolset. Such tools need to be easy to manipulate and understand, for
regular users to control their system customisations or customisation policies.
4. Context-oriented software: Once adaptive systems finally find widespread adoption and
become natural to end users, fully user-tailored systems will be a reality, providing software
services that, at run time, are composed autonomously from a set of available fine-grained
features in feature clouds.
3
        </p>
      </sec>
      <sec id="sec-1-3">
        <title>User-centric context-oriented software</title>
        <p>Before addressing the challenges to be faced in achieving our vision of feature clouds, this section
briefly identifies the key characteristics of user-centric context-oriented software.</p>
        <sec id="sec-1-3-1">
          <title>Dynamic Adaptation</title>
          <p>
            The software should be able to adapt, during its execution, without requiring any (or as little as
possible) explicit user intervention, to new and sometimes even unexpected situations, and to
the appearance, disappearance or modification of features discovered in available feature clouds.
Composition and adaptation of appearing and disappearing features in the feature cloud should
react to context changes autonomously. Autonomous behaviour adaptation to the context and to
new entities can be managed at the programming level using COP and service adaptivity [
            <xref ref-type="bibr" rid="ref11 ref13">13, 11</xref>
            ].
Such ideas could also be explored to manage the adaptation of user interface and database objects.
          </p>
        </sec>
        <sec id="sec-1-3-2">
          <title>Context Awareness</title>
          <p>Software systems should be aware of their current execution context and surrounding
environment (including the user) in order to exhibit the most appropriate behaviour according to the
situation at hand.</p>
        </sec>
        <sec id="sec-1-3-3">
          <title>Context Orientation</title>
        </sec>
        <sec id="sec-1-3-4">
          <title>User Centricity</title>
          <p>
            More strongly, software systems should have an explicit representation of the current context of
use [
            <xref ref-type="bibr" rid="ref21">21</xref>
            ], to reason about it, and dynamically adapt their behaviour appropriately to the current
context.
          </p>
          <p>The software should not only carry the notion of context at its heart, but should also have an
explicit representation of its users, so as to be able to best adapt to users’ preferences, desires, and
habits. In particular, user information could be regarded as a subset of the “context of use” to
which the software should adapt. This appears as an independent characteristic, given that it is
crucial for users to perceive a deep level of customization to their preferences, for them to adopt
and feel in control of the technology.</p>
        </sec>
        <sec id="sec-1-3-5">
          <title>Predictability</title>
        </sec>
        <sec id="sec-1-3-6">
          <title>Resilience</title>
          <p>
            The technology used to achieve such dynamic adaptation to context should provide su cient
guarantees that the software keeps on exhibiting predictable behaviour according to the initial
expectancies of the system, even when unforeseen changes occur. Di↵ erent approaches to assure
the consistency of behaviour adaptations have been proposed. The majority of these approaches
present a formal run-time model that manages newly introduced behaviour, verifying/validating
that such behavior complies with the formal model [
            <xref ref-type="bibr" rid="ref12 ref15 ref23 ref34">15, 12, 23, 34</xref>
            ].
          </p>
          <p>
            Related to the previous characteristic, the software should be su ciently robust and resilient to
unexpected changes, so that it keeps on functioning, though perhaps with reduced functionality
(i.e., applying self-healing techniques [
            <xref ref-type="bibr" rid="ref36">36</xref>
            ], for example by resorting to some default behaviour),
as opposed to crashing or aborting with an error.
          </p>
        </sec>
        <sec id="sec-1-3-7">
          <title>User feedback and control</title>
          <p>A software system that is continuously undergoing changes at run time may quickly become
overwhelming to end users, who may get the feeling they are no longer in control of the system.
To avoid user discomfort due to the ever-changing behaviour of the system it is desirable to
provide users with enough feedback about the decisions taken by the system, so that they regain
control over the system.</p>
        </sec>
        <sec id="sec-1-3-8">
          <title>Automation</title>
        </sec>
        <sec id="sec-1-3-9">
          <title>Non-intrusiveness</title>
        </sec>
        <sec id="sec-1-3-10">
          <title>Scalability</title>
          <p>Adaptation should be automated, in the sense that it should not require explicit user
intervention (or only a very minimum). Interactions with the user should be informative or to request
preference settings in the light of new adaptations.</p>
          <p>Adaptations to the system should be non-intrusive, not hindering users in the tasks they are
currently executing, even for those cases where the software needs to inform the user about
important changes.</p>
          <p>The software technology should be scalable in terms of number of contexts, features, users, or
collaborating devices that can be handled. Well-designed modularisation, composition, scoping
and verification mechanisms need to be foreseen to achieve such scalability.</p>
        </sec>
        <sec id="sec-1-3-11">
          <title>Verifiability</title>
        </sec>
        <sec id="sec-1-3-12">
          <title>Integration</title>
          <p>The technology should not be too complex and should be designed carefully, and with the
necessary tool and development support, so that developers and users feel “at home” with the
technology and “at ease” to build or compose such systems.</p>
          <p>Related to the properties of resilience and predictability, and given the high evolutivity of
contextoriented systems, there is a strong need for formalisms and techniques to verify relevant properties
of the system, whether it be during analysis and design time, or at run time. If at run time, again,
the verification and its e↵ ects should be as non-intrusive as possible.</p>
          <p>
            All characteristics above should be integrated at di↵ erent technological and process levels in a
unified way. At the technological level, the behavioural, user interface, and database aspects of
context-awareness in the system should be reconciled. This, by realising the concepts of context
awareness at each level with a unified API, so that the integration of all three levels is smooth;
as opposed to current solutions were no such integration exists. Similarly, at the process level,
requirements, design models and source code should be unified, to ease the integration of the
di↵ erent domains, while still focusing on each of their individual concerns. For example, the
use of extended variability models with notions of context awareness could be an entry point for
unifying context awareness and adaptation concepts present in all three perspectives, to build
next generation software systems. (1) In software development, variability models can be mapped
to specific programming language constructs defining and managing behaviour adaptations [
            <xref ref-type="bibr" rid="ref17">17</xref>
            ].
(2) In information systems, variability models can be used to introduce data adaptations, without
changing the data definition models [
            <xref ref-type="bibr" rid="ref1">1</xref>
            ]. (3) In HCI, such models could be used to define the
di↵ erent adaptation possibilities of user interfaces [
            <xref ref-type="bibr" rid="ref9">9</xref>
            ].
          </p>
        </sec>
        <sec id="sec-1-3-13">
          <title>User-tailorability</title>
          <p>Finally, and maybe even most importantly, to achieve the vision presented in this paper, the
software should be user-tailorable at run time, allowing users to select and deselect which software
features they would like to include or exclude in their software system, even while the system is
running.</p>
          <p>
            Note that the characteristics described above for our vision of feature clouds touch upon
similar characteristics targeted by other kinds of systems that manage and o↵ er software services
aware of their context. A typical example of such systems is that of service mashups. Mashups
are introduced to integrate data from multiple sources and provide extended services from said
data sources’ combination. Mashups proved useful as visualisation services, by combining
geo-location information with some other service’s data. For example, a common visualisation
mashup is to display posts for a social media outlet in a map. This can be used to measure tra c
and use trends for a particular area during a particular period of time. Furthermore, mashups
can use sensor data to specialize provided services to the current situation in the surrounding
environment [
            <xref ref-type="bibr" rid="ref6">6</xref>
            ]. Mashup definitions are sequential, following a defined structure in which data
can be combined. While the idea behind mashups is to o↵ er services where the user is the main
concern, mashups’ sequential definition makes them di cult to control by end users. This is
due to the rigidity of such definitions, where to reject an adaptation, users would need to reject
the full mashup. Even more, mashups are proposed as tools for developers, managing mashups
may be too complex for end users. Dynamic mashup solutions are explored to tackle the rigidity
problem. Dynamic mashup definitions [
            <xref ref-type="bibr" rid="ref41">41</xref>
            ] introduce service types as a means to group services
providing similar functionality and abstract the interaction with concrete mashup services. This
model also permits the dynamic selection of mashups according to the surrounding environment.
Unfortunately, the definition of mashups remains largely targeted to developers and technical
users; regular end users would struggle to control the mashups faced with the complexity of their
programming language encoding. Moreover, such definition takes place at development time for
all possible execution environments. Users do not have the possibility to tailor their system for
particular environments accepting di↵ erent sets of adaptations in each one.
          </p>
          <p>
            Recent approaches propose the idea of service composition using an autonomous process where
fine-grained service composition is learnt from their interaction in a particular environment [
            <xref ref-type="bibr" rid="ref11">11</xref>
            ].
This proposal follows feature clouds’ ideas of composing fine-grained behaviour definitions from
a cloud of features. Nonetheless, the proposal is fully automated, leaving end users out of the
loop, which may compromise the approach’s acceptance.
4
          </p>
        </sec>
      </sec>
      <sec id="sec-1-4">
        <title>Challenges</title>
        <p>
          Many of the characteristics identified in the previous section have been or are being explored
in several areas of software engineering; in particular in the fields of context-oriented
programming [
          <xref ref-type="bibr" rid="ref12 ref13 ref2 ref40">40, 12, 2, 13</xref>
          ], context-aware databases [
          <xref ref-type="bibr" rid="ref16 ref32 ref33">32, 33, 16</xref>
          ], and adaptive user interfaces [
          <xref ref-type="bibr" rid="ref19 ref37">19, 37</xref>
          ].
In this section we highlight some harder challenges in the area of context-awareness, related to
the unification of the concepts in each of these specific fields. However, many other important
challenges remain to be addressed as well. Issues concerning distribution [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ], or security and
privacy [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ] are equally important for achieving full acceptance of adaptive technology to context.
Nonetheless, this paper focuses more on how to address, in a unified way, the technological
aspects to enable context-awareness from di↵ erent perspectives. Concepts of distribution, privacy
and security can be built later over these core concepts.
        </p>
        <sec id="sec-1-4-1">
          <title>A Unified Approach</title>
          <p>(
()
characteristics marked as (()
It is not easy to strike a right balance in achieving all characteristics presented in Section 3
within a single unified approach, since many of them have competing goals.
Di↵ erent fields
may prefer di↵ erent solutions or trade-o↵ s towards achieving these characteristics. Reconciling
all these competing views and solutions requires a truly multi-disciplinary approach within and
across fields. We now present an overview of competing characteristics in the development of
user-centric context-aware systems, which is summarised in Table 1. Characteristics marked as
) represent that a middle ground must be found between the two characteristics, whereas
) represent a conflicting objective between the characteristics, and
only one of them can be attained successfully. Each of the trade-o↵ s is evaluated with respect to
one of the perspectives to develop adaptive systems.</p>
        </sec>
        <sec id="sec-1-4-2">
          <title>Characteristics COP</title>
        </sec>
        <sec id="sec-1-4-3">
          <title>Data bases</title>
        </sec>
        <sec id="sec-1-4-4">
          <title>User interfaces</title>
          <p>Dynamic adaptation
Dynamic adaptation
Dynamic adaptation
Context awareness
Verifiability
Automation
Integration</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>Predictability</title>
    </sec>
    <sec id="sec-3">
      <title>User centricity</title>
    </sec>
    <sec id="sec-4">
      <title>User centricity</title>
    </sec>
    <sec id="sec-5">
      <title>Scalability</title>
      <p>User feedback &amp; control )(</p>
    </sec>
    <sec id="sec-6">
      <title>User feedback &amp; control Habitability</title>
      <p>
        )(
()
()
()
()
()
)(
()
()
()
)(
()
)(
is not visible anymore, or it changes its appearance, users may be unsure about what to expect
from the system [
        <xref ref-type="bibr" rid="ref35">35</xref>
        ].
      </p>
      <p>
        Dynamic adaptation vs. User feedback &amp; control. Similar to the previous trade-o↵ , adaptation
of user interfaces gives users the impression the system is incomprehensible and not under
their control [
        <xref ref-type="bibr" rid="ref35">35</xref>
        ]. Giving users too much decision power over adaptations would render
the system too rigid, hampering the dynamicity of adaptations, as the system would require
users to take an active action for every possible adaptation. Similarly, informing the user
about every adaptation would hamper systems’ dynamicity. Moreover, users could still feel
they are not in control of the system, given that all adaptations would take place without
their knowledge. A balance needs to be found between the feedback given to users [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ],
and the actions they can take over adaptations (e.g., rejecting or accepting and adaptation),
without presenting these options for all adaptations, but just some of them. Defining and
deciding which adaptation are users’ responsibility, which are seamless to users, and which
require informing users is an open research topic.
      </p>
      <p>Context awareness vs. User centricity. While users should be able to tailor the system to their
liking, this should not go to the extreme where the system is no longer taking into account
the context but just the users’ preferences configuration. A balance should be found between
the personalization attributes that can be inferred from the context, and those that should be
set as user preferences.</p>
      <p>Verifiability vs. Scalability. The objective with feature clouds is to have di↵ erent environments
in which a multitude of adaptations defined as fine-grained features are deployed to interact
with each other and be composed with other applications roaming around the environment.
To be successful, many adaptations would need to be available for each environment. If
not done carefully, behaviour introduced or removed by adaptations may break the correct
functioning of the system. To avoid situations in which the system behaviour may break,
it is possible to run a verification algorithm assuring adapted behaviour preserves system
correctness. However, as the amount of adaptations in the system grows, the time required for
its verification increases. If too much time is spent in the verification phase, the system may
become unusable. If the system has too many adaptations its verification might be unfeasible,
to increase the scale of the systems we can build, it is required to define verification techniques
from the three development perspectives. These techniques should be incremental and be
integrated with one another to exploit as much as possible the results obtained previously to
accelerate the verification process.</p>
      <p>
        Automation vs. User feedback &amp; control. Adaptations should take place based on the
surrounding context and user preferences without further user intervention. Interactions with
the user should be restricted to provide or request information about adaptation preferences.
To achieve this, there are two seemingly diverging paths. On the one hand, changes should
happen as seamlessly as possible. On the other hand, users should remain informed of
important changes to the system’s behaviour and should have the possibility to reject such
changes. A non disruptive way to provide information to users, and an interesting research
direction, is to use ambient output designed to take advantage of the users’ background
processing capabilities [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ].
      </p>
      <p>Integration vs. Habitability. The three perspectives to enable software adaptations provide their
unique models and definitions of what an adaptation is, how it is defined, and how it should
take place in the system. These perspectives do not necessarily couple with each other. When
unifying the three perspectives, special attention must be paid, not to over complicate the
model so that users are no longer able to build and compose their desired systems.</p>
      <sec id="sec-6-1">
        <title>Scalability</title>
        <p>Whereas scalability in terms of the number of contexts, users, or devices to be handled may
remain manageable (since these are often restricted by the scope of the application), the vision
of having online feature clouds containing a myriad of fine-grained features may pose a major
scalability issue. The problem of combining features selected from a feature cloud is acute, since
features are not necessarily di↵ erent, some features may provide behaviour similar to others,
while the di↵ erentiation between them is key to the system’s quality of service. Moreover, each
feature is applicable to certain contexts. Problems such as: (1) how to assure all (and only)
relevant features are discovered by users, (2) how to develop features that manage dependencies
with unforeseen features, and (3) how to handle incompatibilities between features, become even
more problematic with the system’s envisioned granularity and scale.</p>
      </sec>
      <sec id="sec-6-2">
        <title>Automated</title>
      </sec>
      <sec id="sec-6-3">
        <title>Best e↵ ort</title>
      </sec>
      <sec id="sec-6-4">
        <title>Acceptable</title>
        <p>Having an automated feature composition mechanism also poses a major challenge (apart from
the scalability challenge presented above). Indeed, not only features that were designed to work
together can be combined, but the composition with all features in the cloud could be possible.
To some extent, the composition mechanism will do its best to combine any features users find
relevant to combine, even when this was not anticipated. This could occur often given the
potential size and dynamicity of feature clouds, which makes it impossible to foresee all possible
combinations, as some features will only appear in the environment long after the deployment of
others.</p>
        <p>Given the competing goals of high dynamicity, adaptability, and context-awareness on the one
hand, versus guaranteeing predictability, resilience and robustness on the other, it may not always
be possible to compose the desired combination of features. In such cases, the composition
mechanism needs to resort to a best-e↵ ort approach to propose a composition that is robust
while remaining as close as possible to the user’s desires. Deciding what is the ‘best’ solution is
challenging as it may depend on the context and goals of the application as well as on the user’s
perception.</p>
        <p>Finally, probably the most important challenge to be addressed for the technology to mature,
will be to create adaptive systems that users can understand, accept, and ultimately adopt.
This touches upon many of the aforementioned characteristics and challenges such as user
centricity, predictability, resilience, non-intrusiveness, user feedback, automation, scalability and
user-tailorability. Empirical studies as well as test scenarios (e.g., A/B testing) are required to
assess whether these systems are desirable or acceptable by users and in what form.
5</p>
        <sec id="sec-6-4-1">
          <title>The Road Ahead</title>
          <p>
            To achieve our user-centric vision of context-aware feature clouds, we need an advanced feature
selection and software composition solution where:
1. At a high-level, the features and the contexts they depend upon, are presented to the end-user
in an easy-to-understand way, that clearly depicts the intra- and inter-relationships between
features and contexts (for example, using a context feature model [
            <xref ref-type="bibr" rid="ref10">10</xref>
            ]).
2. Users can then select, on-the-fly, the high-level features they desire from this feature cloud.
          </p>
          <p>The relations present in the model, combined with a recommendation system based on past
decisions, may be helpful for the user to choose the most appropriate features.
3. Once chosen, the di↵ erent features selected are combined automatically according to the
context.
4. This high-level model already allows the verification of some consistency properties of the
proposed feature cloud. Potential composition conflicts are resolved dynamically according
to pre-defined composition policies, managed by an underlying lower-level composition
mechanism.
5. The lower-level composition mechanism is similar to current-day context-oriented
programming approaches, which define features as fine-grained building blocks that describe small
pieces of functionality relevant to particular contexts.
6. These primitive building blocks can be combined into larger ones through composition
policies. In addition to default predefined composition policies, the programmer can define
customized policies, that may depend on the context. Even more, to some extent the
composition policies can be tailored by end users, for example, to declare what conflict resolution
rules they prefer under what circumstances.
7. At composition time, taking into account the composition policies and the relationships
between contexts and features, a further verification of the consistency of the composition
can be performed.
8. Acceptability studies at user interaction level will help define guidelines that will channel
the composition policies and necessary mechanisms at the user interface level.</p>
          <p>Observe how in this solution the line between end-users and developers starts to blur, since
both can define combinations of features, albeit at a di↵ erent level. The developer mostly declares
low-level features and combinations thereof, to be o↵ ered to the end-user. End-users select sets
of features they would like to see combined, and the system then composes them automatically
based on the high-level relationships between these features (and contexts) and the low-level
composition policies declared by developers (some of which may be fine-tuned by end-users
themselves).
6</p>
        </sec>
        <sec id="sec-6-4-2">
          <title>Summary</title>
          <p>With the advent of ubiquitous and mobile computing and the Internet of Things, software
systems are more and more required to adapt to their surrounding and execution environments. As
a consequence, research on context-oriented software development has seen multiple
achievements, in di↵ erent domains, during the last two decades. However, although impressive research
advances have been made, context-aware aspects of software systems often remain hard-coded.
We believe this is due to the dispersion of research results over multiple domains within and
beyond computer science, and that a multidisciplinary approach with the user as focal point is
needed to progress further. In this paper, we advocated a vision of context-oriented software
built from fine-grained features gathered from online feature clouds. We presented a four-step
plan towards a user-centric approach of context-oriented systems. We then identified a number
of characteristics that define user-centric context-oriented software. Whereas some of these
characteristics have been explored by researchers, many challenges still lie in front of us if we are to
achieve true end-user and software developer acceptance and satisfaction. We finally proposed to
address these challenges with an advanced feature selection and software composition solution
that blurs the line between software developers and users.</p>
        </sec>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>L. Abo</given-names>
            <surname>Zaid</surname>
          </string-name>
          and
          <string-name>
            <given-names>O. De</given-names>
            <surname>Troyer</surname>
          </string-name>
          .
          <article-title>Towards modeling data variability in software product lines</article-title>
          . In T. Halpin,
          <string-name>
            <given-names>S.</given-names>
            <surname>Nurcan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Krogstie</surname>
          </string-name>
          , P. So↵ er, E. Proper,
          <string-name>
            <given-names>R.</given-names>
            <surname>Schmidt</surname>
          </string-name>
          , and I. Bider, editors,
          <source>Enterprise, Business-Process and Information Systems Modeling</source>
          , volume
          <volume>81</volume>
          <source>of Lecture Notes in Business Information Processing</source>
          , pages
          <fpage>453</fpage>
          -
          <lpage>467</lpage>
          , Berlin, Heidelberg,
          <year>2011</year>
          . Springer Berlin Heidelberg.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>T.</given-names>
            <surname>Aotani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Kamina</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Masuhara</surname>
          </string-name>
          .
          <article-title>Type-safe layer-introduced base functions with imperative layer activation</article-title>
          .
          <source>In Proceedings of the 7th International Workshop on Context-Oriented Programming, COP'15</source>
          , pages
          <issue>8</issue>
          :
          <fpage>1</fpage>
          -
          <issue>8</issue>
          :
          <fpage>7</fpage>
          , New York, NY, USA,
          <year>2015</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>D.</given-names>
            <surname>Billsus</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. A.</given-names>
            <surname>Brunk</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Evans</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Gladish</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Pazzani</surname>
          </string-name>
          .
          <article-title>Adaptive interfaces for ubiquitous web access</article-title>
          .
          <source>Commun. ACM</source>
          ,
          <volume>45</volume>
          (
          <issue>5</issue>
          ):
          <fpage>34</fpage>
          -
          <lpage>38</lpage>
          , May
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>J.</given-names>
            <surname>Bohn</surname>
          </string-name>
          , V. Coroama˘,
          <string-name>
            <given-names>M.</given-names>
            <surname>Langheinrich</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Mattern</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Rohs</surname>
          </string-name>
          . Social, economic, and
          <article-title>ethical implications of ambient intelligence and ubiquitous computing</article-title>
          .
          <source>In Ambient intelligence</source>
          , pages
          <fpage>5</fpage>
          -
          <lpage>29</lpage>
          . Springer,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>C.</given-names>
            <surname>Bolchini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. A.</given-names>
            <surname>Curino</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Orsi</surname>
          </string-name>
          , E. Quintarelli,
          <string-name>
            <given-names>R.</given-names>
            <surname>Rossato</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F. A.</given-names>
            <surname>Schreiber</surname>
          </string-name>
          , and
          <string-name>
            <given-names>L.</given-names>
            <surname>Tanca</surname>
          </string-name>
          .
          <article-title>And what can context do for data? Commun</article-title>
          . ACM,
          <volume>52</volume>
          (
          <issue>11</issue>
          ):
          <fpage>136</fpage>
          -
          <lpage>140</lpage>
          , Nov.
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>A.</given-names>
            <surname>Brodt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Nicklas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Sathish</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Mitschang</surname>
          </string-name>
          .
          <article-title>Context-aware mashups for mobile devices</article-title>
          .
          <source>In Proceedings of the 9th international conference on Web Information Systems Engineering</source>
          , WISE'
          <volume>08</volume>
          , pages
          <fpage>280</fpage>
          -
          <lpage>291</lpage>
          , Berlin, Heidelberg,
          <year>2008</year>
          . Springer-Verlag.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>R.</given-names>
            <surname>Calinescu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Ghezzi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Kwiatkowska</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Mirandola</surname>
          </string-name>
          .
          <article-title>Self-adaptive software needs quantitative verification at runtime</article-title>
          .
          <source>Communications of the ACM</source>
          ,
          <volume>55</volume>
          (
          <issue>9</issue>
          ):
          <fpage>69</fpage>
          -
          <lpage>77</lpage>
          , Sept.
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>G.</given-names>
            <surname>Calvary</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Coutaz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Thevenin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Q.</given-names>
            <surname>Limbourg</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Bouillon</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Vanderdonckt</surname>
          </string-name>
          .
          <article-title>A unifying reference framework for multi-target user interfaces</article-title>
          .
          <source>Interacting with Computers</source>
          ,
          <volume>15</volume>
          (
          <issue>3</issue>
          ):
          <fpage>289</fpage>
          -
          <lpage>308</lpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>G.</given-names>
            <surname>Calvary</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Coutaz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Thevenin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Q.</given-names>
            <surname>Limbourg</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Souchon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Bouillon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Florins</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Vanderdonckt</surname>
          </string-name>
          , and
          <string-name>
            <surname>J. V.</surname>
          </string-name>
          <article-title>Plasticity of user interfaces: A revisited reference framework</article-title>
          .
          <source>In In Task Models and Diagrams for User Interface Design</source>
          , pages
          <fpage>127</fpage>
          -
          <lpage>134</lpage>
          . Publishing House,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>R.</given-names>
            <surname>Capilla</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Ortiz</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Hinchey</surname>
          </string-name>
          .
          <article-title>Context variability for context-aware systems</article-title>
          .
          <source>Computer</source>
          ,
          <volume>47</volume>
          (
          <issue>2</issue>
          ):
          <fpage>85</fpage>
          -
          <lpage>87</lpage>
          ,
          <year>Feb 2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>N.</given-names>
            <surname>Cardozo</surname>
          </string-name>
          .
          <article-title>Emergent software services</article-title>
          .
          <source>In In Proceedings of the ACM International Symposium on New Ideas and Reflections on Software, Onward'16</source>
          , New York, NY, USA,
          <year>October 2016</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>N.</given-names>
            <surname>Cardozo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Christophe</surname>
          </string-name>
          ,
          <string-name>
            <surname>C. De Roover</surname>
          </string-name>
          , and W. De Meuter.
          <article-title>Run-time validation of behavioral adaptations</article-title>
          .
          <source>In Proceedings of 6th International Workshop on Context-Oriented Programming, COP'14</source>
          , pages
          <issue>5</issue>
          :
          <fpage>1</fpage>
          -
          <issue>5</issue>
          :
          <fpage>6</fpage>
          , New York, NY, USA,
          <year>2014</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>N.</given-names>
            <surname>Cardozo</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Clarke</surname>
          </string-name>
          .
          <article-title>Context slices: Lightweight discovery of behavioral adaptations</article-title>
          .
          <source>In Proceedings of the Context-Oriented Programming Workshop</source>
          , COP'
          <volume>15</volume>
          , pages
          <issue>2</issue>
          :
          <fpage>1</fpage>
          -
          <issue>2</issue>
          :
          <fpage>6</fpage>
          . ACM,
          <year>July 2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>N.</given-names>
            <surname>Cardozo</surname>
          </string-name>
          , W. De Meuter,
          <string-name>
            <given-names>K.</given-names>
            <surname>Mens</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>González</surname>
          </string-name>
          , and P.-Y. Orban.
          <article-title>Features on demand</article-title>
          .
          <source>In Proceedings of the Eighth International Workshop on Variability Modelling of Software-Intensive Systems, VaMoS '14</source>
          , pages
          <fpage>18</fpage>
          :
          <fpage>1</fpage>
          -
          <lpage>18</lpage>
          :
          <fpage>8</fpage>
          ,
          <string-name>
            <surname>Sophia</surname>
            <given-names>Antipolis</given-names>
          </string-name>
          , France,
          <year>2013</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>N.</given-names>
            <surname>Cardozo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>González</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Mens</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. V. D.</given-names>
            <surname>Straeten</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Vallejos</surname>
          </string-name>
          , and
          <string-name>
            <surname>T. D'Hondt</surname>
          </string-name>
          .
          <article-title>Semantics for consistent activation in context-oriented systems</article-title>
          .
          <source>Information and Software Technology</source>
          ,
          <volume>58</volume>
          :
          <fpage>71</fpage>
          -
          <lpage>94</lpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>S.</given-names>
            <surname>Castro</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>González</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Mens</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Denker</surname>
          </string-name>
          .
          <article-title>Dynamicschema: a lightweight persistency framework for context-oriented data management</article-title>
          .
          <source>In Proceedings of the International Workshop on Context-Oriented Programming (COP</source>
          <year>2012</year>
          ), pages
          <fpage>5</fpage>
          :
          <fpage>1</fpage>
          -
          <issue>5</issue>
          :
          <fpage>6</fpage>
          . ACM,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>B.</given-names>
            <surname>Desmet</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Vallejos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Costanza</surname>
          </string-name>
          , W. De Meuter, and
          <string-name>
            <surname>T. D'Hondt</surname>
          </string-name>
          .
          <article-title>Context-orientet domain analysis</article-title>
          .
          <source>In Modeling and Using Context</source>
          ,
          <source>Sixth International and Interdisciplinary Conference on Modeling and Using Context</source>
          , pages
          <fpage>178</fpage>
          -
          <lpage>191</lpage>
          ,
          <year>August 2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>C.</given-names>
            <surname>Duarte</surname>
          </string-name>
          and
          <string-name>
            <given-names>L.</given-names>
            <surname>Carriço</surname>
          </string-name>
          .
          <article-title>A conceptual framework for developing adaptive multimodal applications</article-title>
          .
          <source>In Proceedings of the 11th International Conference on Intelligent User Interfaces</source>
          ,
          <source>IUI '06</source>
          , pages
          <fpage>132</fpage>
          -
          <lpage>139</lpage>
          , Sydney, Australia,
          <year>2006</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>B.</given-names>
            <surname>Dumas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Solórzano</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Signer</surname>
          </string-name>
          .
          <article-title>Design guidelines for adaptive multimodal mobile input solutions</article-title>
          .
          <source>In Proceedings of MobileHCI'13</source>
          , pages
          <fpage>285</fpage>
          -
          <lpage>294</lpage>
          , Munich, Germany,
          <year>2013</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>M.</given-names>
            <surname>Friedewald</surname>
          </string-name>
          , E. Vildjiounaite,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Punie</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Wright</surname>
          </string-name>
          .
          <article-title>The brave new world of ambient intelligence: An analysis of scenarios regarding privacy, identity and security issues</article-title>
          .
          <source>In Security in Pervasive Computing</source>
          , pages
          <fpage>119</fpage>
          -
          <lpage>133</lpage>
          . Springer,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>S.</given-names>
            <surname>González</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Cardozo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Mens</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Cádiz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.-C.</given-names>
            <surname>Libbrecht</surname>
          </string-name>
          , and J. Go↵ aux. Subjective-c:
          <article-title>Bringing context to mobile platform programming</article-title>
          . In B.
          <string-name>
            <surname>Malloy</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Staab</surname>
          </string-name>
          , and M. van den Brand, editors,
          <source>Proceedings of the International Conference on Proceedings of the International Conference on Software Language Engineering</source>
          , volume
          <volume>6563</volume>
          of series-lncs, pages
          <fpage>246</fpage>
          -
          <lpage>265</lpage>
          . Springer,
          <year>June 2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>R.</given-names>
            <surname>Hirschfeld</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Costanza</surname>
          </string-name>
          , and
          <string-name>
            <given-names>O.</given-names>
            <surname>Nierstrasz</surname>
          </string-name>
          .
          <article-title>Context-oriented programming</article-title>
          .
          <source>Journal of Object Technology</source>
          ,
          <volume>7</volume>
          (
          <issue>3</issue>
          ):
          <fpage>125</fpage>
          -
          <lpage>151</lpage>
          , March-April
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>M. U.</given-names>
            <surname>Iftikhar</surname>
          </string-name>
          and
          <string-name>
            <given-names>D.</given-names>
            <surname>Weyns</surname>
          </string-name>
          . Activforms:
          <article-title>Active formal models for self-adaptation</article-title>
          .
          <source>In Proceedings of the International Symposium on Software Engineering for Adaptive</source>
          and
          <string-name>
            <surname>Self-Managing</surname>
            <given-names>Systems</given-names>
          </string-name>
          , SEAMS'
          <fpage>14</fpage>
          . ACM,
          <year>June 2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>H.</given-names>
            <surname>Ishii</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Wisneski</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Brave</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Dahley</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Gorbet</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Ullmer</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Yarin</surname>
          </string-name>
          .
          <article-title>ambientroom: Integrating ambient media with architectural space</article-title>
          .
          <source>In CHI 98 Conference Summary on Human Factors in Computing Systems, CHI '98</source>
          , pages
          <fpage>173</fpage>
          -
          <lpage>174</lpage>
          , Los Angeles, California, USA,
          <year>1998</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>K.</given-names>
            <surname>Leichtenstern</surname>
          </string-name>
          , E. André, and
          <string-name>
            <given-names>E.</given-names>
            <surname>Kurdyukova</surname>
          </string-name>
          .
          <article-title>Managing user trust for self-adaptive ubiquitous computing systems</article-title>
          .
          <source>In Proceedings of the 8th International Conference on Advances in Mobile Computing and Multimedia</source>
          ,
          <source>MoMM'10</source>
          , pages
          <fpage>409</fpage>
          -
          <lpage>414</lpage>
          , New York, NY, USA,
          <year>2010</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>H.</given-names>
            <surname>Lieberman</surname>
          </string-name>
          and
          <string-name>
            <given-names>T.</given-names>
            <surname>Selker</surname>
          </string-name>
          .
          <article-title>Out of context: Computer systems that adapt to, and learn from, context</article-title>
          .
          <source>IBM Systems Journal</source>
          ,
          <volume>39</volume>
          (
          <issue>3</issue>
          &amp;4):
          <fpage>617</fpage>
          -
          <lpage>631</lpage>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>U.</given-names>
            <surname>Malinowski</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Kühme</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Dieterich</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Schneider-Hufschmidt</surname>
          </string-name>
          .
          <article-title>A taxonomy of adaptive user interfaces</article-title>
          .
          <source>In Proceedings of the Conference on People and Computers VII, HCI'92</source>
          , pages
          <fpage>391</fpage>
          -
          <lpage>414</lpage>
          , York, United Kingdom,
          <year>1993</year>
          . Cambridge University Press.
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <given-names>D.</given-names>
            <surname>Martinenghi</surname>
          </string-name>
          and
          <string-name>
            <given-names>R.</given-names>
            <surname>Torlone</surname>
          </string-name>
          .
          <article-title>A logical approach to context-aware databases</article-title>
          .
          <source>In Management of the Interconnected World</source>
          , pages
          <fpage>211</fpage>
          -
          <lpage>219</lpage>
          .
          <string-name>
            <surname>Physica-Verlag</surname>
            <given-names>HD</given-names>
          </string-name>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <given-names>F.</given-names>
            <surname>Mattern</surname>
          </string-name>
          and
          <string-name>
            <given-names>C.</given-names>
            <surname>Floerkemeier</surname>
          </string-name>
          .
          <article-title>From the internet of computers to the internet of things</article-title>
          .
          <source>Informatik-Spektrum</source>
          ,
          <volume>33</volume>
          (
          <issue>2</issue>
          ):
          <fpage>107</fpage>
          -
          <lpage>121</lpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <given-names>K.</given-names>
            <surname>Mens</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Cardozo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Dumas</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Cleve</surname>
          </string-name>
          .
          <article-title>Breaking the walls: A unified vision on context-oriented software engineering</article-title>
          ,
          <year>2015</year>
          .
          <article-title>14th BElgian-NEtherlands software eVOLution seminar - BENEVOL.</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31]
          <string-name>
            <given-names>M.</given-names>
            <surname>Mori</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Cleve</surname>
          </string-name>
          .
          <article-title>Feature-based adaptation of database schemas</article-title>
          .
          <source>In Proc. of MOMPES</source>
          <year>2012</year>
          , volume
          <volume>7706</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>85</fpage>
          -
          <lpage>105</lpage>
          . Springer,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          [32]
          <string-name>
            <given-names>M.</given-names>
            <surname>Mori</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Cleve</surname>
          </string-name>
          .
          <article-title>Towards highly adaptive data-intensive systems: A research agenda</article-title>
          .
          <source>In Proceedings of First International Workshop on Variability Support in Information Systems (VarIS</source>
          <year>2013</year>
          ), volume
          <volume>148</volume>
          <source>of Lecture Notes in Business Information Processing</source>
          , pages
          <fpage>386</fpage>
          -
          <lpage>401</lpage>
          . Springer,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          [33]
          <string-name>
            <given-names>M.</given-names>
            <surname>Mori</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Cleve</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Inverardi</surname>
          </string-name>
          .
          <article-title>A stability-aware approach to continuous self-adaptation of data-intensive systems</article-title>
          .
          <source>In Proceedings of the 2nd International Conference on Context-Aware Systems and Applications (ICCASA</source>
          <year>2013</year>
          ). Springer Verlag,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          [34]
          <string-name>
            <given-names>L.</given-names>
            <surname>Nahabedian</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Braberman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N. D</given-names>
            <surname>'Ippolito</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Honiden</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Kramer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Tei</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Uchitel</surname>
          </string-name>
          .
          <article-title>Assured and correct dynamic update of controllers</article-title>
          .
          <source>In Proceedings of the 11th International Symposium on Software Engineering for Adaptive</source>
          and
          <string-name>
            <surname>Self-Managing</surname>
            <given-names>Systems</given-names>
          </string-name>
          , SEAMS'
          <volume>16</volume>
          , pages
          <fpage>96</fpage>
          -
          <lpage>107</lpage>
          , New York, NY, USA,
          <year>2016</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          [35]
          <string-name>
            <given-names>T. F.</given-names>
            <surname>Paymans</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Lindenberg</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Neerincx</surname>
          </string-name>
          .
          <article-title>Usability trade-o↵ s for adaptive user interfaces: Ease of use and learnability</article-title>
          .
          <source>In Proc. of IUI'04</source>
          , pages
          <fpage>301</fpage>
          -
          <lpage>303</lpage>
          , Funchal, Madeira, Portugal,
          <year>2004</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          [36]
          <string-name>
            <given-names>H.</given-names>
            <surname>Psaier</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Dustdar</surname>
          </string-name>
          .
          <article-title>A survey on self-healing systems: approaches and systems</article-title>
          . Computing,
          <volume>91</volume>
          (
          <issue>1</issue>
          ):
          <fpage>43</fpage>
          -
          <lpage>73</lpage>
          ,
          <year>August 2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          [37]
          <string-name>
            <given-names>S.</given-names>
            <surname>Rafiqi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Nair</surname>
          </string-name>
          , and
          <string-name>
            <given-names>E.</given-names>
            <surname>Fernandez</surname>
          </string-name>
          .
          <article-title>Cognitive and context-aware applications</article-title>
          .
          <source>In Proceedings of the 7th International Conference on PErvasive Technologies</source>
          Related to Assistive Environments, PETRA '
          <volume>14</volume>
          , pages
          <fpage>23</fpage>
          :
          <fpage>1</fpage>
          -
          <lpage>23</lpage>
          :
          <fpage>7</fpage>
          , New York, NY, USA,
          <year>2014</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref38">
        <mixed-citation>
          [38]
          <string-name>
            <given-names>E.</given-names>
            <surname>Rohn</surname>
          </string-name>
          .
          <article-title>Predicting context aware computing performance</article-title>
          .
          <source>Ubiquity</source>
          ,
          <year>2003</year>
          (February):
          <fpage>1</fpage>
          -
          <lpage>17</lpage>
          , Feb.
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref39">
        <mixed-citation>
          [39]
          <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</article-title>
          .
          <source>ACM Transactions on Autonomous and Adaptive Systems</source>
          ,
          <volume>4</volume>
          (
          <issue>2</issue>
          ):
          <volume>14</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>14</lpage>
          :
          <fpage>42</fpage>
          , May
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref40">
        <mixed-citation>
          [40]
          <string-name>
            <given-names>G.</given-names>
            <surname>Salvaneschi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Ghezzi</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Pradella</surname>
          </string-name>
          .
          <article-title>Context-oriented programming: A software engineering perspective</article-title>
          .
          <source>Journal of Systems and Software</source>
          ,
          <volume>85</volume>
          (
          <issue>8</issue>
          ):
          <fpage>1801</fpage>
          -
          <lpage>1817</lpage>
          ,
          <year>August 2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref41">
        <mixed-citation>
          [41]
          <string-name>
            <given-names>J.</given-names>
            <surname>Vallejos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Huang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Costanza</surname>
          </string-name>
          , W. De Meuter, and
          <string-name>
            <surname>T. D'Hondt</surname>
          </string-name>
          .
          <article-title>A programming language approach for context-aware mash-ups</article-title>
          .
          <source>In Third International Workshop on Web APIs and Services Mashups</source>
          , Mashups'
          <fpage>09</fpage>
          . ACM,
          <year>October 2009</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>