SHF: Small: Collaborative Research: Tracing and Reasoning about Changing Artifacts
University Of Washington, Seattle WA
Investigators
Abstract
Change pervades the entire software development process. Software may be changed in response to market forces, changing customer requirements, or new hardware and software dependencies. The thread of changes, along with the decisions behind those changes, is often transient and is rarely directly captured by a development team. Source code drifts away from requirement and design documents (and other artifacts) that explain the motivations and decisions behind the code. There is a high overhead in maintaining consistency between these artifacts and the code. Project schedules have tight deadlines, with little or no time to explicitly document the decisions behind code changes. Thus, further code modifications are often expensive because the software engineers lack the understanding of past decisions. This project aims to investigate a lightweight, flexible, and systematic approach to identifying and connecting related changes to support future maintenance activities. By leveraging traceability and refactoring techniques, we can represent change as a first-class artifact so that software engineers can better understand the nature of change and how it impacts related artifacts. Our approach is novel because it allows developers to reason about changes as varied as high-level concepts to low-level code that cuts across several modules. We also investigate techniques for bridging any gaps between these connections. The approach is applicable to organizations that maintain legacy systems or acquire software from other organizations. The results will also be valuable to any medium- or large-scale development context in assimilating new personnel and in coordinating distributed development.
View original record on NSF Award Search →