Analyzing Software Evolution Dynamics using Execution Path-aware Graph Divergence

Authors

  • Fitra Arifiansyah School of Electrical Engineering and Informatics, Institut Teknologi Bandung Jalan Ganesa No. 10 Bandung, 40132
  • Muhammad Zuhri Catur Candra School of Electrical Engineering and Informatics, Institut Teknologi Bandung Jalan Ganesa No. 10 Bandung, 40132
  • Gusti Ayu Putri Saptawati School of Electrical Engineering and Informatics, Institut Teknologi Bandung Jalan Ganesa No. 10 Bandung, 40132

DOI:

https://doi.org/10.5614/itbj.ict.res.appl.2026.20.1.6

Keywords:

call graph analysis, divergence measurement, execution path, network portrait, software comprehension, software evolution

Abstract

Software comprehension is a fundamental activity in software maintenance, and its complexity grows as systems evolve across releases. Call graphs (CG) are widely used to support this process because they capture the calling relationships among functions. However, obtaining meaningful comparisons between different versions of a CG remains challenging. Network Portrait Divergence (NPD) provides a graph invariant and computationally efficient metric for assessing structural differences by analyzing global distributions of node distances and neighborhood patterns. Although it is effective, NPD does not include execution semantics, even though execution paths often convey the behavioral changes that matter to developers. This study introduces a refinement of NPD that replaces neighborhood-oriented features with features derived from execution paths, represented through distributions of path lengths. The modified metric is evaluated in a controlled scenario using synthetic data, designed to distinguish the effects of structural changes including new call and changes to control flow. The results show that the proposed NPD is more responsive to modifications that influence execution behavior. Scenarios that create new execution paths and restructure control flow result in substantially higher divergence. These findings suggest that including execution path information offers a more behavior-oriented view of software evolution and complements topology-based approaches.

Downloads

Download data is not yet available.

References

Krer, J., Tackling Knowledge Needs during Software Evolution, in Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, pp. 1244-1246, 2019.

Xia, X., Bao, L., Lo, D., Xing, Z., Hassan, A.E. & Li, S., Measuring Program Comprehension: A Large-scale Field Study with Professionals, in IEEE Transactions on Software Engineering, 44(10), pp. 951-976, 2017.

Walunj, V., Gharibi, G., Ho, D.H. & Lee, Y., Graphevo: Characterizing and Understanding Software Evolution using Call Graphs, in 2021 IEEE International Conference on Big Data (Big Data), 2019.

Ardigo, S., Nagy, C., Minelli, R. & Lanza, M., M3tricity: Visualizing Evolving Software and Data Cities, in 2022 IEEE/ACM 44th International Conference on Software Engineering: Companion Proceedings (ICSE-Companion), pp. 130-133, 2022.

Chen, L., Lanza, M. & Hayashi, S., Understanding Code Change with Micro-changes, in International Conference on Software Maintenance and Evolution (ICSME), pp. 363-374, 2024.

Mi, Q., Zhan, Y., Weng, H., Bao, Q., Cui, L. & Ma, W., A Graph-based Code Representation Method to Improve Code Readability Classification, Empirical Software Engineering, 28(4), 87, 2023.

Alanazi, R., Gharibi, G. & Lee, Y., Automatic Hierarchical Clustering of Static Call Graphs for Program Comprehension, in 2021 IEEE International Conference on Big Data (Big Data), 2018.

Aponte J. & Cardenas, G.O., Evaluating the Graph-based Visualization Technique: A Controlled Experiment, Enfoque UTE, 8 (Suppl. 1), pp. 201-216, 2017.

Grove, D., DeFouw, G., Dean, J. & Chambers, C., Call Graph Construction in Object-oriented Languages, in ACM SIGPLAN, 1997.

Zhou, F., Fan, Y., Lv, S. Jiang, L., Chen, Z., Yuan, J., Han, F., Jiang, H., Bai, G. & Zhao, Y., Fctree: Visualization of Function Calls in Execution, Information and Software Technology, 175, 2024.

Vasa, R., Schneider, J.-G. & Nierstrasz, O., The Inevitable Stability of Software Change, in International Conference on Software Maintenance, pp. 4-13, 2007.

Gharibi, G., Tripathi, R. & Lee, Y., Code2graph: Automatic Generation of Static Call Graphs for Python Source Code in International Conference on Automated Software Engineering, pp. 880-883, 2018.

