Description:
AbstractAdding context ‐awareness capabilities to modern mobile and pervasive computing applications (apps) is becoming a mainstream activity in the software engineering community. In this respect, many context models and middleware architectures have been proposed with the aim to provide the developers with tools and abstractions that make it easier to produce context‐aware applications. However, current solutions suffer from relatively low reusability and lack ease‐of‐use. In this paper, we propose a two‐layer approach based on model‐driven development: At the higher layer, we introduce the design of reusable context plug‐ins, which can be used to monitor low‐level context data and to infer higher‐level information about the users, their computing infrastructure, and their interaction. At the lower layer, the plug‐ins themselves are synthesized using more elementary, reusable components. We argue that this development approach provides significant advantages to the developers, as it enables them to design, implement, reuse, and maintain the codebase of context‐aware apps more efficiently. To evaluate this approach, we demonstrate it in the context of a two‐part example application and assess it both qualitatively and quantitatively.