This section has reviewed the literature on context conceptualisation for context-aware computing, concluding that there is no consensus on what context means. A further examination of the notion beyond the area of context-aware computing sheds some light on the causes for this disagreement. The main challenge behind the conceptu- alisation of context is that computing systems have a different philosophical tradition than that of social sciences, which is behind the traditional explanations of context. This chapter further explores the current limitations in the conceptualisation of con- text for the development of context-aware systems, concluding that, to the possible extent, there is a need to conceptually support developers in: A) Enumerating the set of contextual states that may exist; B) Knowing what information could accurately de- termine a contextual state within that set; C) Stating what appropriate action should be taken in that particular state. Additionally, it is concluded that even with adequate support, it is very difficult or even impossible to foresee all the situations in order to program them, and that even some situations that might seem similar a priori, can
greatly differ from the actual instantiation of the situation. Context-aware comput- ing is a still maturing technology, where context-aware systems have a high chance of taking actions which might not be the most appropriate in certain situations.
The conceptualisation presented in this chapter is not intended to solve all these challenges, but rather to encourage further research in the direction of maximising the usability results of context-aware systems, mitigating the limitations of C-AS and strengthening their real capabilities. The underlying premise for this purpose is that current C-AS can maximise their usability results when:
• Developers adequately identify those situations that, to some extent, are pos- sible to be predicted and represented as computational models.
• Developers understand the intention, meaning of the actions, preferences and needs of the users in a particular situation of interest (end-user stakeholder centred perspective).
• There exists a set of observable properties which can identify a situation of in- terest with enough accuracy to distinguish it from the maximum number of similar-looking situations where the context-aware feature to be displayed is not appropriate.
• The properties that identify a situation of interest can realistically be attained from sensors.
• The developers can implement the situation of interest detection while it is still meaningful for the users.
The updated conceptualisation of context and context awareness presented in this chapter takes into account three main aspects. The first aspect is the separation of con- cerns into the mentioned three high-level ideas that allow developers to get the context right. The concept of situation of interest is introduced as a central tool which enables the separation of the information used by the system to identify a situation and the services to be provided under that situation. Besides, it also provides an abstraction to make the developers understand and be guided during the process of developing context-aware systems. The conceptualisation approaches context acknowledging its two philosophical perspectives. The situation of interest enables the management of the notion as an observer-dependent phenomena. This concept is used as a key nexus
between the detection of the situation via context-attributes, and the triggering of dif- ferent services which are associated with the situation of interest. Also, a conceptual tool for managing the preferences of the users is introduced. The second aspect is an end-user stakeholder centred perspective that on one hand considers the preferences and needs of the stakeholders, and on the other hand extends the notion of user to that of stakeholder. Finally, the last aspect is the consideration of different interaction modalities to mitigate the effects of using a still maturing technology. The outcome of this chapter has been used as foundation for the rest of this dissertation, with spe- cial influence into the design principles stemming from this definition, introduced in Chapter 5.
Chapter 3
State of the art
3.1 Introduction . . . 60 3.2 Requirements engineering . . . 62 3.2.1 Goal-oriented . . . 62 3.2.2 Scenario-based . . . 64 3.2.3 Hybrid approaches . . . 65 3.2.4 Analysis . . . 70 3.3 Model-driven engineering . . . 73 3.3.1 UML: Universal Modelling Language . . . 75 3.3.2 SysML: Systems Modelling Language . . . 75 3.3.3 UTP: UML Testing Profile . . . 76 3.3.4 Other approaches for model-driven context-aware sys-
tems development . . . 77 3.3.5 Tool support . . . 78 3.4 Implementation support . . . 80 3.4.1 Implementation techniques . . . 80 3.4.2 Research prototypes and systems . . . 83 3.4.3 Reliability . . . 85 3.5 Conclusions . . . 88
3.1 Introduction
T
his chapter presents an overview of previous work that is related to the devel-opment of context-aware systems, which is partly based on a published state- of-the-art survey conducted as part of the contributions of this thesis[45]. Current research in the development of context-aware systems happens to be typically scattered and disconnected, mainly adapting traditional software development methods to some particular needs of context-aware systems. As previously introduced in Chapter 1, the aim of this dissertation is to help build the foundations of a more holistic approach in the development of context-aware systems. It becomes necessary, then, to conduct a literature review to find the most adequate tool supported frameworks and methodo- logies, as well as the existing gaps, in order to propose a more holistic framework which can be used as the backbone of an engineering process with regard to these systems. An initial exploration of the literature shows that there is a vast amount of research in the field of context-aware computing, and in similar areas such as that of Ubiquit- ous Computing, Intelligent Environments or Ambient Intelligence. In order to avoid further review of dated, and perhaps redundant works in some cases, this survey has been strategically divided into three different research themes, according to the chal- lenges explored in Chapter 1, and the insights obtained from the conceptualisation of context in Chapter 2. These themes are as follows1:• Requirements: In Chapter 2, it was concluded that there is a special need dur- ing the development of context-aware systems, and this is the need for guiding developers in the design of adequate systems [Chg1]. For this, there is a need for developers to exercise an understanding of the context of the system, to discover different contextual services that can be provided to the end-user stakeholders. This understanding process has a strong connection with the requirements eli- citation process, which helps developers to reach a better understanding of the user needs and demands by finding a systematic approach for eliciting, analys- ing, documenting, validating and managing software requirements from indi- vidual stakeholders[91] [92] [93]. If the right requirements are not well-defined
1Note that the following explanation includes a citation in the form of [Chgx], referring to those
prior to the development of the system, it will be more likely to fail meeting the user and other stakeholder’s expectations (stakeholder validation). An early identification of the implementation feasibility of certain situations of interest, or the triggering of different associated services, can save the development team from wasting efforts which can translate into high development costs [Chg4]. Therefore, the creation of a coherent framework for requirements elicitation will occupy a considerable part of the research efforts of this dissertation, as it is considered as a key stage for providing guidance to the main aspects for getting the context right[35]. Consequently, there is a need to research the existing methods for this purpose, in order to find and fill existing research shortcom- ings.
• Model driven development: Another important aspect of context, as introduced in Chapter 2, is its dynamic nature. It is important to note that not only the con- text, but the associated services of a context-aware system are expected to be in constant evolution, in order to meet the always changing demands of the end- user stakeholders [Chg6]. Therefore, an important aspect of a development framework is that it speeds the process of implementing those changes. For this reason, the model-driven approach is chosen as another of the three main re- search themes to be further analysed. Model-driven development leverages the development abstraction level, enabling the development of the system through graphical models and pre-built application components. Such an approach, not only is cost-efficient [Chg4] and fast, but it also facilitates the communication between stakeholders, empowering domain experts, and allowing developers to focus on the technical aspects. Additionally, this approach can help to man- age the context information [Chg3], leading to more meaningful validation, as the high-level abstraction can avoid functional errors [Chg5]. Existing model- driven approaches to context-aware systems development will be analysed, in order to find potential applications which can be reused in the context of a more general framework.
• Implementation techniques: Finally, the last research theme focuses on the dif- ferent techniques which have been used for implementing context-aware sys- tems, so that the model-driven development can be mapped to the code automa-
tion focused on these implementation techniques. Once techniques are identi- fied, further research is constrained to existing tools for giving response to the different techniques. The aim is to find which tools have the more useful as- pects for a context-aware engineering methodology, discover the gaps between the different tools, so that they can be further extended into a more holistic tool which can support the implementation and deployment of diverse systems [Chg2].
The remainder of the chapter is as follows. Section 3.2 introduces the state-of-the- art in requirements elicitation for traditional and context-aware systems. With this information, Section 3.3 focuses on the literature review related to the model-driven development of context-aware systems. Section 3.4 analyses the different implement- ation techniques used for creating context-aware systems. With this information, an analysis of existing tools for this purpose is created. Finally, Section 3.5 concludes with a set of the most adequate methodologies and tools which will be used to support the creation of a framework for the engineering of context-aware systems.