Introducing Context Awareness in Unmodified, Context-unaware Software
This addresses the issue of rigid software configuration for users, enabling dynamic adaptation to new environments without modifying existing code.
The paper tackled the problem of software lacking context awareness by dynamically reconfiguring unmodified applications, demonstrating that 2,683 run-time configuration accesses in 16 real-world apps could be manipulated to introduce context awareness beyond developers' intentions.
Software tends to be highly configurable, but most applications are hardly context aware. For example, a web browser provides many settings to configure printers and proxies, but nevertheless it is unable to dynamically adapt to a new workplace. In this paper we aim to empirically demonstrate that by dynamic and automatic reconfiguration of unmodified software we can systematically introduce context awareness. In 16 real-world applications comprising 50 million lines of code we empirically investigate which of the 2,683 run-time configuration accesses (1) already take context into account, or (2) can be manipulated at run-time to do so. The results show that context awareness can be exploited far beyond the developers' initial intentions. Our tool Elektra dynamically intercepts the run-time configuration accesses and replaces them with a context aware implementation. Users only need to specify contexts and add context sensors to make use of this potential.