This paper aims to investigate the relationships between context aware applications and requirements engineering. In particular it is necessary to discuss the peculiarities of the solutions which are able to respond to the changes in environment and show how the emergence of such programs impacts the process of design and development. We will also focus on such concepts as context and environment and illustrate their connection to software and systems engineering.
Overall, requirements engineering can be interpreted as the discipline, which aims to determine functions, goals and constraints of software solutions (Laplante, 2007, p 44). Its major purpose is to identify the needs of the customers, the situation in which the product will be used; its life cycle and other characteristics like design (Hull et al, 2007; Young, 2004). The emergence of context aware applications has produced a profound effect on this science, its principles, and decision-making process. Modern information technologies do not operate irrespective of environment (time, location, season or even temperature); on the contrary; they seek to derive data about it and use it for the benefit of the client (Schilit et at 1994). This is why IT developers attempt to make their solutions more sensitive to particular circumstances. In this regard, we need to mention some of the difficulties which they frequently face: for example, the definition of such notion as context. In other words, they need to identify what information is needful for the system. Most importantly, they have to work out methods of collecting and interpreting these data. Finally, they find practical application for it. Yet, the most challenging problem is how to predict the behavior of the customer and his or her intentions. These are the issues which we need to discuss in this paper.
First, it should be pointed out that context aware applications are based on the so-called IF-THEN algorithm, which means that they perform a certain task under some circumstances (Schilit et al, p 5). For example, the security system sets alarm, when its sensors indicate movement or even change in temperature. Such approach is widespread in many areas of construction, for instance, the illumination system which changes the intensity of lighting depending on the time of day (Kister, 2007, p 17). The essence of such solutions is cause-and-effect relations. Moreover, these examples prove that the definition of context or environment varies according to the specific product. This is why it is vital to identify the specific date required for the functioning of this application.
In their study Anthony Finkelstein and Andrea Savign discuss the connections between the requirement engineering and context-aware solution in such sphere as mobile technologies. The authors assume that requirements can change during the execution of the system (p 4). They refer to m-commerce service. Its major goal is to use a colorful Java applet if the environment is favorable (this includes color display or high bandwidth). However, if the connection is slow and the phone does not have Java Virtual Machine, the goal of m-commerce will be to use 16-color animated gif (Finkelstein & Savigni, p 4). This case demonstrates that performance standards for context-aware applications can be modified in accordance with the specific circumstances. They are not pre-determined beforehand, they evolve during performance. This is their major advantage because unlike traditional software solutions they operate under various conditions and continue to render service to the customers.
This discussion indicates that context-aware applications have immensely transformed requirements engineering. These solutions are intended to adjust themselves to the changing environment. Their major characteristic is that their performance standards can be modified and adopted to the needs of the specific situation. This is the reason why they are much more functional as they can serve in spite of various limitations.
References
Finkelstein A.,& Savigni A. A. (undated). Framework for Requirements Engineering for Context-Aware Services. University College London, pp 1-6. Web.
Hull, E., Jackson K. & Dick J. 2005 Requirements engineering. NY: Springer,.
Kister M (2007) Context-Aware Applications in Smart Buildings. Institute of Operating Systems and Computer Networks. Web.
Laplante, P. 2007. What every engineer should know about software engineering. CRC Press.
Schilit B. Adams N. & Want R.1994. Context-Aware Computing Applications. IEEE Workshop on mobile applications.vol, 8, issue, 9, pp 1-7. Web.
Young. R.W. 2004. The requirements engineering handbook. London: Artech House.