Research Article
BibTex RIS Cite

Karmaşık ağ analizi kullanılarak açık-kaynak yazılım sistemlerinin fonksiyon-çağırma graflarının analizi

Year 2020, Volume: 26 Issue: 2, 352 - 358, 07.04.2020

Abstract

Yazılım sistemleri genellikle sistemin işlevsel sorumluluğunun optimal bir şekilde altsistemler, modüller, paketler, sınıflar, metodlar, ve fonksiyonlar gibi çok sayıda işlevsel yazılım elemanına ayrıştırıldığı, modüler ve hiyerarşik bir biçimde tasarlanırlar. Bu elemanlar birbirleriyle çeşitli ilişki türleri ile bağlıdırlar ve bunların etkileşimleri doğal olarak bir graf veya ağ yapısı oluşturur. Bu çalışmada, etkileşim halindeki en temel eleman türü olarak birbirini çağıran fonksiyonları dikkate alarak, çeşitli açık-kaynak yazılım sistemlerinin statik fonksiyon-çağırma graflarını oluşturduk. Ardından, karmaşık ağ analizi teknikleri kullanarak, çağırma graflarını hem görsel hem de topolojik olarak analiz ettik. Daha önceki çalışmaların bulgularına benzer olarak, grafların ölçekten-bağımsız ve küçük-dünya ağı özellikleri sergilediklerini gördük. Ek olarak, çeşitli merkezîlik ölçütleri kullanarak, her bir çağırma grafındaki en merkezi ve önemli fonksiyonları tespit ettik. Ayrıca, topluluk analizi gerçekleştirdik ve çağırma graflarının topluluk oluşturma eğilimi gösterdiğini bulduk. Son olarak, yazılım sistemlerinin statik fonksiyon-çağırma graflarının karmaşık ağ analizi yoluyla analizinin, sistemlerle ilgili yararlı bilgiler sağlama potansiyeli olduğunu gösterdik.

References

  • McConnell S. Code Complete: A Practical Handbook of Software Construction. 2nd ed. USA, Microsoft Press, 2004.
  • Barabási AL, Pósfai M. Network Science. Cambridge, Cambridge University Press, 2016.
  • Myers CR. "Software systems as complex networks: Structure, function, and evolvability of software collaboration graphs". Physical Review E, 68(4), 046116, 1-15, 2003.
  • Yan K-K, Fang G, Bhardwaj N, Alexander RP, Gerstein M. "Comparing genomes to computer operating systems in terms of the topology and evolution of their regulatory control networks". Proceedings of the National Academy of Sciences, 107(20), 9186-9191, 2010.
  • Guo Y, Zhao Z-x, Wang W. "Complexity analysis of software based on function-call graph". The 19th International Conference on Industrial Engineering and Engineering Management, Changsha, China, 27-29 October 2012.
  • Zhao D, Miao L, Zhang D. "Reusable function discovery by call-graph analysis". Journal of Software Engineering and Applications, 8, 184-191, 2015.
  • Yu Qu, Guan X, Zheng Q, Liu T, Wang L, Hou Y, Yang Z. "Exploring community structure of software Call Graph and its applications in class cohesion measurement". The Journal of Systems and Software, 108, 193-210, 2015.
  • Falci DHM, Gomes OA, Parreiras FS. "Complex networks analysis for software architecture: an hibernate call graph study". ArXiv, abs/1706.09859, 2017.
  • GNOME Library. "GitHub-GNOME/Gnome-Desktop: Library with common API for Various GNOME modules". https://github.com/GNOME/gnome-desktop/ (01.07.2018).
  • Gnu Emacs. “GitHub-Emacs-Mirror/Emacs: Mirror of GNU Emacs". https://github.com/emacs-mirror/emacs/ (01.07.2018).
  • Git. "GitHub-git/git: Git Source Code Mirror". https://github.com/git/git (01.07.2018).
  • Linux kernel. "GitHub-torvalds/linux: Linux Kernel Source Tree". https://github.com/torvalds/linux/ (01.07.2018).
  • pycflow2dot. "pycflow2dot· PyPI". https://pypi.org/project/pycflow2dot/0.2/ (01.07.2018).
  • GNU cflow. "GNU cflow". https://www.gnu.org/software/cflow/ (01.07.2018).
  • Graphviz. "Graphviz-Graph Visualization Software". http://www.graphviz.org/ (01.07.2018).
  • Zweig KA. Network Analysis Literacy: A Practical Approach to the Analysis of Networks. Austria, Springer-Verlag, 2016.
  • Tunalı V. Sosyal Ağ Analizine Giriş. Ankara, Türkiye, Nobel Akademik Yayıncılık, 2016.
  • Shannon P, Markiel A, Ozier O, Baliga NS, Wang JT, Ramage D, Amin N, Schwikowski B, Ideker T. "Cytoscape: A software environment for ıntegrated models of biomolecular ınteraction networks". Genome Research, 13(11), 2498-2504, 2003.
  • Bastian M, Heymann S, Jacomy M. "Gephi: An open source software for exploring and manipulating networks". International AAAI Conference on Weblogs and Social Media, San Jose, California, USA, 17-20 May 2009.
  • Hu Y. "Efficient, high-quality force-directed graph drawing". Mathematica Journal, 10(1), 37-71, 2005.
  • Barabási AL, Albert R. "Emergence of Scaling in Random Networks". Science, 286(5439), 509-512, 1999.
  • Watts DJ, Strogatz SH. "Collective dynamics of small-world networks". Nature, 393(6684), 440-442, 1998.
  • Erdös P, Rényi A. "On Random Graphs". Publicationes Mathematicae Debrecen, 6, 290-297, 1959.
  • Blondel VD, Guillaume JL, Lambiotte R, Lefebvre E. "Fast unfolding of communities in large networks". Journal of Statistical Mechanics: Theory and Experiment, 2008(10), P10008, 1-12, 2008.

