Exploiting Context Modeling for Context-Aware Software Development Ricardo Couto Antunes da Rocha and Markus Endler Pontif´ ıcia Universidade Cat´ olica do Rio de Janeiro - PUC-Rio Laboratory for Advanced Collaboration Department of Informatics, Rio de Janeiro, Brazil {rcarocha, endler}@inf.puc-rio.br Abstract Research in context modeling has been focused on the specification of models that guarantee high expressiveness and generality of the modeling process. Modeling the qual- ity and ambiguity of context information are examples of some aspects explored in current research. This paper dis- cusses how context models can be used to specify context- specific abstractions that support a disciplined software de- velopment for context-aware systems. We present a context model that explores such opportunities and provides higher level abstractions to manage and handle context informa- tion. This context model offers constructors for describing quality of context, contextual events and context queries. We argue that such constructors can reduce software complex- ity and improve code reuse of the application. 1. Introduction Context modeling is the task of representing the envi- ronment’s states and situations as computational structures, so as to allow software to process context information and react to changes of the environment. Research in context modeling has focused on the definition of models which are capable of expressing the richness of context informa- tion, such as imprecision, quality of context and ambigu- ity. Since modeling the real world depends on the scope and requirements of the application being developed, con- text modeling can be understood as an important part of the software engineering process of context-aware systems [7]. However, in order to support a disciplined approach for context-aware software engineering, context models should explore the programming aspects of the use of context. For example, one common limitation of most current context models is the lack of support for context-specific abstrac- tions. When a new context information is introduced in a context-aware system, it may require the addition of some context-specific abstractions that should be shared among all applications. For example, commonly location-aware applications require similar abstractions such as means of querying which devices are located within in a geo- graphic area, and receiving notifications of semantic loca- tion changes. On this line, Ranganathan et al. [9] proposes several interesting location-specific abstractions that should be supported for any location-aware system. Despite this requirement, context-aware systems and modeling approaches usually offer just general-purpose paradigms for handling context, such as for specifying ac- tions to be triggered at context changes, and for querying context information. This paper discusses how context models can be used to specify context-specific abstractions that support a dis- ciplined software development for context-aware systems. We present a context model that explores such opportuni- ties and provides higher level abstractions to manage and handle context information. This context model offers con- structors for describing quality of context, contextual events and context queries. We argue that such constructors can reduce software complexity and improve code reuse of the application. The remainder of this paper is structured as follows. Sec- tion 2 discusses the interrelationship of context models and software engineering of context-aware systems. Section 3 presents our context model and its constructors to model context-specific abstractions. Section 4 discusses the re- lationship between our modeling approach and other ap- proaches. Section 5 presents the current state of our re- search and points to the future research directions. 2. Context Modeling and Context-Aware Soft- ware Engineering A context model should provide an unambiguous defini- tion of the context’s semantics and usage. This information is both necessary for developing middleware that correctly