Skip to main content
main-content

Tipp

Weitere Artikel dieser Ausgabe durch Wischen aufrufen

Erschienen in: Journal of Visualization 3/2021

14.01.2021 | Regular Paper

Visual exploration of dependency graph in source code via embedding-based similarity

verfasst von: Huan Liu, Yubo Tao, Wenda Huang, Hai Lin

Erschienen in: Journal of Visualization | Ausgabe 3/2021

Einloggen, um Zugang zu erhalten
share
TEILEN

Abstract

 A large software system contains millions of lines of source code, and the development often involves many developers over a long period. How to understand and analyze its complex code dependencies is challenging but meaningful to developers for program comprehension. In this paper, we propose a novel visual analytics system to explore code dependencies between files for visually understanding software architecture and interactively analyzing bad dependencies. The dependencies between files are abstracted as a directed graph (i.e., the dependency graph) at different levels via the file hierarchy to show the modularization design of source code. Node embeddings of the dependency graph are learned to identify the files with specific dependencies and analyze the similarity between bad dependencies. Finally, we evaluate the usability of our system by two case studies in different JavaScript libraries as well as a user study on software architecture understanding and bad dependency analysis.

Graphic abstract

Sie möchten Zugang zu diesem Inhalt erhalten? Dann informieren Sie sich jetzt über unsere Produkte:

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 69.000 Bücher
  • über 500 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Testen Sie jetzt 15 Tage kostenlos.

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 58.000 Bücher
  • über 300 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Testen Sie jetzt 15 Tage kostenlos.

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 50.000 Bücher
  • über 380 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




Testen Sie jetzt 15 Tage kostenlos.

