PhD Thesis

CAUCE: Model-driven development of Context-aware Applications for Ubiquitous Computing Environments


Ricardo Tesoriero, José A. Gallud, María D. Lozano and Víctor M. R. Penichet. CAUCE: Model-driven Development of Context-aware Applications for Ubiquitous Computing EnvironmentsJournal of Universal Computer Science,  Vol. 16,  No. 15, pp. 2111-2138. 2010. Link:


Context awareness is a key issue to take into account in modern applications. These systems are characterized by human and environmental factors that should be kept in mind by developers. Although there have been some advances in this field; they have been usually based on software artifacts rather than on context aware applications features.

The main goal of this thesis is the definition of a semi-formal methodology to tackle the development of Context Aware Applications for Ubiquitous Computing Environments. In order to accomplish this goal, we have defined a set of more specific sub-objectives:

  1. Perform a review of the main characteristics of CAAs for UCEs.
  2. Perform a review of the most relevant design processes to develop CAAs for UCEs.
  3. Define a methodology together with modelling languages to specify the design of CAAs for
  4. UCEs based on the characteristics presented in 1.
  5. Implement a CASE tool to support the defined methodology allowing the developer to create and edit models conforming meta-models as defined in 3.
  6. Define and implement a set of transformations to generate the basic structure of the system source code.
  7. Apply the process to a set of scenarios that embraces most CAS features for UCEs to prove the validity of the proposal.

The development of context aware systems is based on their particular characteristics that are used to generate code automatically according to software features specifications. To describe these characteristics, this thesis proposes a Model-driven Architecture (MDA) that defines a double layer set of models to provide developers with the ability to describe applications at different levels of abstraction.

The analysis layer describes the system behavior and environment in terms of tasks, roles and spaces (Computational Independent Models). To cope with this task, we have defined 3 metamodels: the social metamodel to describe the organization structure of the entities that are part of the system, the space metamodel to define the spacial structure of the system and finally the task metamodel to describe the behavior of the system and how the behaviour is affected by the environment of the system.

The information layer describes the system characteristics in terms of software features, providing information about how the system processes the information (Platform Independent Models). To represent these characteristics  3 meta-models were defined. The Information Flow metamodel describes the information flow among system entities, the Referential Space metamodel describes how entities are related in order to define the hierarchy of entity types. And the Entity metamodel defines the behaviour of each entity.

Finally, the Deployment Model defines the platform model for the application which is binded to the information layer models in order to get the Platform Specific Model and generate the source code of the application.

The transition from the analysis layer to the information layer is performed semi-automatically by the execution of a multi-model trasformation which turns the social, space and task models into basic definitions of the information flow, referential space and entity models. Thus, developers are able to customize the system behavior.

Once developers have performed all modifications to information layer models, these models are linked by the means of the deployment model which defines devices and connections where the sofware derived from the models will be executed. The transition from the information later models and the deployment model to the source code is performed using a multi-model to text transformation.

The whole development process is depited in Figure 1.

The seven models and both transformations are supported by the CAUCE CASE tool following OMG standards.

CAUCE development process
Figure 1: CAUCE development process