PLATAFORMA WEB Y METODOLOGÍA PARA EL
DESARROLLO DE SISTEMAS SENSIBLES AL
CONTEXTO BASADA EN LA COLABORACIÓN ENTRE
PROGRAMADORES Y EXPERTOS EN EL DOMINIO
Candidato: David Martín del Canto
Directores: Dr. Diego López de Ipiña y Dra. Aurkene Alzua Sorzabal
Programa: Ingeniería Informática y Telecomunicación
Deusto – Bilbao, June 7th 2013
Facultad de Ingeniería
Outline Introduction
Theoretical framework
Situation-Driven Development methodology
Context Cloud platform
Evaluation
Conclusions
2
Outline Introduction
Theoretical framework
Situation-Driven Development methodology
Context Cloud platform
Evaluation
Conclusions
3
Introduction
• Ubiquitous computing is a reality
Mobile environment
More than four billion of mobile devices
An open window to information and services at any time and
place
Context is a key point for an optimal user experience
Context-Aware computing
A style of computing in which situational and environmental
information is used to anticipate immediate needs and
proactively offer enriched, situation-aware content (Gartner
Research)
4
Introduction: problem description
• The development of context-aware systems is
difficult
Technical challenges
Gathering of context data (distributed and heterogeneous)
Processing (context data model)
Management (inference->situations)
Adaptation to situations
Other challenges
Identification, definition and parameterization of situations
Dependent on the application domain
Manufacturing Tourism Health care … 5
Introduction: problem description
• Collaboration among domain experts and
programmers
Domain experts can better identify the situations that can be
relevant for the system to be developed
• To promote this collaboration
Toolkits
To make easier the development of context-aware systems, even
for people that do not have programming skills
Development methodologies
To guide the development process, focused in the collaboration
between domain experts and programmers
6
Introduction: hypothesis
It is possible to involve domain experts in the
development life-cycle of context-aware
systems in collaboration with programmers,
by providing software toolkits and
development methodologies adapted to
people that do not have programming skills
G1. Collaborative development methodology
G2. Context-aware software platform
7
Outline Introduction
Theoretical framework
Situation-Driven Development methodology
Context Cloud platform
Evaluation
Conclusions
8
Theoretical framework: context
• Definitions
Surroundings (Brown, 1996; Chen and Kotz, 2000)
Task or activity of the user (Hull et al., 1997)
Information to characterize the situation of an entity
(Lieberman and Selker, 2000; Ye et al., 2011)
• The most referenced definition
“Context is any information that can be used to characterize the
situation of an entity.
An entity is a person, place, or object that is considered relevant
to the interaction between a user and an application, including
the user and application themselves” (Dey, 2001).
9
Theoretical framework: context
“Context is any information that can be obtained
and processed by a hardware or a software system, in
order to identify the situation of an entity (living
being, place, object) and adapt the system’s
behaviour to that situation”
10
Theoretical framework: situation
• Definitions
A situation is dependent on the context data and it can be
considered as an abstraction of it (Yau and Huang, 2006; Dey
2001)
“A situation is the state of the current and past
context data at a certain region in space and a
concrete interval in time”
11
Theoretical framework: context & situation
A1 A2 A3
S2 E3 (S0) => S4 (t3)
E2 => S3 (t2)
E1 => S1 (t1) High-level context
c1
c2
c3 c5
c6 c7 c8
c4 Low-level context
Cooking A cook is located in the kitchen, he is using a knife and it is time to have lunch
Space Dependent situation Time Entity
12
Outline Introduction
Theoretical framework
Situation-Driven Development methodology
Context Cloud platform
Evaluation
Conclusions
13
Situation-Driven Development: literature review
• Software development methodologies
General development methodologies
Waterfall, iterative, spiral (Green and DiCaterino, 1998).
Context Modelling Language (CML) (Henricksen and
Indulska, 2006)
Context-Oriented Programming (COP) (Hirschfeld et al.,
2008)
There are no specific development methodologies to
guide the implementation of context-aware systems
in collaboration with domain experts
14
Situation-Driven Development: requirements
• Requirements for the development
methodology
Focused in the identification of situations (4W1H) (Oh
et al., 2006)
Which situation has to be identified?
Who can be in such situation?
Where can it be detected?
When can it be detected?
How can it be detected?
Collaborative methodology
Domain experts and programmers
15
Situation-Driven Development
• Collaborative development methodology
Five stages
Analysis
Configuration
Development
Validation
Maintenance
16
Situation-Driven Development: analysis
17
Situation-Driven Development: configuration
Context-aware toolkit
18
Situation-Driven Development: development
Inputs
Context-aware toolkit
Outputs
Software/hardware
19
Situation-Driven Development: validation
Inputs
Context-aware toolkit
Outputs
Software/hardware
20
Situation-Driven Development: maintenance
Inputs
Context-aware toolkit
Outputs
Software/hardware
21
Outline Introduction
Theoretical framework
Situation-Driven Development methodology
Context Cloud platform
Evaluation
Conclusions
22
Context Cloud: literature review
• Requirements
1. Data model
2. Runtime configurations
3. Automatic context data management
4. Reasoning
5. Location
6. End-user development (EUD)
7. Visual programming
8. Web
23
Context Cloud: literature review
Data model Runtime
configurations
Automatic management
Reasoning Location EUD Visual
Programming Web
Context Toolkit Key-value
pairs
SOCAM Ontologies
CoBra Ontologies
JCAF Object
oriented
Semantic Space Toolkit
Ontologies
CASS Relational
CMF Ontologies
Hydrogen Object
oriented
DiaSuite Object
oriented
OPEN Ontologies
24
Context Cloud: architecture and functionalities
• Architecture and functionalities
Context
Model DB
POST GET
GIS
Service
Knowledge
Base
Software / Hardware Programmer
Programmer
Active
Provider Passive
Provider
Mapping
Engine
Ap
pli
ca
tio
n
Ma
na
gem
en
t P
rovid
ers
S
ou
rce
s
Rule
Engine
C2 C1
Domain Expert
Web Interface
Programmer
XML
Web
of
Th
ing
s
Clo
ud
co
mp
uti
ng
E
nd
-us
er D
evelo
pm
en
t
Rule 1
Rule 2 A2
A1
XML
POST Context cloud
25
Context Cloud: demo
26
Donostia
27
Outline Introduction
Theoretical framework
Situation-Driven Development methodology
Context Cloud platform
Evaluation
Conclusions
28
Evaluation: reasoning performance
• Configurations
1) Number of context entity instances
{1,000, 5,000, 10,000, 15,000, 20,000}
2) Number of context entity properties
{1, 2, 3, 4, 5}
3) Number of rules
{100, 200, 300, 400, 500}
4) Number of entities used in the rule conditions
{1, 2}
• Reasoning time <= 1second
29
Evaluation: reasoning performance
• Results
Tim
e (
ms
)
Number of instances
Tim
e (
ms
)
Number of properties
Tim
e (
ms
)
Number of rules
Tim
e (
ms
)
Number of instances
1) 2)
3) 4)
1 second
30
Evaluation: reasoning performance
• Conclusions
Minimize
Number of rules
Number of instances
Number of entities
Maximize
Number of properties used in the rule conditions
RAM memory
31
Evaluation: user evaluation
• Participants
Tourism Domain Experts (10) and Programmers (10)
Pairs composed by a Domain Expert and a Programmer
They were introduced to the methodology, to the platform and
to the experiment’s objectives
32
Evaluation: user evaluation
• Procedure
Participants had to identify and detect four situations using the
methodology and the platform
Waiting for the bus
Situations were simulated using the Siafu Context Simulator
33
Visitor
Bus Stop 1
Bus Stop 2
Gros
Evaluation: user evaluation
• Procedure
An external observer annotated:
The problems of the participants
The time spent in the configuration of situations
Participants had to fill out a questionnaire (TAM)
Perceived Ease of Use
Perceived Usefulness
Behavioural Intention
1 2 3 4 5 6
Extremely Quite Slightly Slightly Quite Extremely Agree Disagree
34
Evaluation: user evaluation
0% 20% 40% 60% 80% 100% 120%
Easy to use (CC, SDD)
Collaborative work (SDD)
Collaborative work (CC)
Skilful (CC)
Interaction is clear (CC)
Easy to do what they want (CC)
Learning is easy (CC, SDD)
Results: Perceived Ease of Use
Participants
35
Programmers
Domain experts
Evaluation: user evaluation
0% 20% 40% 60% 80% 100% 120%
SDD is useful to develop context-awaresystems
SDD is useful to work with CC
Useful to do a collaborative work (SDD)
Useful to do a collaborative work (CC)
Useful for their jobs (CC)
Performance, productivity, effectiveness (CC)
Develop faster (CC)
Results: Perceived Usefulness
Programmers
Participants
36
Evaluation: user evaluation
0% 20% 40% 60% 80% 100% 120%
Would pay for CC
Would use CC
Would recommend CC
Results: Behavioural Intention
Participants
37
Domain experts
Programmers
Evaluation: user evaluation
• Results of the observation
Analysis stage
The excel sheet promotes the discussion between domain
experts and programmers
Configuration stage
30% of the situations were fully configured by domain experts
with no intervention of programmers
Average time spent to finish the evaluation test
89 minutes
38
Evaluation: user evaluation
• Conclusions
Situation-Driven Development methodology
It can be used to guide the development of context-aware systems.
It is suitable for non-technical users
It is useful to promote a collaborative work
Context Cloud platform
Learning how to use the platform can be difficult, specially for
domain experts, but users get more confident as they use it.
It is perceived as a useful platform in order to develop context-
aware systems.
It is suitable for non-technical users
It facilitates the collaborative development of context-aware
systems.
It is useful to promote a collaborative work
39
Evaluation: user evaluation
• Conclusions
It is possible to involve domain experts in the
development life-cycle of context-aware
systems in collaboration with programmers,
by providing software toolkits and
development methodologies adapted to
people that do not have programming skills
G1. Collaborative development methodology (SDD)
G2. Context-aware software platform (CC)
40
Outline Introduction
Theoretical framework
Situation-Driven Development methodology
Context Cloud platform
Evaluation
Conclusions
41
Conclusions: contributions
1. Theoretical contribution
• Context
• Situation
2. Situation-Driven Development
methodology
3. Context Cloud platform
4. Involvement of domain experts in the
development process
42
Conclusions: implications
• Data to be considered in context-aware
systems
• Complementary technologies and
scientific fields
• Involvement of domain experts in the
development process
• Design of methodologies and context-
aware toolkits
43
Conclusions: future work
• Research on context theory
• Complementary reasoning algorithms
• Uncertainty in context-aware reasoning
• Quality of sensor data
• Automatic context data source discovery
• Automatic rule creation
• Development of context-aware systems by
domain experts
44
PLATAFORMA WEB Y METODOLOGÍA PARA EL
DESARROLLO DE SISTEMAS SENSIBLES AL
CONTEXTO BASADA EN LA COLABORACIÓN ENTRE
PROGRAMADORES Y EXPERTOS EN EL DOMINIO
Candidato: David Martín del Canto
Directores: Dr. Diego López de Ipiña y Dra. Aurkene Alzua Sorzabal
Programa: Ingeniería Informática y Telecomunicación
Deusto – Bilbao, June 7th 2013
Facultad de Ingeniería