Klasifikasi persyaratan perangkat lunak ke dalam Functional Requirements (FR) dan Non-Functional Requirements (NFR) merupakan tantangan penting dalam rekayasa perangkat lunak. Functional Requirements berkaitan dengan fitur dan fungsionalitas yang harus disediakan oleh sistem, sementara Non-Functional Requirements mencakup aspek kualitas seperti kinerja, keamanan, dan keandalan. Dengan meningkatnya kompleksitas sistem perangkat lunak, penggunaan algoritma Machine Learning (ML) menjadi solusi efektif untuk mengotomatisasi proses klasifikasi ini.
Pentingnya Klasifikasi FR dan NFR dalam Rekayasa Perangkat Lunak
Klasifikasi persyaratan yang akurat sangat penting untuk menghindari kesalahpahaman dalam pengembangan perangkat lunak. Kesalahan dalam mengidentifikasi FR dan NFR dapat menyebabkan biaya pengembangan yang lebih tinggi dan sistem yang tidak memenuhi ekspektasi pengguna. Dengan menerapkan algoritma ML, proses identifikasi dapat dilakukan dengan lebih cepat, konsisten, dan akurat dibandingkan metode manual berbasis aturan.
Algoritma ML yang Cocok untuk Klasifikasi FR dan NFR
Berbagai algoritma ML telah diuji untuk tugas klasifikasi teks, termasuk dalam domain rekayasa perangkat lunak. Berikut adalah beberapa algoritma utama yang sering digunakan:
Support Vector Machine (SVM)
SVM dikenal sangat baik dalam klasifikasi teks karena kemampuannya dalam menemukan hyperplane optimal untuk memisahkan kelas.
Dalam konteks FR dan NFR, SVM mampu mengklasifikasikan dokumen persyaratan dengan akurasi yang tinggi, terutama jika fitur yang digunakan adalah berbasis vektor kata seperti TF-IDF atau word embeddings.
Kelemahannya adalah kepekaan terhadap jumlah data pelatihan dan kesulitan dalam menangani sub-kategori NFR yang lebih kompleks.
Random Forest (RF)
Algoritma ini bekerja dengan membuat banyak pohon keputusan dan menggabungkan hasilnya untuk meningkatkan akurasi.
RF cukup efektif untuk klasifikasi FR dan NFR karena kemampuannya menangani fitur yang berbeda dan mengurangi overfitting.
Namun, RF kurang efisien dibandingkan model berbasis deep learning dalam memahami konteks semantik dalam persyaratan perangkat lunak.
Naive Bayes (NB)