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

Full description

Saved in:
Bibliographic Details
Published inACM transactions on software engineering and methodology Vol. 17; no. 4; pp. 1 - 36
Main Author Robillard, Martin P.
Format Journal Article
LanguageEnglish
Published 01.08.2008
Online AccessGet 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