## 7 Related Work
### Modeling Context-Awareness  
[PERSON] _et al._[24] present an approach with the ability to handle context with minimal user intervention, by decoupling core service logic from context-aware functionality. They take advantage of using ContextUML, as does our approach, but only focused on solving service composition and not in reconfiguration unlike contrary to our proposal, since we provide FamiWare to perform reconfiguration when context changes are detected. In [36], [PERSON] _et al._ present a model-driven development method which allows the automatic generation of context-awareness AmI systems from models. In contrast to our approach, this method does not reconfigure the system automatically according to dynamic context changes. Furthermore, another difference between these two approaches and our work is that we do not only allow the modeling of the context, but also this modeling is part of a model-driven configuration process to build context-aware applications. In [37], [PERSON] _et al._ describe a multi-level model to build context-aware self-adaptive entities in an AAL application. The model defines both mandatory functionalities (observe, decide, plan, and execute, corresponding with the four steps of FamiWare autonomic computing process) and composition coordination of adaptive entities, which can be customized by adaptation designers. Compared to this proposal, we base ours on a model-driven strategy by achieving a high level of abstraction that allows the separation of modeling context and context-awareness from services, which makes both development and maintenance of context-aware services in the self-adaptation paradigm easier. Similar to our approach, [PERSON] _et al._[38] propose a methodology based on feature models for defining self-adaptive AAL services by considering dynamic reconfiguration. As we have discussed throughout this paper, we think feature models may be not so intuitive when new contexts are added. Therefore, we propose the use of an UML-based modeling language, to manage contexts, and provide an automatic mapping between ContextUML elements and FamiWare features. Finally, [PERSON] _et al._[39] present a WSN context model in collaborative sensor network applications that captures multiple context parameters in multiple dimensions, (_i.e._, context from/to different layers of the network stack). This approach is similar to a supply and demand model, where nodes attempt to meet application demands while considering the current node/network state and balancing the load across the network. Thus, this model takes context awareness to a dimension by sharing context information between layers (cross-layer information) and hence resulting in a more informed decision, and also communicates context information between nodes to distribute the load over the network (inter-nodal context sharing). In a similar way, our model also addresses the complex context made up of data composition coming from heterogeneous devices. But, unlike this proposal of modeling context, which is more focus on the communication of context parameters between all layers, our aim is to use models to define the context information for tackling the heterogeneity existing in WSNs by means of a model-driven process which separates the modeling of context and context-awareness from service components, and makes easier both development and maintenance of context-aware applications.