Building Usage Contexts During Program Comprehension
Authors:
- 10 July 2006
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- No. 10928138,p. 13-22
Abstract
Software developers often work on multiple simultaneous projects. Even when only a single project is underway, everyday distractions interrupt the development effort. Consequently, developers spend significant effort pursuing recovery of their context. By context, we focus on the classes and methods within the code that are relevant to a specific bug being fixed or enhancement made. Context is reified by a program in terms of a set of presentations (windows a containing source code, command executions, and data files); however, it is not enough to save the latest context. Even when working on a single task, programmers flip between contexts as they extend their understanding, and when they decide on a change, they may have to visit several contexts in order to address all possible ripple effects. Consequently, we would like to record a history of contexts and be able to retrieve them as demanded by the current task. We introduce a novel technique to obtain a context, consisting of a set of methods relevant for the current task, from a programmer's interactions with an IDE. Using this context, we demonstrate how to improve the ability of a programmer to recover the mental state associated with tasks and to facilitate the exploration of software through recommendation systemsKeywords
This publication has 15 references indexed in Scilit:
- Mylar2005
- NavTracks: supporting navigation in software maintenance2005
- Mining version histories to guide software changes2004
- A diary study of task switching and interruptions2004
- Cognitive design elements to support the construction of a mental model during software visualization2002
- Effective personalization based on association rule discovery from web usage data2001
- Timespace in the workplace1995
- Mining association rules between sets of items in large databases1993
- Edit wear and read wear1992
- A study of replacement algorithms for a virtual-storage computerIBM Systems Journal, 1966