Software Engineering Issues in Developing a Context-aware Exhibition Guide System Jongmyung Choi 1 , Hyun-Joo Moon 2 1 School of Information Eng., Mokpo National University, 61 Cheonggye, Muan-gun, Jeonnam, 534-729, Korea jmchoi@mokpo.ac.kr 2 Dept. of Cultural Contents, Hankuk University of Foreign Studies, 270 Imun 2-dong, Dongdaemun-gu, Seoul, 130-082, Korea hyunjoomoon@gmail.com Abstract Context-awareness is a key feature of ubiquitous computing, but it is difficult to develop context-aware systems because they are complex and because developers are not familiar with the development methodology for the systems. In this paper, we introduce a method to apply software engineering techniques when developing a context-aware system. Based on our experience in developing a context- aware exhibition guide system, we show how to elicit requirements, how to model context, how to determine system architecture, how to design the system, and how to implement the system. Our study will help developers to efficiently develop context-aware systems according to software engineering principles. 1. Introduction Recently context-aware systems have attracted attention from academia and industry because of their usefulness and user friendliness. However, these systems cost much more than traditional systems because of their features including context-awareness, heterogeneousness, and intelligence. In addition, there have been only a few research projects that have showed how to apply software engineering principles to context-aware systems. Even though there has been much research on software engineering topics such as requirement elicitation [1,2], context modeling [3,4], programming [5], and testing for context-aware systems [6], they have not provided enough information to develop a system in practice. The stakeholders, especially developers, need integrated and practical guides which are applicable during the development process. The guides should be able to answer the questions that occur during the development stage. Some examples of the questions are as follows. “Is the traditional development process OK?” “How do the requirements affect context and context-aware services?” “How and when do we model context?” “How is the context model transformed into class diagram and source program?” In this paper, we introduce context related software engineering issues that developers face while developing a context-aware system. We show how to apply software engineering techniques by demonstrating our context-aware exhibition guide system [19]. We show how we elicit requirements for context-aware systems, how functional and non- functional requirements affect the context, and how context modeling affects system design and implementation. Our contributions are three fold. First, we show the whole process of context-aware system development. To the best of our knowledge, there are only few studies that describe how to apply software engineering techniques to a real context-aware system. Second, we show how non-functional requirements affect context and context attributes. Third, we show how to model context from context attributes and how to design classes. The remainder of the paper is organized as follows. In Section 2, we discuss other works that are closely related to our work. Then we introduce some background and motivation for our context-aware Ninth ACIS International Conference on Software Engineering, Artificial Intelligence, Networking, and Parallel/Distributed Computing 978-0-7695-3263-9/08 $25.00 © 2008 IEEE DOI 10.1109/SNPD.2008.92 834 Ninth ACIS International Conference on Software Engineering, Artificial Intelligence, Networking, and Parallel/Distributed Computing 978-0-7695-3263-9/08 $25.00 © 2008 IEEE DOI 10.1109/SNPD.2008.92 840