Açık Kaynak Dağıtık Kod Geliştirme Ortamları için Metrik Önerileri


Tezin Türü: Doktora

Tezin Yürütüldüğü Kurum: Yıldız Teknik Üniversitesi, Fen Bilimleri Enstitüsü, Türkiye

Tezin Onay Tarihi: 2021

Tezin Dili: Türkçe

Öğrenci: Abdülkadir Şeker

Danışman: Banu Diri

Özet:

GitHub, milyonlarca geliştiricinin iş birligi yaptığı bir ortam ve 100 milyondan fazla proje için kod barındırma ve depo hizmeti sunmaktadır. Bu ortamdaki kod geliştirme süreçlerinde geliştiricilerin yürüttügü aktivitelerden ve ortamdaki ilişkilerinden, geliştiriciler hakkında farklı bilgilerin elde edilmesi saglanmaktadır. Çok çeşitli özellikleri sayesinde araştırmacılar, geniş yelpazedeki yazılım geliştirme zorluklarını çözmek için GitHub platformundan yararlanmaktadır. Bu tez kapsamında, farklı yazılım mühendisligi zorlukları için kullanılabilecek, erişimi kolay, uygulama açısından küçük boyutlu ve veri bakımından kapsamlı olan ve GitDataSCP adı verilen açık kaynaklı bir veri kümesi tarafımızdan üretilmiştir. GitHub gibi milyonlarca projenin bulundugu platformlarda geliştiricilerin ilgi duyacakları veya katkı saglayacakları projeleri keşfedebilmeleri oldukça zordur. Özellikle açık kaynaklı büyük projeler ele alındıgında, projeler gönüllü geliştiriciler tarafından yürütülmekte ve genişletilmektedir. Geliştiricilerin dogru projeleri bulabilmesi hem geliştiriciye kendi projelerinde takıldıgı sorunlarda yardımcı olacak, hem de keşfettigi projelere katkı vermesini sa glayacaktır. Bu noktada, bazı dezavantajlarından dolayı literatürde çok fazla odaklanılmamış olan, açık kaynak kod versiyonlama platformları için proje önerisi problemi ortaya çıkmaktadır. Geliştirici metriklerinin üretilmesinde, genellikle geliştiricinin geçmiş aktiviteleri kullanılmaktadır. Bu tez kapsamında, GitHub ortamındaki geliştiricilerin issue, commit, pull request süreçlerinde yürüttügü aktivitelerden geliştirici metrikleri üretmek xii amaçlanmıştır. Bu aktivitelerden aday geliştirici metriklerini tespit edebilmek için aktivitelerin GitHub ortamındaki kullanım oranları incelenmiştir. Ayrıca aktivitelerin önemini tespit edebilmek için 130 geliştirici ile bir anket çalışması da yapılmıştır. Bu aşamalardan sonra, çeşitli yaklaşımlar kullanılarak 40 farklı geliştirici metrigi önerilmiştir. Önerilen söz konusu metriklerin proje-geliştirici ilişkisi açısından katkısının degerlendirilmesi için, bir GitHub proje öneri sistemi geliştirilmiştir. GitHub proje sistemini sıradan öneri sistemlerinden daha zorlu kılan taraf, degerlendirme için temel bir gerçegin olmamasıdır. Bu tez kapsamında, öneri sisteminin do grulu gunun tespit edilebilmesi için topluluk ilişkisi ve dil deneyimi olarak isimlendirdigimiz 2 farklı degerlendirme yöntemi önerilmiştir. Öneri sisteminin sonuçlarına göre farklı yaklaşımlar ile elde edilmiş metriklerin başarıları ortaya konulmuştur. Farklı süreçlerde yapılan yorumlar ile ilişkili metriklerin sonuçları, bir projede kod yazmanın yanı sıra yorum yapmanın da proje-geliştirici bagını güçlü bir şekilde temsil etti gini göstermektedir. Ayrıca, issue ve pull request süreçlerinde yapılan aktivitelerden elde edilen metriklerin başarısı da bu iki özelligin önemini göstermektedir. Önerilen metriklerden, belirli türdeki aktivitelerin birleştirilmesinden oluşan, füzyon metrikler adı verilen geliştirici metriklerinin, digerlerine oranla daha üstün geldi gi görülmüştür. Ayrıca, bir aktivitenin miktarını göz ardı eden, sadece bir projede var olup olmadıgını baz alan ikili füzyon metrikleri de şaşırtıcı derecede başarılı sonuçlar vermiştir. Bu tezde önerilen geliştirici metriklerinin iyileştirilebilir ve farklı yazılım mühendisligi problemlerine de uygulanabilir oldu gu düşünülmektedir.