Derin öğrenme yaklaşmaları ile yazılım proje gereksinimlerinin sınıflandırılması ve başarım sonuçlarının değerlendirilmesi /
Yazar: TUĞBA ÇELİKTEN
Danışman: DR. ÖĞR. ÜYESİ FATİH YÜCALAR
Manisa Celal Bayar Üniversitesi / Fen Bilimleri Enstitüsü / Yazılım Mühendisliği Ana Bilim Dalı / Yazılım Bilim Dalı
Derece: Yüksek Lisans, 2023
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control ; Mühendislik Bilimleri = Engineering Sciences
Dizin: Doğal dil işleme = Natural language processing

Özet:
Günümüzde hızla gelişen teknoloji, yaşamımızın ayrılmaz bir parçası haline gelmiştir. Bu durum yazılım sistemlerine duyulan ihtiyacı artırmaktadır. Birçok alanda kullanılan yazılım sistemlerinin geliştirilmesinde belirli aşamalar vardır. En önemli aşamalardan biri gereksinim analizi aşamasıdır. Bu aşamada, sistemi talep eden paydaşlar gereksinimlerini belirtir. Gereksinim mühendisleri veya proje analistleri gereksinimleri amaç, işlev ve özelliklerine göre temelde işlevsel ve işlevsel olmayan gereksinimler olarak sınıflandırmaktadır. Gereksinimlerin doğru bir şekilde sınıflandırılıp, önceliklendirilmesi, yazılım yaşam döngüsünün diğer aşamalarının sorunsuz ilerlemesini sağlar. Gereksinimlerin doğal dil ile yazılıyor olması, talep sahibinin ihtiyaçlarını tam olarak aktaramaması, analiz yapacak kişilerin ilgili alana yeterince hâkim olmamasıya dagereksinimleri farklı şekilde yorumlamaları gereksinimlerin yanlış sınıflandırılmasına neden olmaktadır. Böyle bir durum yazılım geliştirme sürecine hatalı başlanılmasına yol açmaktadır. Yazılım gereksinim analizinin otomatik olarak yürütülmesi için doğal dil işleme yöntemleri kullanılarak yazılım gereksinimleri sınıflandırılabilir. Bu amaç doğrultusunda üniversite öğrencilerinin geliştirdiği yazılım projeleri içerisinde yer alan gereksinimler toplanarak, bir Türkçe veri seti oluşturulmuştur. Toplanan gereksinimlerin 3000'ini işlevsel, 1600'ü ise işlevsel olmayan gereksinim olmak üzere manuel olarak etiketlenmiştir. %80'ieğitim, %20'si test verisi olarak ayrılan veri seti sırasıyla makine öğrenmesi algoritmaları, derin öğrenme algoritmaları ve transformer modelleri ile eğitilerek performansları test edilmiştir. Makine öğrenimi algoritmalarından Naive Bayes Multinomial, derin öğrenme algoritmalarından CNN ve transformer modellerden de BERTürk'ün en iyi performans sonuçlarını verdiği gözlemlenmiştir. Ele alınan tüm algoritmalar içinde %95 doğruluk değeri ile BERTürk en başarılı algoritma olduğu tespit edilmiştir. Elde edilen sonuçlar yazılım gereksinim sınıflandırmada geliştirilen modellerin kullanılabilirliğini açıklamaktadır.

Abstract:
Today, rapidly developing technology has become an integral part of our lives. This situation increases the need for software systems. There are certain stages in the development of software systems used in many fields. One of the most important stages is the requirements analysis stage. At this stage, stakeholders who request the system specify their requirements. Requirements engineers or project analysts basically classify requirements as functional and non-functional requirements according to their purpose, function, and characteristics. Accurately classifying and prioritizing requirements ensures that other phases of the software lifecycle run smoothly. However, the requirements may tend to be misclassified, if the stakeholders requesting the system cannot convey their needs clearly, the analysts do not have enough knowledge of the relevant field, or they interpret the requirements in different ways. Such a situation causes the software development process to be started incorrectly. Software requirements can be classified using natural language processing methods for the classification of software requirements automatically. For this purpose, a Turkish data set was created by collecting the requirements included in the software projects developed by university students. The collected requirements included 3000 manually labelled as functional and 1600 as non-functional requirements. The data set, of which 80% was training and 20% was test data, was trained with machine learning algorithms, deep learning algorithms, and transformer models, respectively, and their performances were tested. It was observed that Naive Bayes Multinomial from machine learning algorithms, CNN from deep learning algorithms, and BERTürk from transformer models gave the best performance results. It was found that BERTürk was the most successful algorithm with 95% accuracy among all the algorithms discussed. The obtained results explain the usability of the models developed in software requirement classification.