Analysis of function-call graphs of open-source software systems using complex network analysis

Year 2020, Volume: 26 Issue: 2, 352 - 358, 07.04.2020

Abstract

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.

References

  • McConnell S. Code Complete: A Practical Handbook of Software Construction. 2nd ed. USA, Microsoft Press, 2004.
  • Barabási AL, Pósfai M. Network Science. Cambridge, Cambridge University Press, 2016.
  • Myers CR. "Software systems as complex networks: Structure, function, and evolvability of software collaboration graphs". Physical Review E, 68(4), 046116, 1-15, 2003.
  • Yan K-K, Fang G, Bhardwaj N, Alexander RP, Gerstein M. "Comparing genomes to computer operating systems in terms of the topology and evolution of their regulatory control networks". Proceedings of the National Academy of Sciences, 107(20), 9186-9191, 2010.
  • Guo Y, Zhao Z-x, Wang W. "Complexity analysis of software based on function-call graph". The 19th International Conference on Industrial Engineering and Engineering Management, Changsha, China, 27-29 October 2012.
  • Zhao D, Miao L, Zhang D. "Reusable function discovery by call-graph analysis". Journal of Software Engineering and Applications, 8, 184-191, 2015.
  • Yu Qu, Guan X, Zheng Q, Liu T, Wang L, Hou Y, Yang Z. "Exploring community structure of software Call Graph and its applications in class cohesion measurement". The Journal of Systems and Software, 108, 193-210, 2015.
  • Falci DHM, Gomes OA, Parreiras FS. "Complex networks analysis for software architecture: an hibernate call graph study". ArXiv, abs/1706.09859, 2017.
  • GNOME Library. "GitHub-GNOME/Gnome-Desktop: Library with common API for Various GNOME modules". https://github.com/GNOME/gnome-desktop/ (01.07.2018).
  • Gnu Emacs. “GitHub-Emacs-Mirror/Emacs: Mirror of GNU Emacs". https://github.com/emacs-mirror/emacs/ (01.07.2018).
  • Git. "GitHub-git/git: Git Source Code Mirror". https://github.com/git/git (01.07.2018).
  • Linux kernel. "GitHub-torvalds/linux: Linux Kernel Source Tree". https://github.com/torvalds/linux/ (01.07.2018).
  • pycflow2dot. "pycflow2dot· PyPI". https://pypi.org/project/pycflow2dot/0.2/ (01.07.2018).
  • GNU cflow. "GNU cflow". https://www.gnu.org/software/cflow/ (01.07.2018).
  • Graphviz. "Graphviz-Graph Visualization Software". http://www.graphviz.org/ (01.07.2018).
  • Zweig KA. Network Analysis Literacy: A Practical Approach to the Analysis of Networks. Austria, Springer-Verlag, 2016.
  • Tunalı V. Sosyal Ağ Analizine Giriş. Ankara, Türkiye, Nobel Akademik Yayıncılık, 2016.
  • Shannon P, Markiel A, Ozier O, Baliga NS, Wang JT, Ramage D, Amin N, Schwikowski B, Ideker T. "Cytoscape: A software environment for ıntegrated models of biomolecular ınteraction networks". Genome Research, 13(11), 2498-2504, 2003.
  • Bastian M, Heymann S, Jacomy M. "Gephi: An open source software for exploring and manipulating networks". International AAAI Conference on Weblogs and Social Media, San Jose, California, USA, 17-20 May 2009.
  • Hu Y. "Efficient, high-quality force-directed graph drawing". Mathematica Journal, 10(1), 37-71, 2005.
  • Barabási AL, Albert R. "Emergence of Scaling in Random Networks". Science, 286(5439), 509-512, 1999.
  • Watts DJ, Strogatz SH. "Collective dynamics of small-world networks". Nature, 393(6684), 440-442, 1998.
  • Erdös P, Rényi A. "On Random Graphs". Publicationes Mathematicae Debrecen, 6, 290-297, 1959.
  • Blondel VD, Guillaume JL, Lambiotte R, Lefebvre E. "Fast unfolding of communities in large networks". Journal of Statistical Mechanics: Theory and Experiment, 2008(10), P10008, 1-12, 2008.
