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


Dr. Öğr. Üyesi ABDULKADİR ŞEKER

Tez Türü: Doktora

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

Tez Danışmanı: Banu Diri

Tezin Onay Tarihi: 2021

Tezin Dili: Türkçe

Açık Arşiv Koleksiyonu: AVESİS Açık Erişim Koleksiyonu

Özet:

GitHub, milyonlarca geliştiricinin iş birliği 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üğü aktivitelerden ve ortamdaki ilişkilerinden, geliştiriciler hakkında farklı bilgilerin elde edilmesi sağlanmaktadı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ühendisliği 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 bulunduğu platformlarda geliştiricilerin ilgi duyacakları veya katkı sağlayacakları projeleri keşfedebilmeleri oldukça zordur. Özellikle açık kaynaklı büyük projeler ele alındığında, projeler gönüllü geliştiriciler tarafından yürütülmekte ve genişletilmektedir. Geliştiricilerin doğru projeleri bulabilmesi hem geliştiriciye kendi projelerinde takıldığı sorunlarda yardımcı olacak, hem de keşfettiği projelere katkı vermesini sağlayacaktı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üğü aktivitelerden geliştirici metrikleri üretmek 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 metriği önerilmiştir. 

Önerilen söz konusu metriklerin proje-geliştirici ilişkisi açısından katkısının değerlendirilmesi için, bir GitHub proje öneri sistemi geliştirilmiştir. GitHub proje sistemini sıradan öneri sistemlerinden daha zorlu kılan taraf, değerlendirme için temel bir gerçeğin olmamasıdır. Bu tez kapsamında, öneri sisteminin doğruluğunun tespit edilebilmesi için topluluk ilişkisi ve dil deneyimi olarak isimlendirdiğimiz 2 farklı değerlendirme 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 bağını güçlü bir şekilde temsil ettiğini göstermektedir. Ayrıca, issue ve pull request süreçlerinde yapılan aktivitelerden elde edilen metriklerin başarısı da bu iki özelliğin önemini göstermektedir.

Önerilen metriklerden, belirli türdeki aktivitelerin birleştirilmesinden oluşan, füzyon metrikler adı verilen geliştirici metriklerinin, diğerlerine oranla daha üstün geldiği görülmüştür. Ayrıca, bir aktivitenin miktarını göz ardı eden, sadece bir projede var olup olmadığı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ühendisliği problemlerine de uygulanabilir olduğu düşünülmektedir.