Anhänge
Nur mit Berechtigung zugänglich
Literatur
Zurück zum Zitat Al-Mutawa HA, Dietrich J, Marsland S, McCartin C (2014) On the shape of circular dependencies in java programs. In: IEEE 2014 23rd Australian software engineering conference, pp 48–57 Al-Mutawa HA, Dietrich J, Marsland S, McCartin C (2014) On the shape of circular dependencies in java programs. In: IEEE 2014 23rd Australian software engineering conference, pp 48–57
Zurück zum Zitat Balzer M, Deussen O (2005) Exploring relations within software systems using treemap enhanced hierarchical graphs. In: 3rd IEEE international workshop on visualizing software for understanding and analysis, pp 1–6 Balzer M, Deussen O (2005) Exploring relations within software systems using treemap enhanced hierarchical graphs. In: 3rd IEEE international workshop on visualizing software for understanding and analysis, pp 1–6
Zurück zum Zitat Chen Y, Guan Z, Zhang R, Du X, Wang Y (2019) A survey on visualization approaches for exploring association relationships in graph data. J Vis 22(3):625–639 CrossRef Chen Y, Guan Z, Zhang R, Du X, Wang Y (2019) A survey on visualization approaches for exploring association relationships in graph data. J Vis 22(3):625–639 CrossRef
Zurück zum Zitat Daniel DT, Wuchner E, Sokolov K, Stal M, Liggesmeyer P (2014) Polyptychon: a hierarchically-constrained classified dependencies visualization. In: 2014 2nd IEEE working conference on software visualization, pp 83–86 Daniel DT, Wuchner E, Sokolov K, Stal M, Liggesmeyer P (2014) Polyptychon: a hierarchically-constrained classified dependencies visualization. In: 2014 2nd IEEE working conference on software visualization, pp 83–86
Zurück zum Zitat Dietrich J, Yakovlev V, McCartin C, Jenson G, Duchrow M (2008) Cluster analysis of java dependency graphs. In: Proceedings of the 4th ACM symposium on software visualization, pp 91–94 Dietrich J, Yakovlev V, McCartin C, Jenson G, Duchrow M (2008) Cluster analysis of java dependency graphs. In: Proceedings of the 4th ACM symposium on software visualization, pp 91–94
Zurück zum Zitat Donnat C, Zitnik M, Hallac D, Leskovec J (2018) Learning structural node embeddings via diffusion wavelets. In: Proceedings of the 24th ACM SIGKDD International conference on knowledge discovery and data mining, pp 1320–1329 Donnat C, Zitnik M, Hallac D, Leskovec J (2018) Learning structural node embeddings via diffusion wavelets. In: Proceedings of the 24th ACM SIGKDD International conference on knowledge discovery and data mining, pp 1320–1329
Zurück zum Zitat Grover A, Leskovec J (2016) node2vec: Scalable feature learning for networks. In: Proceedings of the 22nd ACM SIGKDD international conference on knowledge discovery and data mining, pp 855–864 Grover A, Leskovec J (2016) node2vec: Scalable feature learning for networks. In: Proceedings of the 22nd ACM SIGKDD international conference on knowledge discovery and data mining, pp 855–864
Zurück zum Zitat Hamilton WL, Ying R, Leskovec J (2017) Representation learning on graphs: methods and applications. IEEE Data Eng Bull 40:52–74 Hamilton WL, Ying R, Leskovec J (2017) Representation learning on graphs: methods and applications. IEEE Data Eng Bull 40:52–74
Zurück zum Zitat Holmes R, Ratchford T, Robillard MP, Walker RJ (2009) Automatically recommending triage decisions for pragmatic reuse tasks. In: 2009 IEEE/ACM international conference on automated software engineering, pp 397–408 Holmes R, Ratchford T, Robillard MP, Walker RJ (2009) Automatically recommending triage decisions for pragmatic reuse tasks. In: 2009 IEEE/ACM international conference on automated software engineering, pp 397–408
Zurück zum Zitat Holmes R, Walker RJ (2007) Supporting the investigation and planning of pragmatic reuse tasks. In: 29th International conference on software engineering (ICSE’07), pp 447–457 Holmes R, Walker RJ (2007) Supporting the investigation and planning of pragmatic reuse tasks. In: 29th International conference on software engineering (ICSE’07), pp 447–457
Zurück zum Zitat Holmes R, Walker RJ (2007) Task-specific source code dependency investigation. In: 2007 4th IEEE international workshop on visualizing software for understanding and analysis, pp 100–107 Holmes R, Walker RJ (2007) Task-specific source code dependency investigation. In: 2007 4th IEEE international workshop on visualizing software for understanding and analysis, pp 100–107
Zurück zum Zitat Holmes R, Walker RJ (2008) Lightweight, semi-automated enactment of pragmatic-reuse plans. In: International conference on software reuse, Springer, pp 330–342 Holmes R, Walker RJ (2008) Lightweight, semi-automated enactment of pragmatic-reuse plans. In: International conference on software reuse, Springer, pp 330–342
Zurück zum Zitat Holten D (2006) Hierarchical edge bundles: visualization of adjacency relations in hierarchical data. IEEE Trans Vis Comput Gr 12(5):741–748 CrossRef Holten D (2006) Hierarchical edge bundles: visualization of adjacency relations in hierarchical data. IEEE Trans Vis Comput Gr 12(5):741–748 CrossRef
Zurück zum Zitat Holten D, Van Wijk JJ (2009) A user study on visualizing directed edges in graphs. In: Proceedings of the SIGCHI conference on human factors in computing systems, pp 2299–2308 Holten D, Van Wijk JJ (2009) A user study on visualizing directed edges in graphs. In: Proceedings of the SIGCHI conference on human factors in computing systems, pp 2299–2308
Zurück zum Zitat Koschke R (2003) Software visualization in software maintenance, reverse engineering, and re-engineering: a research survey. J Softw Maint Evol Res Pract 15(2):87–109 CrossRef Koschke R (2003) Software visualization in software maintenance, reverse engineering, and re-engineering: a research survey. J Softw Maint Evol Res Pract 15(2):87–109 CrossRef
Zurück zum Zitat Lanza M, Ducasse S, Gall H, Pinzger M (2005) Codecrawler: an information visualization tool for program comprehension. In: Proceedings of the 27th international conference on Software engineering, pp 672–673 Lanza M, Ducasse S, Gall H, Pinzger M (2005) Codecrawler: an information visualization tool for program comprehension. In: Proceedings of the 27th international conference on Software engineering, pp 672–673
Zurück zum Zitat Laval J, Denier S, Ducasse S, Bergel A (2009) Identifying cycle causes with enriched dependency structural matrix. In: 2009 16th Working conference on reverse engineering, pp 113–122 Laval J, Denier S, Ducasse S, Bergel A (2009) Identifying cycle causes with enriched dependency structural matrix. In: 2009 16th Working conference on reverse engineering, pp 113–122
Zurück zum Zitat Laval J, Ducasse S (2014) Resolving cyclic dependencies between packages with enriched dependency structural matrix. Softw Pract Exp 44(2):235–257 CrossRef Laval J, Ducasse S (2014) Resolving cyclic dependencies between packages with enriched dependency structural matrix. Softw Pract Exp 44(2):235–257 CrossRef
Zurück zum Zitat Lewerentz C, Noack A (2004) Crococosmos—3d visualization of large object-oriented programs. In: Graph drawing software, Springer, pp 279–297 Lewerentz C, Noack A (2004) Crococosmos—3d visualization of large object-oriented programs. In: Graph drawing software, Springer, pp 279–297
Zurück zum Zitat Lopes CV, Bajracharya SK (2005) An analysis of modularity in aspect oriented design. In: Proceedings of the 4th international conference on aspect-oriented software development, pp 15–26 Lopes CV, Bajracharya SK (2005) An analysis of modularity in aspect oriented design. In: Proceedings of the 4th international conference on aspect-oriented software development, pp 15–26
Zurück zum Zitat Maaten Lvd, Hinton G (2008) Visualizing data using t-sne. J Mach Learn Res 9(Nov):2579–2605 MATH Maaten Lvd, Hinton G (2008) Visualizing data using t-sne. J Mach Learn Res 9(Nov):2579–2605 MATH
Zurück zum Zitat MacCormack A, Rusnak J, Baldwin CY (2006) Exploring the structure of complex software designs: an empirical study of open source and proprietary code. Manag Sci 52(7):1015–1030 CrossRef MacCormack A, Rusnak J, Baldwin CY (2006) Exploring the structure of complex software designs: an empirical study of open source and proprietary code. Manag Sci 52(7):1015–1030 CrossRef
Zurück zum Zitat Melton H, Tempero E (2006) Identifying refactoring opportunities by identifying dependency cycles. In: Proceedings of the 29th australasian computer science conference, vol 48, pp 35–41 Melton H, Tempero E (2006) Identifying refactoring opportunities by identifying dependency cycles. In: Proceedings of the 29th australasian computer science conference, vol 48, pp 35–41
Zurück zum Zitat Melton H, Tempero E (2007) Jooj: real-time support for avoiding cyclic dependencies. In: Proceedings of the thirtieth Australasian conference on computer science, vol 62, pp 87–95 Melton H, Tempero E (2007) Jooj: real-time support for avoiding cyclic dependencies. In: Proceedings of the thirtieth Australasian conference on computer science, vol 62, pp 87–95
Zurück zum Zitat Mumtaz H, Latif S, Beck F, Weiskopf D (2019) Exploranative code quality documents. IEEE Trans Vis Comput Gr 26:1129–1139 Mumtaz H, Latif S, Beck F, Weiskopf D (2019) Exploranative code quality documents. IEEE Trans Vis Comput Gr 26:1129–1139
Zurück zum Zitat Perozzi B, Al-Rfou R, Skiena S (2014) Deepwalk: Online learning of social representations. In: Proceedings of the 20th ACM SIGKDD international conference on Knowledge discovery and data mining, pp 701–710 Perozzi B, Al-Rfou R, Skiena S (2014) Deepwalk: Online learning of social representations. In: Proceedings of the 20th ACM SIGKDD international conference on Knowledge discovery and data mining, pp 701–710
Zurück zum Zitat Pinzger M, Graefenhain K, Knab P, Gall HC (2008) A tool for visual understanding of source code dependencies. In: 2008 16th IEEE International conference on program comprehension, pp 254–259 Pinzger M, Graefenhain K, Knab P, Gall HC (2008) A tool for visual understanding of source code dependencies. In: 2008 16th IEEE International conference on program comprehension, pp 254–259
Zurück zum Zitat Reniers D, Voinea L, Telea A (2011) Visual exploration of program structure, dependencies and metrics with solidsx. In: 2011 6th International workshop on visualizing software for understanding and analysis (VISSOFT), pp 1–4 Reniers D, Voinea L, Telea A (2011) Visual exploration of program structure, dependencies and metrics with solidsx. In: 2011 6th International workshop on visualizing software for understanding and analysis (VISSOFT), pp 1–4
Zurück zum Zitat Ribeiro LF, Saverese PH, Figueiredo DR (2017) struc2vec: Learning node representations from structural identity. In: Proceedings of the 23rd ACM SIGKDD international conference on knowledge discovery and data mining, pp 385–394 Ribeiro LF, Saverese PH, Figueiredo DR (2017) struc2vec: Learning node representations from structural identity. In: Proceedings of the 23rd ACM SIGKDD international conference on knowledge discovery and data mining, pp 385–394
Zurück zum Zitat Sangal N, Jordan E, Sinha V, Jackson D (2005) Using dependency models to manage complex software architecture. In: ACM Sigplan notices, vol 40, pp 167–176 Sangal N, Jordan E, Sinha V, Jackson D (2005) Using dependency models to manage complex software architecture. In: ACM Sigplan notices, vol 40, pp 167–176
Zurück zum Zitat Seider D, Schreiber A, Marquardt T, Brüggemann M (2016) Visualizing modules and dependencies of OSGI-based applications. In: 2016 IEEE working conference on software visualization (VISSOFT), pp 96–100 Seider D, Schreiber A, Marquardt T, Brüggemann M (2016) Visualizing modules and dependencies of OSGI-based applications. In: 2016 IEEE working conference on software visualization (VISSOFT), pp 96–100
Zurück zum Zitat Snyder A (1986) Encapsulation and inheritance in object-oriented programming languages. In: ACM Sigplan notices, vol 21, pp 38–45 Snyder A (1986) Encapsulation and inheritance in object-oriented programming languages. In: ACM Sigplan notices, vol 21, pp 38–45
Zurück zum Zitat Telea A, Hoogendorp H, Ersoy O, Reniers D (2009) Extraction and visualization of call dependencies for large c/c++ code bases: a comparative study. In: 2009 5th IEEE International workshop on visualizing software for understanding and analysis, pp 81–88 Telea A, Hoogendorp H, Ersoy O, Reniers D (2009) Extraction and visualization of call dependencies for large c/c++ code bases: a comparative study. In: 2009 5th IEEE International workshop on visualizing software for understanding and analysis, pp 81–88
Zurück zum Zitat Wermelinger M, Yu Y, Lozano A (2008) Design principles in architectural evolution: a case study. In: 2008 IEEE international conference on software maintenance, pp 396–405 Wermelinger M, Yu Y, Lozano A (2008) Design principles in architectural evolution: a case study. In: 2008 IEEE international conference on software maintenance, pp 396–405
Zurück zum Zitat Yoshida N, Higo Y, Kamiya T, Kusumoto S, Inoue K (2005) On refactoring support based on code clone dependency relation. In: 11th IEEE international software metrics symposium (METRICS’05), p 10 Yoshida N, Higo Y, Kamiya T, Kusumoto S, Inoue K (2005) On refactoring support based on code clone dependency relation. In: 11th IEEE international software metrics symposium (METRICS’05), p 10
Metadaten
Titel
Visual exploration of dependency graph in source code via embedding-based similarity
verfasst von
Huan Liu
Yubo Tao
Wenda Huang
Hai Lin
Publikationsdatum
14.01.2021
Verlag
Springer Berlin Heidelberg
Erschienen in
Journal of Visualization / Ausgabe 3/2021
Print ISSN: 1343-8875
Elektronische ISSN: 1875-8975
DOI
https://doi.org/10.1007/s12650-020-00727-x

Weitere Artikel der Ausgabe 3/2021

Journal of Visualization 3/2021 Zur Ausgabe

Premium Partner