There are 24 citations in total.

Details

Primary Language English
Subjects Engineering
Journal Section Research Article
Authors

Volkan Tunalı

Mahmet Ali Aksoy Tüysüz This is me

Publication Date April 7, 2020
Published in Issue Year 2020 Volume: 26 Issue: 2

Cite

APA Tunalı, V., & Tüysüz, M. A. A. (2020). Analysis of function-call graphs of open-source software systems using complex network analysis. Pamukkale Üniversitesi Mühendislik Bilimleri Dergisi, 26(2), 352-358.
AMA Tunalı V, Tüysüz MAA. Analysis of function-call graphs of open-source software systems using complex network analysis. Pamukkale Üniversitesi Mühendislik Bilimleri Dergisi. April 2020;26(2):352-358.
Chicago Tunalı, Volkan, and Mahmet Ali Aksoy Tüysüz. “Analysis of Function-Call Graphs of Open-Source Software Systems Using Complex Network Analysis”. Pamukkale Üniversitesi Mühendislik Bilimleri Dergisi 26, no. 2 (April 2020): 352-58.
EndNote Tunalı V, Tüysüz MAA (April 1, 2020) Analysis of function-call graphs of open-source software systems using complex network analysis. Pamukkale Üniversitesi Mühendislik Bilimleri Dergisi 26 2 352–358.
IEEE V. Tunalı and M. A. A. Tüysüz, “Analysis of function-call graphs of open-source software systems using complex network analysis”, Pamukkale Üniversitesi Mühendislik Bilimleri Dergisi, vol. 26, no. 2, pp. 352–358, 2020.
ISNAD Tunalı, Volkan - Tüysüz, Mahmet Ali Aksoy. “Analysis of Function-Call Graphs of Open-Source Software Systems Using Complex Network Analysis”. Pamukkale Üniversitesi Mühendislik Bilimleri Dergisi 26/2 (April 2020), 352-358.
JAMA Tunalı V, Tüysüz MAA. Analysis of function-call graphs of open-source software systems using complex network analysis. Pamukkale Üniversitesi Mühendislik Bilimleri Dergisi. 2020;26:352–358.
MLA Tunalı, Volkan and Mahmet Ali Aksoy Tüysüz. “Analysis of Function-Call Graphs of Open-Source Software Systems Using Complex Network Analysis”. Pamukkale Üniversitesi Mühendislik Bilimleri Dergisi, vol. 26, no. 2, 2020, pp. 352-8.
Vancouver Tunalı V, Tüysüz MAA. Analysis of function-call graphs of open-source software systems using complex network analysis. Pamukkale Üniversitesi Mühendislik Bilimleri Dergisi. 2020;26(2):352-8.





Creative Commons Lisansı
Bu dergi Creative Commons Al 4.0 Uluslararası Lisansı ile lisanslanmıştır.