Many maintenance tasks address concerns, or features, that are not
well modularized in the source code comprising a system. The Concern
Graph representation helps software developers identify and reason
about these concerns. The representation abstracts the implementation
details of a concern and makes explicit the relationships between
different parts of the concern. The abstraction used in a Concern
Graph has been designed to allow an obvious and inexpensive mapping
back to the corresponding source code.
To investigate the practical tradeoffs related to this approach, we
have built the Feature Exploration and Analysis tool (FEAT) that
allows a developer to manipulate a concern representation extracted
from a Java system, and to analyze the relationships of that concern
to the code base. We have used this tool to find and describe concerns
related to software change tasks. We have performed case studies to
evaluate the feasibility, usability, and scalability of the
approach. Our results indicate that Concern Graphs can be used to
document a concern for change, that developers unfamiliar with Concern
Graphs can use them effectively, and that the underlying technology
scales to industrial-sized programs.
For more information please see the main FEAT page.
- Martin Robillard
- Gail Murphy