<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>A Pattern Approach to Dealing with NFRs in Ubiquitous Systems</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Tomas Ruiz-Lopez</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jose Luis Garrido</string-name>
          <email>jgarridog@ugr.es</email>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Sam Supakkul</string-name>
          <email>ssupakkul@ieee.org</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Lawrence Chung</string-name>
          <email>chung@utdallas.edu</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Computer Science, University of Texas at Dallas</institution>
          ,
          <country country="US">USA</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Sabre Inc.</institution>
          ,
          <country country="US">USA</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Software Enginering Department, University of Granada Periodista Daniel Saucedo Aranda s/n</institution>
          ,
          <addr-line>18.014 Granada</addr-line>
          ,
          <country country="ES">Spain</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Ubiquitous Computing has become increasingly important, thanks to its attractive aims to provide invisible computing everywhere and anytime. Dealing with Non-Functional Requirements (NFRs), such as usability or privacy, during requirements engineering for Ubiquitous Computing, however, is oftentimes a di cult task, given the unique features of this paradigm (e.g. context-awareness or technological unobtrusiveness). In this paper, we present an approach in which pieces of knowledge about recurring situations in ubiquitous systems are identied and clearly captured as patterns. The approach is illustrated through an example of an e-Learning ubiquitous system.</p>
      </abstract>
      <kwd-group>
        <kwd>requirements engineering</kwd>
        <kwd>patterns</kwd>
        <kwd>ubiquitous computing</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Dealing with Non-Functional Requirements (NFRs), such as usability or privacy,
during requirements engineering for Ubiquitous Computing [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], however, is
oftentimes a di cult task. Ubiquitous Computing requires a body of both broad
and deep knowledge about such unique features as context-awareness and
technological unobtrusiveness in this paradigm, and yet such knowledge by and large
has been exercised only implicitly and informally, leading to miscommunications
and lost opportunities for reuse.
      </p>
      <p>
        Consider an e-Learning ubiquitous system, as shown in Figure 1. It depicts
three situations, where some concerns have not been addressed properly: (a)
phones start to ring during a class, when they are not supposed to; (b) devices
expose sensitive data to some people that should not be aware of the data; and
(c) the security mechanism to access the classroom/lab asks a person to enter a
password to open the door. These three situations are contrary to some of the
key principles of Ubiquitous Computing, such as context-aware adaptation or
unobtrusiveness of the technology in the user's daily activities. These situations
have something in common - a bad assessment of di erent Non-Functional
Requirements (NFRs), such as usability, privacy or security [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] in di erent context
situations. Failure to systematically treat NFRs under contextual constraints
may result in an overall loss of quality of the system, as pointed out in the
previous scenario. Moreover, these situations can occur in some other domains as
well (e.g. interrupting a movie at the cinema or sharing medical data outside
the hospital). In other words, these problems can be recurring and may happen
regardless of the type of the system.
      </p>
      <p>
        Undoubtedly, clearly capturing knowledge about such problems and
