skip to main content
research-article

Topology analysis of software dependencies

Published: 25 August 2008 Publication History

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

[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.

Cited By

View all
  • (2024)Consensus task interaction trace recommender to guide developers’ software navigationEmpirical Software Engineering10.1007/s10664-024-10528-729:6Online publication date: 2-Sep-2024
  • (2023)Task Context: A Tool for Predicting Code Context Models for Software Development Tasks2023 IEEE/ACM 45th International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)10.1109/ICSE-Companion58688.2023.00045(156-160)Online publication date: May-2023
  • (2023)Spectrum-based feature localization for families of systemsJournal of Systems and Software10.1016/j.jss.2022.111532195:COnline publication date: 1-Jan-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Transactions on Software Engineering and Methodology
ACM Transactions on Software Engineering and Methodology  Volume 17, Issue 4
August 2008
139 pages
ISSN:1049-331X
EISSN:1557-7392
DOI:10.1145/13487689
Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 25 August 2008
Accepted: 01 August 2007
Revised: 01 February 2007
Received: 01 March 2006
Published in TOSEM Volume 17, Issue 4

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Software evolution
  2. feature location
  3. program understanding
  4. separation of concerns
  5. software change
  6. software navigation
  7. static analysis

Qualifiers

  • Research-article
  • Research
  • Refereed

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)46
  • Downloads (Last 6 weeks)3
Reflects downloads up to 07 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Consensus task interaction trace recommender to guide developers’ software navigationEmpirical Software Engineering10.1007/s10664-024-10528-729:6Online publication date: 2-Sep-2024
  • (2023)Task Context: A Tool for Predicting Code Context Models for Software Development Tasks2023 IEEE/ACM 45th International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)10.1109/ICSE-Companion58688.2023.00045(156-160)Online publication date: May-2023
  • (2023)Spectrum-based feature localization for families of systemsJournal of Systems and Software10.1016/j.jss.2022.111532195:COnline publication date: 1-Jan-2023
  • (2023)Analyzing the Evolution of Inter-package Dependencies in Operating Systems: A Case Study of UbuntuSoftware Architecture10.1007/978-3-031-42592-9_16(233-249)Online publication date: 8-Sep-2023
  • (2021)Digital Twin connectivity topologiesIFAC-PapersOnLine10.1016/j.ifacol.2021.08.08654:1(737-742)Online publication date: 2021
  • (2020)Predicting code context models for software development tasksProceedings of the 35th IEEE/ACM International Conference on Automated Software Engineering10.1145/3324884.3416544(809-820)Online publication date: 21-Dec-2020
  • (2020)Leveraging Historical Associations between Requirements and Source Code to Identify Impacted ClassesIEEE Transactions on Software Engineering10.1109/TSE.2018.286173546:4(420-441)Online publication date: 1-Apr-2020
  • (2020)An empirical assessment of baseline feature location techniquesEmpirical Software Engineering10.1007/s10664-019-09734-525:1(266-321)Online publication date: 1-Jan-2020
  • (2018)A Structure-Driven Method for Information Retrieval-Based Software Change Impact AnalysisScientific Programming10.1155/2018/54942092018Online publication date: 1-Jan-2018
  • (2018)The State of Empirical Evaluation in Static Feature LocationACM Transactions on Software Engineering and Methodology10.1145/328098828:1(1-58)Online publication date: 5-Dec-2018
  • Show More Cited By

View Options

Login options

Full Access

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media