|
ABSTRACT
Before performing a modification task, a developer usually has to investigate the source code of a system to understand how to carry out the task. Discovering the code relevant to a change task is costly because it is an inherently human activity whose success depends on a large number of unpredictable factors, such as intuition and luck. Although studies have shown that effective developers tend to explore a program by following structural dependencies, no methodology is available to guide their navigation through the typically hundreds of dependency paths found in a non-trivial program. In this paper, we propose a technique to automatically propose and rank program elements that are potentially interesting to a developer investigating source code. Our technique is based on an analysis of the topology of structural dependencies in a program. It takes as input a set of program elements of interest to a developer and produces a fuzzy set describing other elements of potential interest. Empirical evaluation of our technique indicates that it can help developers quickly select program elements worthy of investigation while avoiding less interesting ones.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
1
|
|
| |
2
|
|
 |
3
|
|
| |
4
|
B. W. Boehm. Software engineering. IEEE Transactions on Computers, 12(25):1226--1242, 1976.
|
| |
5
|
|
 |
6
|
|
| |
7
|
|
| |
8
|
|
| |
9
|
|
 |
10
|
|
 |
11
|
|
 |
12
|
|
| |
13
|
|
| |
14
|
Object Technology International, Inc. Eclipse platform technical overview. White Paper, 2001.
|
| |
15
|
|
 |
16
|
|
| |
17
|
M. P. Robillard and G. C. Murphy. Automatically inferring concern code from program investigation activities. In Proceedings of the 18th International Conference on Automated Software Engineering, pages 225--234, 2003.
|
 |
18
|
|
| |
19
|
F. Tip. A survey of program slicing techniques. Journal of Programming Languages, 3(3):121--189, 1995.
|
| |
20
|
|
| |
21
|
M. Weiser. Program slicing. IEEE Transactions on Software Engineering, 10(4):352--357, 1984.
|
| |
22
|
|
| |
23
|
|
| |
24
|
|
| |
25
|
|
| |
26
|
|
CITED BY 27
|
|
|
|
|
|
|
|
|
|
|
Inbal Ronen , Nurit Dor , Sara Porat , Yael Dubinsky, Combined static and dynamic analysis for inferring program dependencies using a pattern language, Proceedings of the 2006 conference of the Center for Advanced Studies on Collaborative research, October 16-19, 2006, Toronto, Ontario, Canada
|
|
|
David Shepherd , Zachary P. Fry , Emily Hill , Lori Pollock , K. Vijay-Shanker, Using natural language program analysis to locate and understand action-oriented concerns, Proceedings of the 6th international conference on Aspect-oriented software development, March 12-16, 2007, Vancouver, British Columbia, Canada
|
|
|
|
|
|
|
|
|
T. H. Ng , S. C. Cheung , W. K. Chan , Y. T. Yu, Work experience versus refactoring to design patterns: a controlled experiment, Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering, November 05-11, 2006, Portland, Oregon, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Dapeng Liu , Andrian Marcus , Denys Poshyvanyk , Vaclav Rajlich, Feature location via information retrieval based filtering of a single scenario execution trace, Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering, November 05-09, 2007, Atlanta, Georgia, USA
|
|
|
|
|
|
|
|
|
|
|
|
Bram Adams , Kris De Schutter , Andy Zaidman , Serge Demeyer , Herman Tromp , Wolfgang De Meuter, Using aspect orientation in legacy environments for reverse engineering using dynamic analysis-An industrial experience report, Journal of Systems and Software, v.82 n.4, p.668-684, April, 2009
|
|
|
|
|
|
|
|
|
|
|