TY - JOUR
T1 - Analysis of function-call graphs of open-source software systems using complex network analysis
AU - Tunali, Volkan
AU - Tüysüz, Mehmet Ali Aksoy
PY - 2020/4/7
Y1 - 2020/4/7
N2 - Software systems are usually designed in a modular and hierarchical fashion, where functional responsibility of a system is decomposed into multiple functional software elements optimally such as subsystems, modules, packages, classes, methods, and functions. These elements are coupled with each other with some kind of dependency relationships to some degree, and their interactions naturally form a graph or network structure. In this study, we generated the static function-call graphs of several open-source software systems, where functions were the most basic type of interacting elements calling each other. Then, we analyzed the call graphs both visually and topologically using the techniques of complex network analysis. We found the call graphs to reveal scale-free and small-world network properties similar to the findings of the previous studies. In addition, we identified the most central and important functions in each call-graph using several centrality measures. We also performed community analysis and found that the call graphs exhibited a tendency to form communities. Finally, we showed that analysis of static function-call graphs of software systems through complex network analysis has the potential to reveal useful information about them.
AB - Software systems are usually designed in a modular and hierarchical fashion, where functional responsibility of a system is decomposed into multiple functional software elements optimally such as subsystems, modules, packages, classes, methods, and functions. These elements are coupled with each other with some kind of dependency relationships to some degree, and their interactions naturally form a graph or network structure. In this study, we generated the static function-call graphs of several open-source software systems, where functions were the most basic type of interacting elements calling each other. Then, we analyzed the call graphs both visually and topologically using the techniques of complex network analysis. We found the call graphs to reveal scale-free and small-world network properties similar to the findings of the previous studies. In addition, we identified the most central and important functions in each call-graph using several centrality measures. We also performed community analysis and found that the call graphs exhibited a tendency to form communities. Finally, we showed that analysis of static function-call graphs of software systems through complex network analysis has the potential to reveal useful information about them.
KW - function call-graph
KW - open-source software
KW - complex network analysis
KW - network centrality
KW - network science
UR - https://doaj.org/toc/2147-5881?source=%7B%22query%22%3A%7B%22bool%22%3A%7B%22must%22%3A%5B%7B%22terms%22%3A%7B%22index.issn.exact%22%3A%5B%221300-7009%22%2C%222147-5881%22%5D%7D%7D%5D%7D%7D%2C%22size%22%3A100%2C%22sort%22%3A%5B%7B%22created_date%22%3A%7B%22order%22%3A%22desc%22%7D%7D%5D%2C%22_source%22%3A%7B%7D%2C%22track_total_hits%22%3Atrue%7D
U2 - 10.5505/pajes.2019.63239
DO - 10.5505/pajes.2019.63239
M3 - Article
SN - 1300-7009
VL - 26
SP - 352
EP - 358
JO - Pamukkale University Journal of Engineering Sciences
JF - Pamukkale University Journal of Engineering Sciences
IS - 2
ER -