FEAT Overview

Developers working on existing programs repeatedly have to address concerns (features, aspects...) that are not well modularized in the source code comprising a system. In such cases, a developer has to first locate the implementation of the concern in the source code comprising the system, and then document the concern sufficiently to be able to understand it and perform the actual change task.

The FEAT plug-in allows you to locate, describe, and analyze the code implementing a concern in a Java system. Using FEAT, you can rapidly locate and analyze concerns scattered in an existing code base. By visually navigating structural program dependencies, you can locate the code implementing a concern, and store the result as an abstract representation consisting of building blocks that are easy to manipulate and query. The representation of a concern supported by FEAT can be used to investigate the relationships between the captured concern and the base code, and between the different parts of the concern itself. Finally, this representation can be used to keep track of the actual source code implementing the concern.

The novelty of FEAT is to capture concerns using an abstract representation that can be mapped back to source code, instead of working directly at the level of program text. The abstract representation can help you manage the code in a concern.

FEAT was developed by Martin Robillard (with contributions from Gail Murphy and Jason Xu) as a part of his Ph.D. project, under the supervision of Gail Murphy, in the Software Practices Lab, Department of Computer Science, University of British Columbia, Canada.

Other Readings

FEAT Web Site

ICSE 2002 Paper on an earlier version of the FEAT Tool (non-Eclipse) and the underlying concept of Concern Graphs.