Topology analysis of software dependencies
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,...
Saved in:
Published in | ACM transactions on software engineering and methodology Vol. 17; no. 4; pp. 1 - 36 |
---|---|
Main Author | |
Format | Journal Article |
Language | English |
Published |
01.08.2008
|
Online Access | Get full text |
Cover
Loading…
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. |
---|---|
AbstractList | 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. |
Author | Robillard, Martin P. |
Author_xml | – sequence: 1 givenname: Martin P. surname: Robillard fullname: Robillard, Martin P. organization: McGill University, Canada |
BookMark | eNp9kE1LAzEURYNUsK3-AHezciFMzZtkJpOlFK1CwU0FdyGTD4lMkzFJkfn3jtRuXLh6d3HP5XEWaOaDNwhdA14B0PoOCG1Z0_LVMXA4Q3Ooa1YywqvZlDHlJSHwdoEWKX1gDARXdI5ud2EIfXgfC-llPyaXimCLFGz-ktEU2gzGa-OVM-kSnVvZJ3P1e5fo9fFht34qty-b5_X9tlQVa3LZdJJz3dRNZzUA5pYqbaSCpu3Y9JomvK05aMxrW1mrVMsoTKDtFONaYkmW6Oa4O8TweTApi71LyvS99CYckiCUYc5aMhXhWFQxpBSNFUN0exlHAVj8WBEnK-JkZWLYH0a5LLMLPkfp-n_Ib9SmZ64 |
CitedBy_id | crossref_primary_10_1109_TCYB_2015_2419811 crossref_primary_10_1002_smr_1805 crossref_primary_10_1145_2522920_2522921 crossref_primary_10_1145_2544173_2509522 crossref_primary_10_1007_s11219_017_9358_6 crossref_primary_10_1016_j_jss_2013_08_030 crossref_primary_10_1109_TSE_2013_45 crossref_primary_10_1002_smr_567 crossref_primary_10_1155_2018_5494209 crossref_primary_10_1109_TSE_2011_84 crossref_primary_10_1145_2430536_2430541 crossref_primary_10_1016_j_ifacol_2021_08_086 crossref_primary_10_1007_s10664_012_9233_9 crossref_primary_10_1007_s10664_024_10528_7 crossref_primary_10_1007_s10664_011_9194_4 crossref_primary_10_1016_j_jss_2022_111532 crossref_primary_10_1007_s10664_019_09734_5 crossref_primary_10_1109_TSE_2014_2387172 crossref_primary_10_1007_s10664_011_9158_8 crossref_primary_10_1007_s10664_014_9327_7 crossref_primary_10_1109_TSE_2010_111 crossref_primary_10_1007_s11432_015_0860_9 crossref_primary_10_1145_2522920_2522930 crossref_primary_10_1002_smr_530 crossref_primary_10_1002_smr_413 crossref_primary_10_1109_MS_2009_161 crossref_primary_10_1109_TSE_2012_63 crossref_primary_10_1145_2377656_2377660 crossref_primary_10_1109_TSE_2018_2861735 crossref_primary_10_1145_3280988 crossref_primary_10_1016_j_infsof_2018_04_003 crossref_primary_10_1145_2220352_2220354 crossref_primary_10_1145_2377656_2377657 crossref_primary_10_1016_j_jss_2012_12_032 |
Cites_doi | 10.1109/ICSM.2001.972726 10.1145/643603.643622 10.1109/32.83912 10.1145/277631.277634 10.1109/TSE.2004.52 10.1007/978-94-015-8702-0 10.1109/TC.1976.1674590 10.1002/smr.4360070105 10.1109/32.48940 10.1109/ICSM.2005.42 10.1109/TSE.1984.5010248 10.5555/645544.655858 10.1145/1081706.1081711 10.1109/TSE.2004.101 10.1109/ICSE.2007.80 10.1145/1181775.1181779 10.1109/32.184759 10.1145/193173.195281 10.1145/93542.93576 10.1145/1052898.1052912 10.1109/ICSM.2006.70 10.1109/ICSM.2005.48 10.1145/1117696.1117710 10.1109/TSE.2003.1183929 |
ContentType | Journal Article |
DBID | AAYXX CITATION 7SC 8FD JQ2 L7M L~C L~D |
DOI | 10.1145/13487689.13487691 |
DatabaseName | CrossRef Computer and Information Systems Abstracts Technology Research Database ProQuest Computer Science Collection Advanced Technologies Database with Aerospace Computer and Information Systems Abstracts Academic Computer and Information Systems Abstracts Professional |
DatabaseTitle | CrossRef Computer and Information Systems Abstracts Technology Research Database Computer and Information Systems Abstracts – Academic Advanced Technologies Database with Aerospace ProQuest Computer Science Collection Computer and Information Systems Abstracts Professional |
DatabaseTitleList | CrossRef Computer and Information Systems Abstracts |
DeliveryMethod | fulltext_linktorsrc |
Discipline | Computer Science |
EISSN | 1557-7392 |
EndPage | 36 |
ExternalDocumentID | 10_1145_13487689_13487691 |
GroupedDBID | --Z -DZ -~X .4S .DC 23M 4.4 5GY 5VS 6J9 8US 9M8 AAHTB AAKMM AALFJ AAYFX AAYXX ABPEJ ABPPZ ACGFO ACGOD ACM ADBCU ADL ADMHC ADMLS AEBYY AEFXT AEJOY AENEX AENSD AETEA AFFNX AFWIH AFWXC AI. AIAGR AIKLT AKRVB ALMA_UNASSIGNED_HOLDINGS ARCSS ASPBG AVWKF BDXCO CCLIF CITATION CS3 D0L EBS EDO EJD FEDTE GUFHI HF~ HGAVV H~9 I07 LHSKQ MVM P1C P2P PQQKQ RNS ROL TUS UPT VH1 XOL XSW YR2 ZCA 7SC 8FD JQ2 L7M L~C L~D |
ID | FETCH-LOGICAL-c276t-6ba99d656bfd1109f4cdeac168b7487d398591d095f2ffcc8741276fbc79da0a3 |
ISSN | 1049-331X |
IngestDate | Thu Jul 10 23:38:17 EDT 2025 Thu Apr 24 23:04:06 EDT 2025 Tue Aug 05 11:56:55 EDT 2025 |
IsPeerReviewed | true |
IsScholarly | true |
Issue | 4 |
Language | English |
LinkModel | OpenURL |
MergedId | FETCHMERGED-LOGICAL-c276t-6ba99d656bfd1109f4cdeac168b7487d398591d095f2ffcc8741276fbc79da0a3 |
Notes | ObjectType-Article-2 SourceType-Scholarly Journals-1 ObjectType-Feature-1 content type line 23 |
PQID | 34709783 |
PQPubID | 23500 |
PageCount | 36 |
ParticipantIDs | proquest_miscellaneous_34709783 crossref_primary_10_1145_13487689_13487691 crossref_citationtrail_10_1145_13487689_13487691 |
PublicationCentury | 2000 |
PublicationDate | 2008-08-00 20080801 |
PublicationDateYYYYMMDD | 2008-08-01 |
PublicationDate_xml | – month: 08 year: 2008 text: 2008-08-00 |
PublicationDecade | 2000 |
PublicationTitle | ACM transactions on software engineering and methodology |
PublicationYear | 2008 |
References | Zimmermann T. (e_1_2_1_42_1) Salah M. (e_1_2_1_28_1) Orso A. (e_1_2_1_22_1) Antoniol G. (e_1_2_1_4_1) e_1_2_1_41_1 e_1_2_1_23_1 e_1_2_1_24_1 e_1_2_1_21_1 e_1_2_1_27_1 Tip F. (e_1_2_1_32_1) 1995; 3 e_1_2_1_25_1 e_1_2_1_26_1 Marcus A. (e_1_2_1_20_1) e_1_2_1_29_1 Tonella P. (e_1_2_1_33_1) Yin R. K. (e_1_2_1_38_1) 1989; 5 Gyimóthy T. (e_1_2_1_14_1); 1687 Wong W. E. (e_1_2_1_37_1) e_1_2_1_7_1 e_1_2_1_31_1 e_1_2_1_8_1 e_1_2_1_30_1 Aho A. V. (e_1_2_1_2_1) e_1_2_1_5_1 e_1_2_1_6_1 e_1_2_1_3_1 e_1_2_1_12_1 e_1_2_1_35_1 e_1_2_1_13_1 e_1_2_1_34_1 e_1_2_1_1_1 e_1_2_1_10_1 e_1_2_1_11_1 e_1_2_1_16_1 e_1_2_1_39_1 e_1_2_1_17_1 Zhao W. (e_1_2_1_40_1) e_1_2_1_15_1 e_1_2_1_36_1 e_1_2_1_9_1 e_1_2_1_18_1 e_1_2_1_19_1 |
References_xml | – ident: e_1_2_1_21_1 – ident: e_1_2_1_23_1 doi: 10.1109/ICSM.2001.972726 – volume-title: Proceedings of the 1st IEEE Euromicro Conference on Software Maintenance and Reengineering. 60--67 ident: e_1_2_1_33_1 – ident: e_1_2_1_16_1 doi: 10.1145/643603.643622 – ident: e_1_2_1_11_1 doi: 10.1109/32.83912 – ident: e_1_2_1_31_1 doi: 10.1145/277631.277634 – volume-title: Formal Language Theory: Perspectives and Open Problems ident: e_1_2_1_2_1 – ident: e_1_2_1_39_1 doi: 10.1109/TSE.2004.52 – ident: e_1_2_1_41_1 doi: 10.1007/978-94-015-8702-0 – ident: e_1_2_1_6_1 doi: 10.1109/TC.1976.1674590 – ident: e_1_2_1_36_1 doi: 10.1002/smr.4360070105 – ident: e_1_2_1_7_1 doi: 10.1109/32.48940 – ident: e_1_2_1_9_1 doi: 10.1109/ICSM.2005.42 – ident: e_1_2_1_35_1 doi: 10.1109/TSE.1984.5010248 – ident: e_1_2_1_29_1 – ident: e_1_2_1_18_1 – ident: e_1_2_1_12_1 – ident: e_1_2_1_10_1 doi: 10.5555/645544.655858 – ident: e_1_2_1_25_1 doi: 10.1145/1081706.1081711 – volume: 5 volume-title: Applied Social Research Methods Series year: 1989 ident: e_1_2_1_38_1 – ident: e_1_2_1_27_1 doi: 10.1109/TSE.2004.101 – ident: e_1_2_1_34_1 doi: 10.1109/ICSE.2007.80 – volume-title: Proceedings of the 26th ACM/IEEE International Conference on Software Engineering. 491--500 ident: e_1_2_1_22_1 – volume-title: Proceedings of the 26th ACM/IEEE International Conference on Software Engineering. 563--572 ident: e_1_2_1_42_1 – ident: e_1_2_1_30_1 doi: 10.1145/1181775.1181779 – ident: e_1_2_1_19_1 doi: 10.1109/32.184759 – ident: e_1_2_1_3_1 – volume-title: Proceedings of the 6th IEEE Working Conference on Reverse Engineering. 136--144 ident: e_1_2_1_4_1 – ident: e_1_2_1_15_1 doi: 10.1145/193173.195281 – ident: e_1_2_1_1_1 doi: 10.1145/93542.93576 – volume: 3 start-page: 121 year: 1995 ident: e_1_2_1_32_1 article-title: A survey of program slicing techniques publication-title: J. Program. Lang. – ident: e_1_2_1_17_1 doi: 10.1145/1052898.1052912 – volume-title: Proceedings of the 11th IEEE Working Conference on Reverse Engineering. 214--223 ident: e_1_2_1_20_1 – volume-title: Proceedings of the IEEE Symposium on Application-Specific Systems and Software Engineering and Technology. 194--203 ident: e_1_2_1_37_1 – ident: e_1_2_1_26_1 doi: 10.1109/ICSM.2006.70 – volume-title: Proceedings of the 20th IEEE International Conference on Software Maintenance. 72--81 ident: e_1_2_1_28_1 – volume: 1687 volume-title: 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 ident: e_1_2_1_14_1 – ident: e_1_2_1_13_1 – volume-title: Proceedings of the 26th ACM/IEEE International Conference on Software Engineering. 293--303 ident: e_1_2_1_40_1 – ident: e_1_2_1_5_1 doi: 10.1109/ICSM.2005.48 – ident: e_1_2_1_24_1 doi: 10.1145/1117696.1117710 – ident: e_1_2_1_8_1 doi: 10.1109/TSE.2003.1183929 |
SSID | ssj0013024 |
Score | 2.1450443 |
Snippet | 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... |
SourceID | proquest crossref |
SourceType | Aggregation Database Enrichment Source Index Database |
StartPage | 1 |
Title | Topology analysis of software dependencies |
URI | https://www.proquest.com/docview/34709783 |
Volume | 17 |
hasFullText | 1 |
inHoldings | 1 |
isFullTextHit | |
isPrint | |
link | http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwnV1bS8MwFA66vfjiXZzXPvg06ewlbZrHMRURJ4Ib7K00SfMkm7gOwV_vSdP04lScL6WUJrT9wrn05HwfQhdw1Q0izmwSBMTGQhKbQhZgByJNk8gTROakPsPH8G6M7yfBpFLpy7tLMtbjH9_2lfwHVbgGuKou2RWQLSeFC3AO-MIREIbj3zDWCgeKQqmiFpmDYX1X-7mMvi03-wQN2exgqJQhjEx4Xi8oB6UVP2FeV9AK041_76plDBaP3hOvaQgun3qN3wdRuXnNWDxIEWzfz3VrwCEUVhBwIz5tmklSWw64ZvPcmvPUZCbLZhkrBgvXh-wojGhPn1C38kGm7v7FNZUbBnX7dBCbKWIzxTpqe5AggIVr96-HD89VBcnRgsbm9YqKNkxytfQczZik6ZLzOGO0jTaLBMHqa7R30Fo63UVbRnzDKmzxHuoa8C0DvjWTlsHRqoO_j8a3N6PBnV0IX9jcI2FmhyyhVECkzaRQjLAScwEO0g0jRuCJhU8V66CA6Fh6UnIeQVgIAyXjhIrESfwD1JrOpukhskIGCbwgxEkFxtJNKIEQ26EJDogrA8k6yDGvHvOCFV6Jk7zEP37yDuqWQ141JcpvN5-b7xmD4VLVqGSazhbz2Mck7yE6WmW6Y7RRLeIT1MreFukpRIUZOysWwCdzo10P |
linkProvider | EBSCOhost |
openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Topology+analysis+of+software+dependencies&rft.jtitle=ACM+transactions+on+software+engineering+and+methodology&rft.au=Robillard%2C+Martin+P.&rft.date=2008-08-01&rft.issn=1049-331X&rft.eissn=1557-7392&rft.volume=17&rft.issue=4&rft.spage=1&rft.epage=36&rft_id=info:doi/10.1145%2F13487689.13487691&rft.externalDBID=n%2Fa&rft.externalDocID=10_1145_13487689_13487691 |
thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=1049-331X&client=summon |
thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=1049-331X&client=summon |
thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=1049-331X&client=summon |