Inferring structural patterns for concern traceability in evolving software
Abstract
As part of the evolution of software systems, effort is often invested to discover in what parts of the source code a feature (or other concern) is implemented. Unfortunately, knowledge about a concern's implementation can become invalid as the system evolves. We propose to mitigate this problem by automatically inferring structural patterns among the elements identified as relevant to a concern's implementation. We then document the inferred patterns as rules that can be checked as the source code evolves. Checking whether structural patterns hold across different versions of a system enables the automatic identification of new elements related to a documented concern. We implemented our technique for JAVA in an Eclipse plug-in called ISIS and applied it to a number of concerns. With a case study spanning 34 versions of the development history of an open-source system, we show how our approach supports the tracking of a concern's implementation through modifications such as extensions and refactorings
BibTeX
@inproceedings{Dagenais-al:ASE07,
author = {Barth{\'{e}}l{\'{e}}my Dagenais and
Silvia Breu and
Fr{\'{e}}d{\'{e}}ric Weigand Warr and
Martin P. Robillard},
title = {Inferring structural patterns for concern traceability in evolving software},
booktitle = {ASE},
pages = {254--263},
publisher = {{ACM}},
year = {2007},
}