Abstract It is widely acknowledged that pervasive computing introduces a radically new set of design challenges when compared with traditional desktop computing. In particular, pervasive computing demands applications that are capable of operating in highly dynamic environments and of placing minimal demands on user attention. Context-aware applications aim to meet these requirements by adapting to selected aspects of the context of use, such as the current location, time and activities of the user. In recent years, a variety of prototypical context-aware applications have been developed, such as context-aware guides that present tourists with information of relevance to the current location [8, 1] . There are also ongoing efforts to construct instrumented environments that monitor the activities of their occupants using context sensors, with objec- * The work reported in this paper has been funded in part by the Co- tives such as allowing the elderly to live as independently as possible while ensuring that emergencies are quickly detected [14, 21] . Despite the recent flurry of interest, context-aware applications have not yet made the transition out of the laboratory and into the marketplace. This is largely a result of high application development overheads, social barriers associated with privacy and usability, and an imperfect understanding of the truly compelling (and commercially viable) uses of context-awareness. This paper presents a software engineering framework that addresses these challenges: the first by simplifying design and implementation tasks associated with context-aware software, and the latter two by facilitating the types of rapid prototyping and experimentation that are required in order to overcome these obstacles. The framework is based around a set of novel conceptual foundations, including context modelling approaches that describe context at two different levels of granularity, a preference abstraction, and a pair of complementary programming models. These are introduced in Sections 2 to 4, and are then integrated into a software infrastructure for pervasive systems in Section 5. Section 6 presents the results of a case study that we carried out to evaluate the conceptual framework and infrastructure, and Section 7 concludes the paper with a discussion of key topics for future research. Much of the recent research in the field of contextawareness has adopted an infrastructure-centred view; that is, it has assumed that the complexity of engineering context-aware applications can be substantially reduced solely through the use of infrastructure responsible for the gathering, managing and dissemination of context information. To this end, a variety of solutions that acquire and interpret context information from sensors
REF discusses a framework for pervasive context-aware applications using the Context Modeling Language (CML).
A software engineering framework for context-aware pervasive computing
Second IEEE Annual Conference on Pervasive Computing and Communications, 2004. Proceedings of the
Second IEEE Annual Conference on Pervasive Computing and Communications, 2004. Proceedings of the
Computer Science