ACM Home Page
Please provide us with feedback. Feedback
Topology analysis of software dependencies
Full text PdfPdf (1.90 MB)
Source
ACM Transactions on Software Engineering and Methodology (TOSEM) archive
Volume 17 ,  Issue 4  (August 2008) table of contents
Article No. 18  
Year of Publication: 2008
ISSN:1049-331X
Author
Martin P. Robillard  McGill University, Canada
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 79,   Downloads (12 Months): 285,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Review this Article  
Save this Article to a Binder    Display Formats: BibTex  EndNote ACM Ref   
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/13487689.13487691
What is a DOI?

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 a 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 thousands of dependency paths found in a nontrivial program. We describe 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
Agrawal, H. and Horgan, J. R. 1990. Dynamic program slicing. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation. 246--256.
 
2
Aho, A. V. 1980. Pattern matching in strings. In Formal Language Theory: Perspectives and Open Problems, R. V. Book, Ed. Academic Press, 325--347.
 
3
Allison, P. D. 1999. Logistic Regression Using the SAS system—Theory and Application. SAS Institute Inc.
 
4
Antoniol, G., Canfora, G., De Lucia, A., and Merlo, E. 1999. Recovering code to documentation links in OO systems. In Proceedings of the 6th IEEE Working Conference on Reverse Engineering. 136--144.
 
5
Antoniol, G. and Guéhéneuc, Y.-G. 2005. Feature identification: A novel approach and a case study. In Proceedings of the 21st IEEE International Conference on Software Maintenance. 357--366.
 
6
Boehm, B. W. 1976. Software engineering. IEEE Trans. Comput. 12, 25, 1226--1242.
 
7
Chen, Y.-F., Nishimoto, M. Y., and Ramamoorthy, C. 1990. The C information abstraction system. IEEE Trans. Softw. Engin. 16, 3, 325--334.
 
8
Eisenbarth, T., Koschke, R., and Simon, D. 2003. Locating features in source code. IEEE Trans. Softw. Engin. 29, 3, 210--224.
 
9
Eisenberg, A. D. and De Volder, K. 2005. Dynamic feature traces: Finding features in unfamiliar code. In Proceedings of the 21st IEEE International Conference on Software Maintenance. 337--346.
 
10
Gallagher, K. B. 1996. Visual impact analysis. In Proceedings of the IEEE International Conference on Software Maintenance. 52--58.
 
11
Gallagher, K. B. and Lyle, J. R. 1991. Using program slicing in software maintenance. IEEE Trans. Softw. Engin. 17, 8, 751--761.
 
12
Gamma, E., Helm, R., Johnson, R., and Vlissides, J. 1995. Design Patterns—Elements of Reusable Object-Oriented Software. Professional Computing Series. Addison-Wesley Longman, Inc.
 
13
Goldberg, A. 1984. Smalltalk-80: The Interactive Programming Environment. Addison-Wesley.
 
14
Gyimóthy, T., Árpád Beszédes, and Forgács, I. 1999. An efficient relevant slicing method for debugging. In Proceedings of the 7th European Software Engineering Conference and 7th ACM SIGSOFT International Symposium on the Foundations of Software Engineering. Lecture Notes in Computer Science, vol. 1687. Springer-Verlag, Berlin, Germany, 303--321.
 
15
Jackson, D. and Rollins, E. J. 1994. A new model of program dependence for reverse engineering. In Proceedings of the 2rd ACM SIGSOFT Symposium on the Foundations of Software Engineering. 2--10.
 
16
Janzen, D. and De Volder, K. 2003. Navigating and querying code without getting lost. In Proceedings of the 2nd ACM International Conference on Aspect-Oriented Software Development. 178--187.
 
17
Kersten, M. and Murphy, G. C. 2005. Mylar: a degree-of-interest model for IDEs. In Proceedings of the 4th ACM International Conference on Aspect-Oriented Software Development. 159--168.
 
18
Kruchten, P. 2000. The Rational Unified Process: An Introduction 2nd Ed. Addison-Wesley.
 
19
Lejter, M., Meyers, S., and Reiss, S. P. 1992. Support for maintaining object-oriented programs. IEEE Trans. Softw. Engin. 18, 12, 1045--1052.
 
20
Marcus, A., Sergeyev, A., Rajlich, V., and Maletic, J. I. 2004. An information retrieval approach to concept location in source code. In Proceedings of the 11th IEEE Working Conference on Reverse Engineering. 214--223.
 