Alanazi, R., Gharibi, G. & Lee, Y., Facilitating Program Comprehension with Call Graph Multilevel Hierarchical Abstractions, Journal of Systems and Software, 176, 2021.

Alnabhan, M., Hammouri, A., Hammad, M., Atoum, M. & Al-Thnebat, O., 2d Visualization for Object-oriented Software Systems, in 2018 International Conference on Intelligent Systems and Computer Vision (ISCV), pp. 1-6, 2018.

Borowski, K., Balis, B. & Orzechowski, T., Graph Buddy-an Interactive Code Dependency Browsing and Visualization Tool, in Working Conference on Software Visualization (VISSOFT), pp. 152-156, 2022.

Jin, W., Xu, S., Chen, D., He, J., Zhong, D., Fan, M., Chen, H., Zhang, H. & Liu, T., Pyanalyzer: an Effective & Practical Approach for Dependency Extraction from Python Code, in Proceedings of the IEEE/ACM 46th International Conference on Software Engineering, pp. 1-12, 2024.

Li, C. Pei, Y. Shen, Y. Lu, J. Fan, Y. Linghu, X. Tian, Y. & Wang, K., ?Pyvisvue3d3: Python Visualization from Hierarchy Tree to Call Graph, SoftwareX, 26, 2024.

Mortara, J., Collet, P. & Dery-Pinna, A.-M., Visualization of Object-oriented Software in a City Metaphor: Comprehending the Implemented Variability and its Technical Debt, Journal of Systems and Software, 208, 111876, 2023.

Salis, V., Sotiropoulos, T., Louridas, P., Spinellis, D. & Mitropoulos, D., A Replication Package for Pycg: Practical Call Graph Generation in Python, in 2021 IEEE/ACM 43rd International Conference on Software Engineering (ICSE), 200, 2021.

Hora, A., Monitoring the Execution of 14k Tests: Methods Tend to Have One Path that is Significantly More Executed, in Proceedings of the 32nd ACM International Conference on the Foundations of Software Engineering (FSE 2024), pp. 532-536, 2024.

Ding, Y., Steenhoek, B., Pei, K., Kaiser, G., Le, W. & Ray, B., Traced: Execution-aware Pre-training for Source Code, in Proceedings of the IEEE/ACM 46th International Conference on Software Engineering (ICSE ?24) pp. 1-12, 2024.

Yang, Y., Yin, H., Cao, J., Chen, T., Hung, N. Q.V., Zhou X. & Chen, L., Time-aware Dynamic Graph Embedding for Asynchronous Structural Evolution, in IEEE Transactions on Knowledge and Data Engineering, 35(9), pp. 9656-9670, 2023.

Liu, Y., Safavi, T., Dighe, A. & Koutra, D., Graph Summarization Methods and Applications, in ACM Computing Surveys, 51(3), pp. 1-34, 2018.

Zhou, H., Liu, S., Shen, H. & Cheng, X., Graph Summarization for Preserving Spectral Characteristics. In Society for Industrial and Applied Mathematics Ebooks, Proceedings of the 2024 SIAM International Conference on Data Mining (SDM), 2024.

Zhou, H., Liu, S., Shen, H. & Cheng, X., Node Embedding Preserving Graph Summarization, ACM Transactions on Knowledge Discovery from Data, 18(6), pp. 1-19, 2024.

Tsalouchidou, I., Bonchi, F., Morales, G.D.F. & Baeza-Yates, R., Scalable Dynamic Graph Summarization, in IEEE Transactions on Knowledge and Data Engineering, 32(2), pp. 360-373, 2018.

Brunner, T. & Porkol, Z., Advanced Code Comprehension using Version Control Information, IPSI Transactions on Internet Research, pp. 47-54, 2020.

Shaikh, V., Decision Support System for Pull Requests Review using Path-based Network Portrait Divergence and Visualization, University of Missouri - Kansas City ProQuest Dissertations and Theses, 2022.

Bagrow, J.P. & Bollt, E.M., An Information-theoretic, All-scales Approach to Comparing Networks, Applied Network Science, 4, 45, 2019.

Utture, A., Liu, S., Kalhauge, C.G. & Palsberg, J., Striking a Balance: Pruning False-positives From Static Call Graphs, in Proceedings of the 44th International Conference on Software Engineering, pp. 2043-2055, 2022.

