Makine öğrenmesi teknikleriyle yazılım uyum metriklerinin tahmini
Predicting software coheson metrics with machine learning techniques
Yazar: ELİF NUR HANER KIRĞIL
Danışman: DR. ÖĞR. ÜYESİ TÜLİN ERÇELEBİ AYYILDIZ
Başkent Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı / Bilgisayar Mühendisliği Bilim Dalı
Derece: Yüksek Lisans, 2022
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control
Dizin: Bakım = Maintenance ; Makine öğrenmesi = Machine learning ; Uyumsuzluk = Mismatch ; Yazılım kalitesi = Software quality

Özet:
Günümüzde yazılıma olan ihtiyaç arttıkça, oluşturulan yazılımların kalitesini ölçmek de gerekli hale gelmiştir. Yazılım kalitesini ölçmek için literatürde çeşitli metrikler bulunmaktadır. Bu metriklerin bazıları sınıf bazında ölçüm yapmaktadır. Sınıflar nesne yönelimli programlamanın temel birimleridir. Sınıflarda bulunan metotların ve özniteliklerin birbiri ile uyumunu ölçen uyum metriği yazılım kalitesine doğrudan etki etmektedir. Uyumun temel amacı her sınıfın tek bir amaca hizmet etmesi gerektiği kuralını sağlamaktır. Sınıflar gerçekleştirim aşamasında uyuma dikkat edilerek oluşturulduğunda, bakım onarım aşamasında her amaç için tek bir sınıfa bakılacağından zaman ve maliyet açısından fayda sağlanacaktır. Literatürde yazılımın uyumunu ölçen birçok metrik ve araç bulunmaktadır. Her metrik farklı yöntemlerle ve farklı konuları dikkate alarak uyumu hesaplamaktadır. Uyumu hesaplamak için her ne kadar araç kullanımı yaygın olsa da araç kullanmak zaman ve maliyet gerektiren bir durumdur. Ayrıca araçların deneme versiyonları ile istenilen tüm metriklere her durumda erişilemeyebilir. Bildiğimiz kadarıyla şu ana kadar, yazılım uyum metriklerini makine öğrenmesi teknikleri ile tahmin etmeye çalışan herhangi bir çalışma bulunmamaktadır. Bu çalışmada Lack of Cohesion in Methods (LCOM2), Tight Class Cohesion (TCC), Loose Class Cohesion (LCC) ve Low Level Design Class Cohesion (LSCC) uyum metrikleri Rastgele Orman (Random Forest), REPTree, K En Yakın Komşu (K Nearest Neighbor – KNN), Doğrusal Regresyon (Linear Regression), Çok Katmanlı Algılayıcı (Multilayer Perceptron – MLP) ve Destek Vektör Makinesi (Support Vector Machine – SVM) yöntemleri kullanılarak tahmin edilmeye çalışılmıştır. Bu sayede uyum metriği daha hızlı ve kolay bir şekilde elde edilebilmektedir. LCOM2 metriği 0 ve 1 arasında normalize edilmediği için LCOM2 metriğine ait veri kümesine normalizasyon işlemi ve aykırı/uç değer analizi yapılmıştır. Bu işlemlerden sonra elde edilen analiz sonuçlarının tamamı verilmiştir. Alınan sonuçlara göre en iyi performanslar, LCOM2 metriği için uç değer analizinden sonra 5,080 hata değeri, normalizasyon işleminden sonra 0,079 hata değeri KNN algoritması kullanılarak, TCC için 0,231 hata değeri KNN algoritması kullanılarak, LCC için 0,259 hata değeri REPTree algoritması kullanılarak ve LSCC için 0,149 hata değeri REPTree algoritması ile elde edilmiştir.

Abstract:
Today, as the need for software increases, it has become necessary to measure the quality of these software. There are various metrics in the literature to measure software quality. Some of these metrics measures on a class basis. Classes are the basic units of object oriented programming. The cohesion metrics, which measures the compatibility of the methods and attributes in the classes with each other, directly affects the software quality. The main purpose of cohesion is to provide the rule that every class should serve a single purpose. When classes are created by paying attenion to cohesion, a single class will be traced for each purpose during the maintenance phase, so it is profitable in terms of time and cost. There are many metrics and tools in the literature that measure cohesion. Each metric calculates cohesion with different methods and considering different issues. Although it is common to use tools to calculate the cohesion, using a tool requires time and cost . In addition, with the trial versions of the tools, all desired metrics may not be accessible in all cases. As far as we know, there is no study that tries to predict cohesion metrics with machine lerning techniques so far. In this study, Lack of Cohesion in Methods (LCOM2), Tight Class Cohesion (TCC), Loose Class Cohesion (LCC) and Low Level Design Class Cohesion (LSCC) metrics were tried to be estimated using Random Forest, REPTree, K Nearest Neighbor – KNN, Linear Regression, Multilayer Perceptron (MLP) and Support Vector Machine (SVM). In this way, the cohesion metric is obtained more quickly and easily. Since the LCOM2 metric was not normalized between 0 and 1, normalization and outlier analysis were performed on the dataset of the LCOM2 metric. All of the analysis results obtained after these processes. According to the results obtained, the best performances were obtained for the LCOM2 metric with an error value of 5.080 after outlier analysis, 0.079 error value after normalization using KNN algorithm, using the KNN algorithm with an error value 0.231 for TCC, using the REPTree algorithm with an error value 0.259 for LCC and using the REPTree algorithm with an error value 0.149 for LSCC.