2009 Volume 26 Issue 2 Pages 2_127-2_146
A functional concern, code that helps fulfill a functional requirement, is typically implemented by collaborative software modules. When developers understand the implementation of a concern, they need to find code fragments contributing to the concern and understand how the modules collaborate with one another.
In this paper, we propose an automatic approach to extract program elements closely related to developer's interest and visualize the relationship among the elements as a concern graph. We extend program slicing by introducing heuristics to calculate the degree of interest to a developer among program elements for excluding unrelated elements from a program slice. We have implemented our approach as a slicing tool for Java software and conducted an experiment. The result shows that our approach extracts a concern graph more suitable to understand a concern than a traditional program slicing.