Al-Sharif, Z. & Jeffery, C., Abstracttrace: The use of Execution Traces to Cluster, Classify, Prioritize, and Optimize a Bloated Test Suite, Applied Sciences, 14(23), 11168, 2024.

Krause-Glau, A., Damerau, L., Hansen, M. & Hasselbring, W., Visual Integration of Static and Dynamic Software Analysis in Code Reviews Via Software City Visualization, Visualizing Software for Understanding and Analysis (VISSOFT), Flagstaff, AZ, USA, pp.144-149, 2024.

D?ambros, M., Gall, H., Lanza, M. & Pinzger, M., Analysing Software Repositories to Understand Software Evolution, in Software Evolution, Springer, pp. 37-67, 2008.

Rajlich, V., Software Evolution and Maintenance, in FOSE 2014: Future of Software Engineering Proceedings, pp. 133-144, 2014.

Bani-Salameh, H., Ahmad, A. & Aljammal, A.H., Software Evolution Visualization Techniques and Methods ? a Systematic Review, 2016 7th International Conference on Computer Science and Information Technology (CSIT), doi: 10.1109/CSIT.2016.7549475.

Rufiange, S. & Melancon, G., Animatrix: A Matrix-based Visualization of Software Evolution, in Proceedings of the 2nd IEEE Working Conference on Software Visualization, pp. 137-146, 2014.

Chaikalis, T., Melas, G. & Chatzigeorgiou, A., Seanets: Software Evolution Analysis with Networks, in IEEE International Conference on Software Maintenance (ICSM), 286, pp. 634-637, 2012.

Alanazi, R., Advancements in Call Graph Methodologies for Enhanced Program Comprehension: A Review, in IJCSNS International Journal of Computer Science and Network Security, 25(11), pp.55-62, 2025.

Keshani, M., Gousios, G. & Proksch, S., Frankenstein: Fast and Lightweight Call Graph Generation for Software Builds, Empirical Software Engineering, 29(1), 2023. doi: 10.1007/s10664-023-10388-7.

Tunal?, V. & Ts, M.A.A., Analysis of Function-call Graphs of Open-source Software Systems using Complex Network Analysis, Pamukkale University Journal of Engineering Sciences, 26(2), pp. 352-358, 2020.

Ser, H., Call Graph Delta Analysis and Security Vulnerability Assessment with Static Analysis, in 2024 IEEE 48th Annual Computers, Software, and Applications Conference (COMPSAC), pp. 2412-2417, 2024.

Domenico, M.D. & Biamonte, J., Spectral Entropies as Information-Theoretic Tools for Complex Network Comparison, Physical Review X, 6(4), 041062, 2016.

Chen, D., Shi, D.D., Qin, M., Xu, S.M. & Pan, G.J., Complex Network Comparison Based on Communicability Sequence Entropy, Physical Review. E, 98(1), 012319, 2018.

Lafhel, M., Cherifi, H., Renoust, B., Hassouni, M.E. & Mourchid, Y., Movie Script Similarity using Multilayer Network Portrait Divergence,? in Studies in computational intelligence, pp. 284-295, 2020.

Hoyos-Osorio J.K. & Sanchez-Giraldo, L.G., The Representation Jensen-Shannon Divergence, 37th Conference on Neural Information Processing Systems, 2023.

Endres, D. & Schindelin, J., A New Metric for Probability Distributions,? in IEEE Transactions on Information Theory, 49(7), pp. 1858-1860, 2003.

Bhattacharjee, A., Hcpc: Human Centric Program Comprehension by Grouping Static Execution Scenarios, TBD, 2021.

Ilg, L. & Cito, J., Codedetective: Enabling Isolated Code Execution, Diploma Thesis in Software Engineering and Internet Computing, TU Wien, 2025.

Stapleton, S., Gambhir, Y., LeClair, A., Eberhart, Z., Weimer, W. & Leach, K., A Human Study of Comprehension and Code Summarization, in 2020 IEEE/ACM 28th International Conference on Program Comprehension (ICPC), pp. 2-13, 2020.

Downloads

Published

2026-07-08

How to Cite

Arifiansyah, F., Catur Candra, M. Z., & Putri Saptawati, G. A. (2026). Analyzing Software Evolution Dynamics using Execution Path-aware Graph Divergence. Journal of ICT Research and Applications, 20(1), 87-113. https://doi.org/10.5614/itbj.ict.res.appl.2026.20.1.6

Issue

Section

Articles