Karmaşık ağ analizi kullanılarak açık-kaynak yazılım sistemlerinin fonksiyon-çağırma graflarının analizi [Pamukkale Univ Muh Bilim Derg]
Pamukkale Univ Muh Bilim Derg. Baskıdaki Makaleler: PAJES-63239 | DOI: 10.5505/pajes.2019.63239  

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

Volkan Tunalı, Mehmet Ali Aksoy Tüysüz
Maltepe Üniversitesi Mühendislik ve Doğa Bilimleri Fakültesi, Yazılım Mühendisliği (İngilizce) Bölümü, İstanbul

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.

Anahtar Kelimeler: Fonksiyon-çağırma grafı, Açık-kaynak yazılım, Karmaşık ağ analizi, Ağ merkezîliği, Ağ bilimi


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

Volkan Tunalı, Mehmet Ali Aksoy Tüysüz
Department of Software Engineering, Maltepe University, İstanbul, Turkey

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.

Keywords: Fuction-call graph, Open-source software, Complex network analysis, Network centrality, Network science




Sorumlu Yazar: Volkan Tunalı, Türkiye


ARAÇLAR
Yazdır
Alıntıyı İndir
RIS
EndNote
BibTex
Medlars
Procite
Reference Manager
E-Postala
Paylaş
Yazara e-posta gönder

Benzer makaleler
Google Scholar


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


LookUs & Online Makale