Softw Syst Model
DOI 10.1007/s10270-016-0550-0
REGULAR PAPER
A model-driven development approach for context-aware systems
Imen Jaouadi
1,2
· Raoudha Ben Djemaa
2
· Hanêne Ben-Abdallah
3
Received: 29 April 2015 / Revised: 13 June 2016 / Accepted: 15 July 2016
© Springer-Verlag Berlin Heidelberg 2016
Abstract The widespread usage of various types of com-
puter devices with different platform characteristics created
a need for new methods and tools to support the development
of context-aware applications capable of dynamically adapt-
ing themselves to context changes. In this paper, we present
a new model-based approach that addresses the develop-
ment of context-aware applications from both the theoretical
and practical perspectives and that supports all develop-
ment phases of context-aware systems. On the one hand, we
describe how our approach is applied to dynamically capture,
observe the change of the context and notify the system at
runtime. On the other hand, we show how our approach is
used by programmers to develop a context- aware applica-
tion.
Keywords Context modeling · Application adaptation ·
Context-aware application development · Model-driven
development
Communicated by Prof. Heinrich Hussmann.
B Imen Jaouadi
Jaouadi.Imen@fsegs.rnu.tn
Raoudha Ben Djemaa
Raoudha.Bendjemaa@isimsf.rnu.tn
Hanêne Ben-Abdallah
HBenAbdallah@kau.edu.sa
1
MIRACL Laboratory, FSEG, University of Sfax, Sfax, Tunisia
2
ISITCOM, University of Sousse, Sousse, Tunisia
3
King Abdulaziz University, Jeddah, Kingdom of Saudi Arabia
1 Introduction
The variety of computer devices and platforms, the circum-
stances of software uses, and the skills and preferences of
the end users open a vast field of opportunities and chal-
lenges in software development. Indeed, today’s software
development methods are expected to deliver software that:
(1) satisfies the various application domains’ requirements
(medical, transportation, air traffic, etc.), (2) self-adapts at
runtime to the different needs and profiles of end users
(novice, expert, disabled, minor, etc.) and (3) can be deployed
on emerging new platforms (PDA, tablet, etc.). These mul-
tiple expectations form different contexts of use. In this
paper, we define the context of use, or context for brief,
as “any information relevant to the interaction of the user
with the application, where both the user and the applica-
tion’s environment are of particular interest” [7]. This context
definition means that, depending on their contexts, users
accessing the same data/services through the same devices
may receive different outputs; the difference is due to the
users’ profiles. Systems that are capable of adapting their
interactions based on the context are called context-aware
systems [9, 17].
The development of context-aware systems differs from
the development of traditional systems, and it still faces
several challenges. These latter are inherent to how the
context information is gathered, represented and exploited
to adapt the system’s interactions. Context information is
often captured using sensors from heterogeneous sources
that use different representations. Thereby, the context
information may require additional semantic and struc-
tural interpretation to be significant for the context-aware
software. In addition, because the context is dynamic,
the software must have a means to monitor the dynamic
context elements and detect their changes at runtime. Fur-
123