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.