Software maintenance activities pose many of the same challenges that are present during the initial design of a system along with additional constraints that owe to having to modify an existing design. These constraints may impede the use of preferred design techniques or require the maintainer to devise and evaluate new ways to achieve the same purpose in an often less than ideal context. Maintaners must envision new and possibly unorthodox ways to use existing infrastructure, while estimating and accommodating tradeoffs between rebuilding and reuse. Moreover, increasingly, the systems that software developers must maintain either use concurrency or are being redesigned for use in a multi-threaded environment. Examples include distributed enterprise applications, whose components are deployed on multi-threaded application servers and even stand-alone applications that exploit hardware with multiple functional units. While the design complexities brought on by the use of concurrency are well known, comparatively little is known about how the added complexities associated with concurrency affect software-maintenance tasks or about whether the presence of concurrency affects how these tasks should be performed to maximize success.
This work applies techniques from psychology, HCI, and software engineering to elucidate the task model for the successful maintenance of concurrent software systems. Our interdisciplinary team is using an empirical technique, called the think-aloud method, to study software developers as they correct or enhance an existing concurrent software system. Our goal is to elicit and validate formal task models that describe what ``good maintainers'' do. This task model will be useful in informing the evaluation and design of tools, methods, and educational materials for the maintenance of concurrent software. Further, we will gather data about the cognitive processes involved in performing maintenance and explore how these processes relate to certain abilities of software developers, such as working memory capacity, fluid intelligence, and spatial visualization capabilities.
| Scott Fleming |
| Eileen Kraemer (University of Georgia) |
| Shaohua Xie (University of Georgia) |
| Kurt Stirewalt |
| Laurie Dillon |
| Zach Hambrick (MSU Psychology) |