Java kodları için otomatik kod yorum satırı üretme aracı geliştirilmesi
Development of automatic code comment generation tool for java codes
Yazar: ÖMÜR SÖZER
Danışman: DOÇ. DR. MUHAMMED MARUF ÖZTÜRK
Süleyman Demirel Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı
Derece: Yüksek Lisans, 2022
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control
Dizin: Java = Java ; Kod üretici = Code generator ; Metin madenciliği = Text mining

Özet:
Kod yorumları, yazılımın temel parçalarından biridir. İyi yazılmış kod yorumları programın kavranmasına yardımcı olmakta ve yazılım sürdürülebilirliğine katkı sağlamaktadır. Ayrıca, kod yorumlarından da test senaryoları türetildiği için yazılım bakımının güvenilirliği ile de ilgilidir. Yazılım projelerinin boyutu büyüdükçe, kod yorum satırlarının önemi de giderek artmaktadır. Birçok kod yorum satırı eksik, güncelliğini yitirmiş ve anlaşılmaz olabilmektedir. Bu durum, yazılım bakım sürecini kayda değer bir biçimde zorlaştırmaktadır. El ile kod yorum satırı yazılması, kod geliştiricilerinin büyük bir zamanını almakta ve çoğu zaman zahmetli olmaktadır. Otomatik kod yorum satırı üretme, yazılım geliştiricilerin kaynak kodunu daha iyi anlamalarına yardımcı olmaktadır ve aynı zamanda kod yorum satırını ürettiği için zamandan tasarruf sağlanmaktadır.Bu çalışmada, geliştiricilerin kaynak kodunu daha iyi anlamalarına, bakım iş yüklerini azaltmalarına yardımcı ve zaman tasarrufu sağlayan bir otomatik kod yorum üretme aracı geliştirilmiştir. Önerilen aracın geliştirilmesinde ağırlıklı olarak metin madenciliği yöntemleri ve String fonksiyonlarından faydalanılmıştır. Geliştirilen araç kullanıcının verdiği Java kodunu, yorum satırları ekleyerek tekrar kullanıcıya göndermektedir. Üretilen kod yorum satırları veritabanına kaydedilerek, sonraki isteklerde aynı kod parçasının yorum satırı oluşturması istendiğinde hızlı cevap üretilmektedir. Yazılımın seçeneklerinde Excel ve Text dosyasına yazma desteği bulunmaktadır. Çalışmanın özgünlüğü şu şekilde özetlenebilir: 
1) Geliştirilen araç, java programlama dilinde yazılmış kullanıcı dostu bir masaüstü uygulamasıdır.
2) Literatürdeki araçlar ile karşılaştırıldığında kullanımı kolaydır.
3) Yorum üretme ve arayüz kısımları Türkçe dilini desteklemektedir.
4) Alternatiflerine göre hızlı çalışmakta ve doğruluk oranı yüksek kod yorum satırı üretmektedir.

Abstract:
Code comments are one of the main components of software development. Well-designed code comments help comprehend application architecture and contribute to the sustainability of software systems. Further, since test cases are derived from code comments, they are also related to the reliability of software maintenance. As the software projects grow in size, code comments become increasingly important. If they have incomplete, out-of-date, and poor sentences, it is getting harder to pursue software maintenance. Writing code comments manually is an effort-intensive process and takes much time compared to the other phases of software development. To remedy this, automatic code comment generation tools are developed to save time.In this study, an automatic code comment generation tool is devised to help practitioners to understand source code. In this way, the burden of software maintenance could be alleviated along with a significant time-saving property. Text mining and String functions are leveraged to design the proposed tool that takes a Java code given by the user and then processes it to return a modified code including comment blocks created automatically. The tool creates a fast response in the case of a request which is saved to a local database in preceding requests. There are two options for supported file formats including Excel and Text. The originality of the study can be summarized as follows:
1) The developed tool has a user-friendly interface developed as a Java desktop application.
2) It is easy to use compared to the alternatives.
3) The tool is the first to support Turkish and English languages together.
4) It runs relatively faster than its counterparts and yields code comments with high accuracy.