21
Object Technology International, Inc. 2001. Eclipse platform technical overview. White Paper.
 
22
Orso, A., Apiwattanapong, T., Law, J., Rothermel, G., and Harrold, M. J. 2004. An empirical comparison of dynamic impact analysis algorithms. In Proceedings of the 26th ACM/IEEE International Conference on Software Engineering. 491--500.
 
23
Orso, A., Sinha, S., and Harrold, M. J. 2001. Incremental slicing based on data-dependences types. In Proceedings of the IEEE International Conference on Software Maintenance. 158--167.
 
24
Robillard, M. P. and Weigand Warr, F. 2005. ConcernMapper: Simple view-based separation of scattered concerns. In Proceedings of the Eclipse Technology Exchange Workshop at OOPSLA. 65--69.
 
25
Robillard, M. P. 2005. Automatic generation of suggestions for program investigation. In Proceedings of the Joint 10th European Software Engineering Conference and 13th ACM SIGSOFT Symposium on the Foundations of Software Engineering. 11--20.
 
26
Robillard, M. P. 2006. Tracking concerns in evolving source code: An empirical study. In Proceedings of the 22nd IEEE International Conference on Software Maintenance. 479--482.
 
27
Robillard, M. P., Coelho, W., and Murphy, G. C. 2004. How effective developers investigate source code: An exploratory study. IEEE Trans. Softw. Engin. 30, 12, 889--903.
 
28
Salah, M. and Mancoridis, S. 2004. A hierarchy of dynamic software views: from object-interactions to feature-interactions. In Proceedings of the 20th IEEE International Conference on Software Maintenance. 72--81.
 
29
Sanella, M. 1983. The Interlisp-D Reference Manual. Xerox Corporation.
 
30
Sillito, J., Murphy, G. C., and De Volder, K. 2006. Questions programmers ask during software evolution tasks. In Proceedings of the 14th ACM SIGSOFT Symposium on the Foundations of Software Engineering. 23--33.
 
31
Snelting, G. 1998. Concept analysis—a new framework for program understanding. In Proceedings of the ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering. 1--10.
 
32
Tip, F. 1995. A survey of program slicing techniques. J. Program. Lang. 3, 3, 121--189.
 
33
Tonella, P., Antoniol, G., Fiutem, R., and Merlo, E. 1997. Variable precision reaching definitions analysis for software maintenance. In Proceedings of the 1st IEEE Euromicro Conference on Software Maintenance and Reengineering. 60--67.
 
34
Weigand Warr, F. and Robillard, M. P. 2007. Suade: Topology-based searches for software investigation. In Proceedings of the 29th ACM/IEEE International Conference on Software Engineering. 780--783.
 
35
Weiser, M. 1984. Program slicing. IEEE Trans. Softw. Engin. 10, 4, 352--357.
 
36
Wilde, N. and Scully, M. C. 1995. Software reconnaissance: Mapping program features to code. Softw. Mainten. Resear. Prac. 7, 49--62.
 
37
Wong, W. E., Gokhale, S. S., Horgan, J. R., and Trivedi, K. S. 1999. Locating program features using execution slices. In Proceedings of the IEEE Symposium on Application-Specific Systems and Software Engineering and Technology. 194--203.
 
38
Yin, R. K. 1989. Case Study Research: Design and Method 2nd Ed. Applied Social Research Methods Series, vol. 5. Sage Publications Ltd., UK.
 
39
Ying, A. T., Murphy, G. C., Ng, R., and Chu-Carroll, M. C. 2004. Predicting source code changes by mining change history. IEEE Trans. Softw. Engin. 30, 9, 574--586.
 
40
Zhao, W., Zhang, L., Liu, Y., Sun, J., and Yang, F. 2004. SNIAFL: Towards a static noninteractive approach to feature location. In Proceedings of the 26th ACM/IEEE International Conference on Software Engineering. 293--303.
 
41
Zimmermann, H.-J. 1996. Fuzzy Set Theory and Its Applications, 3rd ed. Kluwer Academic Publishers, The Netherlands.
 
42
Zimmermann, T., Weißgerber, P., Diehl, S., and Zeller, A. 2004. Mining version histories to guide software changes. In Proceedings of the 26th ACM/IEEE International Conference on Software Engineering. 563--572.

Collaborative Colleagues:
Martin P. Robillard: colleagues