solutions to them for later explicit reuse would be highly desirable. In this paper,
we present an approach in which pieces of knowledge about recurring situations
in ubiquitous systems are identi ed and clearly captured as patterns, and later
explicitly reused across di erent domains. The use of patterns during
Requirements Engineering is not new. It has been explored in previous works [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], but
there is little or no previous work regarding Patterns for NFRs in Ubiquitous
Systems. Our work is complementary to the method to systematically deal with
NFRs in Ubiquitous Systems [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
      </p>
      <p>The rest of this paper is organized as follows. Our pattern approach to
dealing with NFRs for Ubiquitous systems is introduced in Section 2, where di erent
types patterns are discussed, together with their bene ts and drawbacks. The
approach is illustrated through the application of patterns to an e-Learning
Ubiquitous System in Section 3. Related works are described in Section 4.
Finally, a summary and contributions of the paper, together with future work, are
described in Section 5.</p>
    </sec>
    <sec id="sec-2">
      <title>Non-Functional Requirements Patterns for Ubiquitous</title>
    </sec>
    <sec id="sec-3">
      <title>Systems</title>
      <p>In this section, the core of this proposal is presented. It consists of a set of
Non-Functional Requirements Patterns for Ubiquitous Systems that have been
identi ed from the study of existing systems and the experience of the authors
in the construction of ubiquitous applications. The patterns presented in this
section are a small subset which has been chosen to illustrate their need. The
patterns presented above are a subset from a larger set that have been identi ed.
Moreover, there are di erent dimensions to organize them that can enable the
appearance of new patterns by their generalization, specialization, composition
or instantiation.
2.1</p>
      <sec id="sec-3-1">
        <title>Context-sensitive I/O Pattern.</title>
        <p>
          Ubiquitous systems are essentially interactive. Thus, the user and the system
needs to exchange information with each other using natural interfaces that,
at the same time, are not obtrusive to the user. The way the system outputs
information to the user and the user provides input to the system should not
be xed. In fact, it depends on contextual circumstances. Depending on the
environment that the user is, the system may decide to provide the information
in a di erent way, or even do nothing, if that causes a disruption in the user's
activities [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ].
        </p>
        <p>The Context-sensitive I/O Pattern provides a possible solution to model this
situation, which is recurring in di erent ubiquitous systems. Consider that there
is a goal, G, that aims to provide or receive information from the user. Many
di erent operationalizations, O1 : : : On, may contribute to the satisfaction of this
objective, with di erent levels of contribution. Finally, some context situations,
C1 : : : Cm, are relevant to the system. The pattern proposes to relate the
operationalizations to the goal, conditioned by the occurrence of some context
situations. Formally speaking, Oi contributes to G under the context situation
Cj (Figure 2, top).
2.2</p>
      </sec>
      <sec id="sec-3-2">
        <title>Context-sensitive Data Sharing Pattern.</title>
        <p>
          Preservation of sensitive data is a general challenge for software designers, which
also holds true for ubiquitous systems [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ]. Personalization and customization are
key features of this kind of systems, and to be able to achieve them, they need
to know big amounts of the user's sensitive data.
        </p>
        <p>To achieve this task, either the user provides data to feed the adaptation
mechanisms, or the system records events from the user's daily life and applies
mining techniques to infer the user pro le from user's behavior, and try to
anticipate the customization. Dangerous scenarios can happen when all this sensitive
data have to be exchanged with others. Adaptations in new environments or data
exchange with other users, or between applications on their behalf, can lead to
the exposure of sensitive data that the user does not want to share. In order
to overcome this situation, the Context-sensitive Data Sharing Pattern proposes
to take into account the trustworthiness of the context situation to determine
how much information is shared. To achieve this, user sensitive information is
organized in a hierarchical structure, where the bottom level nodes provide few
user information, and the top level nodes provide a lot of information. Formally,
operationalization Oi (that enables the exchange of data Di) contributes to the
satisfaction of goal G under context situation Cj (Figure 2, middle).</p>
        <p>
          When this structure has been created, each node represents the amount of
information that may be shared. These nodes are related to the context situations
where they have to be shared, in such a way that the lower the trustworthiness
of the situation is, the less information is shared. Also, it enables to provide
the right amount of information at each time, enhancing the accuracy of the
information transmission.
In many cases, users need to do security-sensitive activities, either because they
deal with private information or because they access to certain devices which
use is restricted. Thus, the ubiquitous system has to determine the identity of
the user to guarantee access to the desired data or operations. However, the
paradigm claims that this authentication should be done in a transparent way,
making the analyst to face a tradeo between security and unobtrusiveness [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ].
The Unobtrusive identi cation Pattern aims to provide support for a tradeo
between Security and Unobtrusiveness applying the following strategy (Figure
2, bottom):
1. Decompose softgoal Security into di erent sub-softgoals, S1 : : : Sn, where
the security level of Si is higher than the security level of Sj if i &lt; j. In
order to perform the decomposition, take into account the di erent context
situations, A1 : : : Am where the security levels may change.
2. Decompose softgoal Unobtrusiveness into di erent sub-softgoals, U1 : : : Un,
where the accepted level of unobtrusiveness of Ui is lower than the accepted
level of unobtrusiveness of Uj if i &lt; j. In order to perform the decomposition,
proceed similarly to what was exposed in the previous step, taking into
account context situations.
3. Assign operationalizations, O1 : : : On, that help to satis ce the security
requirements, in such a way that Oi helps to achieve both Si and Ui, but hurts
Uj , for all j &gt; i.
3
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Illustrative Example: e-Learning Ubiquitous System</title>
      <p>
        The application of the proposed patterns to the running scenario is as follows:
{ Context-sensitive I/O: When students are communicating with each other,
the system may need to deliver messages (i.e., output some information).
Depending on whether they are in class or not, the device should vibrate or
ring, respectively, in order to avoid disturbances in the class (Figure 3, top).
{ Context-sensitive Data Sharing: The e-Learning system supports
communication between users through nearby devices discovery. In these cases,
the user needs to provide some information about his/her identity and
sensitive data. In order to provide accurate data, s/he may decide to share
his/her student records to School administrative sta , and not to share any
information to unknown users. Outside school, s/he may, for instance, share
his/her medical data to hospital services sta (Figure 3, middle).
{ Unobtrusive Authentication: Consider two possible situations with
different security levels: accessing a lab and accessing to someone's private
account. In this case, unobtrusiveness and security are decomposed taking
this into account. For the former, using Near Field Communication (NFC)
[
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] can be a good option, since this technology enables the detection of a
device carried by the user without any user action, while being secure. For
the latter, the typical username and password authentication can be chosen,
since more sensitive data are handled (Figure 3, bottom).
      </p>
      <p>Figure 4 depicts the resulting scenario after the application of the patterns.
The problems that were presented at the beginning of this paper have been
addressed through the application of the proposed patterns. Also, some NFRs have
been enhanced. Since I/O is adapted to the context, the number of unnecessary
interruptions decreases and the users are more likely to accept the system. The
amount of data that are shared is more accurate to the target receiver, and it
avoids sending private data to unknown users as well. Finally, users can perform
normal activities, like accessing a class, in the usual way, but still being secured.
4</p>
    </sec>
    <sec id="sec-5">
      <title>Discussion</title>
      <p>
        The notion of design pattern in software engineering has been present for several
years since the appearance of the book by the Gang of Four with a set of
patterns for Object-oriented design [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Similar to this approach, some authors have
identi ed recurring design patterns in the ubiquitous computing eld [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Some
other existing works try to discover and de ne potential patterns that mainly
focus on one of the main features of ubiquitous systems, context-awareness [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ].
      </p>
      <p>
        The use of patterns is not limited to design; requirements patterns can also
be de ned and used, although systematic treatment of NFRs through the
application of patterns has not been widely explored. For instance, Withall [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]
presents an extensive catalogue of software requirements patterns, grouped into
di erent categories, where there are speci c patterns regarding some NFRs, such
as performance or usability. These patterns are broad and not speci c of
Ubiquitous Computing. Supakkul et al. [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] propose an NFR Pattern approach, also
for general-purpose systems. The patterns in this proposal can be located in a
meta-level, as proposed in this paper. To the best of our knowledge, there is
no previous work regarding patterns for requirements engineering in ubiquitous
systems.
      </p>
      <p>
        The Context-sensitive I/O pattern can be de ned from Mark Weiser's initial
de nition of Ubiquitous Computing [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], and has been de ned as a design pattern
in [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Several approaches can be found to provide unobtrusive identi cation [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ],
as well as to enhance user's privacy through the concept of pseudonymity [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], as in
the Context-sensitive Data Sharing pattern. There is a wide use and application
of the presented patterns in several related works, showing their usefulness.
5
      </p>
    </sec>
    <sec id="sec-6">
      <title>Conclusions</title>
      <p>
        Dealing with NFRs for Ubiquitous Systems has to address their unique features,
which oftentimes requires the use of a rich body of knowledge. In this paper,
we have presented a pattern-based approach to explicitly and clearly
capturing, organizing and reusing such knowledge, with promising results in some of
our developments [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. In particular, we have presented three important types of
patterns, among a more extensive set of patterns, from our analysis of, and
experience in, a number of existing ubiquitous systems. In our experience, their use
has been useful in a number of domains, as discussed earlier in this paper. We
have also presented several ways to organize the patterns, hence making them
amenable to extensions, through generalization and specialization, composition,
and instantiation. Our systematic treatment of NFRs for Ubiquitous Computing
is novel, since it has been explored in little or no previous work. As illustrated
in the paper, our approach can help people for a wide variety of systems.
      </p>
      <p>For future work, we are planning to build a repository of patterns, which can
be searched and grow with new knowledge. Currently, we are investigating how
to achieve a high quality design based on a pattern-based requirements analysis.
Also, we are planning to study the implications of these patterns in the software
design stage, as well as analyzing those techniques that enable model
transformation to (semi-automatically) derive designs and implementations following a
model-driven engineering approach.</p>
    </sec>
    <sec id="sec-7">
      <title>Acknowledgements</title>
      <p>This research work is funded by the Innovation O ce from the Andalusian
Government through project TIN-6600, the Spanish Ministry of Economy and
Competitiveness through the project TIN2012-38600, and The Spanish Ministry of
Education, Culture and Sports through the FPU Scholarship.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>L.</given-names>
            <surname>Chung</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Nixon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Yu</surname>
          </string-name>
          , J. Mylopoulos:
          <article-title>Non-Functional Requirements in Software Engineering</article-title>
          . Springer,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>E.</given-names>
            <surname>Gamma</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Helm</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Johnson</surname>
          </string-name>
          , J. Vlissides:
          <article-title>Design patterns: Elements of reusable object-oriented design</article-title>
          .
          <source>Addison-Wesley Reading</source>
          ,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>E.</given-names>
            <surname>Haselsteiner</surname>
          </string-name>
          ,
          <string-name>
            <surname>K.</surname>
          </string-name>
          <article-title>Breitfu : Security in Near Field Communication (NFC)</article-title>
          .
          <source>Workshop on RFID Security RFIDSec</source>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>J.I.</given-names>
            <surname>Hong</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.A.</given-names>
            <surname>Landay</surname>
          </string-name>
          :
          <article-title>An architecture for privacy-sensitive Ubiquitous Computing</article-title>
          .
          <source>Proceedings of the 2nd Int. Conf. on Mobile Systems, Applications and Services</source>
          ,
          <year>2004</year>
          . pp.
          <volume>177</volume>
          {
          <fpage>189</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>J.A.</given-names>
            <surname>Landay</surname>
          </string-name>
          ,
          <string-name>
            <surname>G.</surname>
          </string-name>
          <article-title>Borriello: Design patterns for Ubiquitous Computing</article-title>
          .
          <source>IEEE Computer</source>
          <year>2003</year>
          . vol
          <volume>36</volume>
          (
          <issue>8</issue>
          ), pp.
          <volume>93</volume>
          {
          <fpage>95</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>G.</surname>
          </string-name>
          <article-title>Lenzini: Design of architectures for proximity-aware services: Experiments in context-based authentication with subjective logic</article-title>
          .
          <source>Electronic Notes in Theoretical Computer Science</source>
          <year>2009</year>
          . vol.
          <volume>236</volume>
          , pp.
          <volume>47</volume>
          {
          <fpage>64</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>G.</given-names>
            <surname>Rossi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Gordillo</surname>
          </string-name>
          ,
          <string-name>
            <surname>G.</surname>
          </string-name>
          <article-title>Lyardet: Design patterns for context-aware adaptation</article-title>
          .
          <source>The 2005 Symp. on Applications and the Internet Workshops</source>
          ,
          <year>2005</year>
          . pp.
          <volume>170</volume>
          {
          <fpage>173</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>T.</given-names>
            <surname>Ruiz-Lopez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Noguera</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.J. Rodr guez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.L.</given-names>
            <surname>Garrido</surname>
          </string-name>
          ,
          <string-name>
            <surname>L.</surname>
          </string-name>
          <article-title>Chung: REUBI: A requirements engineering method for ubiquitous systems</article-title>
          .
          <source>Science of Computer Programming</source>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>T.</given-names>
            <surname>Ruiz-Lopez</surname>
          </string-name>
          ,
          <string-name>
            <surname>C.</surname>
          </string-name>
          <article-title>Rodr guez-Dom nguez</article-title>
          , M. Noguera,
          <string-name>
            <given-names>J.L.</given-names>
            <surname>Garrido</surname>
          </string-name>
          :
          <article-title>Towards a Reusable Design of a Positioning System for AAL Environments</article-title>
          .
          <source>Evaluating AAL Systems Through Competitive Benchmarking</source>
          ,
          <year>2012</year>
          . pp.
          <volume>65</volume>
          {
          <fpage>79</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>A.P.</given-names>
            <surname>Sabzevar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.P.</given-names>
            <surname>Sousa</surname>
          </string-name>
          <article-title>: Authentication, authorisation and auditing for ubiquitous computing: a survey and vision</article-title>
          .
          <source>International Journal of Space-Based and Situated Computing</source>
          ,
          <year>2011</year>
          . pp.
          <volume>59</volume>
          {
          <fpage>67</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11. S. Supakkul,
          <string-name>
            <given-names>T.</given-names>
            <surname>Hill</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Chung</surname>
          </string-name>
          , T.T. Tun,
          <string-name>
            <surname>J. Leite:</surname>
          </string-name>
          <article-title>An NFR pattern approach to dealing with NFRs</article-title>
          .
          <source>Proceedings of the 18th IEEE international requirements engineering conference</source>
          (RE)
          <year>2010</year>
          . pp.
          <volume>179</volume>
          {
          <fpage>188</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12. M.
          <article-title>Weiser: The computer of the 21st century</article-title>
          .
          <source>Scienti c American</source>
          ,
          <year>1991</year>
          . vol.
          <volume>265</volume>
          (
          <issue>3</issue>
          ) pp.
          <volume>94</volume>
          {
          <fpage>104</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13. S. Withall:
          <article-title>Software Requirement Patterns</article-title>
          . Microsoft Press,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>