Content area
Bu tez, yazılım geliştirme süreçlerinde yapay zeka (YZ) temelli kaynak kod analizi yöntemlerinin kullanımını ve bu yöntemlerin yazılım kalitesini iyileştirme, optimizasyon ve hata tespitine yönelik etkilerini incelemektedir. Araştırmada, iki farklı yapay zeka aracı olan ChatGPT (GPT-4 modeli) ve Google'ın Gemini modeli kullanılarak GitHub platformundan toplanan JavaScript projeleri ve yapay zekaya yazdırılan kodlar analiz edilmiştir. Çalışma kapsamında üç ana problem ele alınmıştır: Kaynak Kodun İnsan veya Yapay Zeka Tarafından Yazıldığının Tespiti, kaynak koddaki hataların tespit edilmesi ve kaynak kodun optimizasyona ihtiyacı olup olmadığının belirlenmesi.
Bu problemleri çözmek amacıyla, kaynak kodların hata durumu ve çeşitli yazılım metrikleri (Cohesion Metrics, Cyclomatic Complexity, Maintainability Index gibi) hesaplanmış ve bu veriler yapay zeka öğrenimi için kullanılmıştır. Ayrıca, veri toplama ve analiz süreçleri detaylı bir şekilde ele alınmış, sınıflandırma algoritmaları (Logistic Regression, Support Vector Machines, Random Forest) ve derin öğrenme modelleri (Convolutional Neural Networks, Gated Recurrent Unit, Long Short-Term Memory) kullanılarak elde edilen sonuçlar karşılaştırılmıştır. Deneysel sonuçlar bölümünde, bu problemlere yönelik analizler ve bu analizlerin sonuçları tablo ve grafiklerle sunulmuş, elde edilen bulguların detaylı bir tartışması yapılmıştır.
Elde edilen bulgular, yapay zeka tabanlı kaynak kod analizinin yazılım projelerinin genel başarısını artırmada önemli bir rol oynayabileceğini göstermektedir. Ayrıca, ChatGPT ve Gemini modellerinin performansları karşılaştırılmış ve her iki modelin de belirli alanlarda üstünlükleri olduğu belirlenmiştir. Sonuç olarak, yapay zeka tabanlı kaynak kod analiz araçlarının yazılım geliştirme süreçlerine entegrasyonu, hataların daha hızlı tespit edilmesi, kod kalitesinin artırılması ve yazılım projelerinin genel başarısının sağlanması açısından büyük bir potansiyele sahiptir. Bu tez, bu potansiyeli ortaya koymayı ve bu alanda gelecekte yapılacak çalışmalara katkıda bulunmayı amaçlamaktadır.