Evaluasi Spesifikasi Kebutuhan Perangkat Lunak Berdasarkan Software Quality Model Cahya Bagus Sanjaya Abstraksi Spesifikasi Kebutuhan Perangkat Lunak (SKPL) adalah proses memformailisasikan sekumpulan kebutuhan dari perangkat lunak sehingga SKPL yang baik merupakan faktor yang sangat penting untuk menunjang pembuatan perangkat lunak dengan fungsionalitas tinggi. Oleh karena itu pengukuran dan evaluasi SKPL sangat dibutuhkan agar perangkat lunak sesuai dengan kebutuhan. Dalam paper ini penulis menggunakan attribute-attribute yang ada pada Software quality Model untuk dijadikan dasar pengklasifikasian SKPL dengan menggunakan metode naïve bayes dan TF-IDF untuk pembobotan. Hasil dari penelitian ini adalah poin-poin yang telah terpenuhi ataupun belum terpenuhi dalam dokumen SKPL. Sehingga memudahkan seorang Requirement Engineering untuk melakukan perubahan pada SKPL yang telah dibuat. Kata kunci: SKPL, Software Quality Model, naïve Bayes, TF-IDF. 1. Latar Belakang. Spesifikasi Kebutuhan Perangkat Lunak (SKPL) merupakan salah satu aktivitas yang dilakukan ketika merekayasa kebutuhan. Spesifikasi kebutuhan merupakan suatu proses memformalisasikan sekumpulan kebutuhan, baik fungsional maupun nonfungsional, dari suatu system yang hendak dibangun ke dalam suatu dokumen [1]. Suatu SKPL yang baik merupakan faktor yang sangat penting untuk menunjang proses pembuatan perangkat lunak dengan fungsionalitas yang tinggi dengan pemeliharaan yang rendah. Untuk itu penting adanya evaluasi SKPL agar perangkat lunak yang dibangun sesuai dengan kebutuhan. Tujuan dari pembuat perangkat lunak adalah untuk menciptakan perangkat lunak yang berkualitas. Tujuan tersebut dapat dicapai dengan melakukan penilaian terhadap kualitas perangkat lunak. Penilaian kualitas perangkat lunak melibatkan banyak komponen. Komponen-komponen yang dilibatkan dalam penilaian sangat bergantung pada model yang digunakan dalam
melakukan penilaian. Software Quality Model merupakan model yang digunakan untuk menentukan komponen yang terlibat dalam penilaian [3]. Penelitian sebelumnya telah mencoba untuk melakukan evaluasi SKPL dengan mendeteksi dan menunjukkan potensi kekurangan sintaksis dan semantik yang dapat menyebabkan masalah ketika dokumen persyaratan bahasa alami berubah dalam dokumen yang lebih formal [5]. Berdasarkan penelitian tersebut pada paper ini penulis mengajukan metode untuk melakukan evaluasi SKPL berdasarkan Software Quality Model sehingga seorang requirement engineering dapat mengetahui sejauh mana poin-poin dalam SKPL terpenuhi atau tidak berdasarkan Software Quality Model yang dipilih untuk membangun perangkat lunak. Berdasarkan tujuan dari penyusunan paper ini maka hipotesa awal dari penulis adalah “evaluasi Spesifikasi Kebutuhan Perangkat Lunak (SKPL) dapat dilakukan berdasarkan Software Quality Model dengan menggunakan metode naïve bayes classifier”.
Dalam paper ini penulis membagi menjadi beberapa bagian. Bagian 2 menjelaskan tentang penelitian sebelumnya untuk mendukung penelitian ini. Bagian 3 berisi Metode yang diajukan untuk melakukan evaluasi SKPL berdasarkan Software Quality Model. Bagian 4 adalah experiment yang dilakukan dengan menggunakan metode yang telah diajukan. Dan bagian terahir berisi kesimpulan dari seluruh penelitian yang telah dilakukan. 2. Penelitian Sebelumnya. Penelitian sebelumnya Roxana Saavedra, Luciana Ballejos dan Mariel Ale [2] melakukan penelitian untuk mengevaluasi Quality attribute dari SKPL. Penelitian ini mengumpulkan beberapa quality attribute dari beberapa autor yang kemudian dikelompokkan dan dipisah-pisah berdasarkan induk attribute beserta turunannya. Dari penelitian ini disimpulkan bahwa dari beberapa author juga mengajukan untuk mengevaluasi Quality attribute tapi hanya konseptual dan sulit untuk melakukan otomatisasi karena masih membutuhkan cukup banyak campur tangan manusia. Wayan Gede Suka Parwita dan Luh Arida Ayu Rahning Putri [3] dalam papernya menjabarkan berbagai jenis software quality model yang ada beserta komponen-komponen yang digunakan dalam melakukan penilaian dari masing-masing model. Dari penelitian ini didapatkan hasil bahwa masing-masing model mempunyai kelebihan dan kekurangan masing-masing. Dr. Deepshikha Jamwal [4] dalam penelitiannya juga melakukan perbandingan antara beberapa software quality model yang cocok untuk organisasi adapun model-model yang digunakan dalam penelitiannya adalah: McCall’s Quality Model, Boehm’s Quality Model, Dromey's Quality Model, FURPS Quality Model Dan ISO 9126 Quality Model. Dan dari penelitian ini didapatkan hasil bahwa: FURPS Quality Model dibangun dan digunakan oleh IBM jadi tujuan utama pembuatan model ini adalah untuk kepentingan perusahaan itu sendiri. ISO 9126
Quality Model adalah model yang paling banyak digunakan. F. Fabbrini, M. Fusani, S. Gnesi, G. Lami [5] dalam penelitiannya membuat sebuah tools untuk mengevaluasi kulitas SKPL dari bahasa alamiah (Natural Language). Kualitas Model yang diusulkan telah didefinisikan dengan tujuan untuk mendeteksi dan menunjukkan potensi kekurangan sintaksis dan semantik yang dapat menyebabkan masalah ketika dokumen persyaratan bahasa alami berubah dalam dokumen yang lebih formal. Penelitian ini didasarkan pada model kualitas yang mengukur kemampuan untuk dapat diuji (testability), kelengkapan (completeness), kemampuan utuk dapat dimengerti (understandability) dan konsistensi (consistency) dari SKPL yang ditulis dalam bahasa alamiah. Repository yang digunakan dalam penelitian ini masih bersifat statis, hanya bergantung pada pengetahuan baru yang dimasukkan oleh para ahli [1]. 3. Metodologi Metode yang diajukan dalam paper ini utuk menilai SKPL secara garis besar menggunakan metode TFIDF untuk pembobotan dan naïve bayes untuk mengklasifikasikan SKPL berdasarkan Software Quality Model yang telah dipilih. Metode yang digunakan seperti terlihat pada gambar 1.
Gambar 1. Metode klasifikasi SKPL Dalam metode ini ada 7 bagian untuk mengevaluasi SKPL berdasarkan Software Quality Model, penjelasan untuk masing-masing tahap adalah sebagai berikut.
3.1. DATASET Dataset terdiri dari dua bagian, yang pertama adalah dataset untuk training dan dataset untuk uji penelitian. dataset yang dimaksud adalah dokumen spesifikasi kebutuahan perangkat lunak dalam bentuk neural language data ini juga bisa diturunkan dari use case description. Dataset yang digunakan untuk training merupakan dataset yang sudah memiliki label spesifikasi sesuai dengan kalsifikasi Software Quality Model. Pelabelan dapat dilakukan oleh seorang expert/ahli dalam hal ini adalah seorang software architect. 3.2. Tagging tagging merupakan proses pelabelan tiap kata dalam kalimat. pada tahap ini dilakukan penyaringan elemen kalimat yang tidak diperlukan seperti halnya kata sambung dan lainnya. Hasil dari proses tagging merupakan list kata efektif dari kalimat. 3.3. Steamming Proses stemming merupakan proses untuk mendapatkan akar kata asli dari kata yang berimbuhan. Dalam tahap ini kata-kata yang berasal dari proses tagging akan dicari akar katanya. Hasil dari proses steaming merupakan list akar kata yang efektif. 3.4. Keyword Extraction Keyword Extraction merupakan proses penghitungan frekuensi kemunculan kata dalam setiap kelas klaster. Dalam tahap ini kata yang didapat pada proses steaming akan dihitung frekuensi kemunculannya berdasarkan kelas yang ada pada Software Quality Model. Hasil dari proses ini adalah daftar kata beserta frekuensi kemunculannya dalam setiap kelas kluster. 3.5. Weighting TF-IDF Proses TF-IDF adalah proses pemberian bobot pada setiap kata yang diperoleh dari proses Keyword Extraction berdasarkan rumus TF-IDF. Proses ini berfungsi agar setiap kata pada proses
klasifikasi yang menggunakan metode naïve bayes mempunyai bobot sehingga memperbesar akurasi untuk proses klasifikasi. Adapun rumus dari pembobotan ini adalah:
N wij tfij . log2 df j
3.6. Classification Proses klasifikasi dalam paper ini menggunakan metode naïve bayes. Teorema Bayes adalah teorema yang digunakan dalam statistika untuk menghitung peluang untuk suatu hipotesis, Bayes Optimal Classifier menghitung peluang dari suatu kelas dari masing-masing kelompok atribut yang ada, dan menentukan kelas mana yang paling optimal [6]. Pengklasifikasian adalah sebuah fungsi yang menugaskan data tertentu kedalam sebuah kelas. Dari sudut pandang peluang, berdasarkan aturan bayes rumus untuk klasifikasi adalah sebagai berikut.
Untuk menentukan pilihan kelas, digunakan peluang maksimal dari seluruh data dengan fungsi yang terdapat pada rumus berikut:
Pada tahap ini daftar kata yang diperoleh dari proses pembobotan akan dimasukkan ke dalam kelas - kelas sesuai dengan ketentuan Software Quality Model. Hasil dari proses klasifikasi ini merupakan nilai tiap point pada requirement yang telah diproses dan selanjutnya hasil tersebut akan dihitung dan digunakan pada proses FeedBack. 3.7. FeedBack Hasil akhir yang didapatkan adalah feedback kepada pengguna (dalam hal ini adalah seorang requirement enginer) berupa
poin-poin yang belum terpenuhi dalam dokumen spesifikasi perangkat lunak. 4. Diskusi dan Pembahasan Untuk melakukkan pengujian pertama setiap atribut pada masing-masing Software Quality Model dikumpulkan kemudian dibandingkan sesuai dengan komponen-komponen penilaian dari masingmasing model[12]. Table perbandingan yang akan dipakai dalam proses ini adalah sebagai berikut:
Kompo nen
Mc Bo Ca eh ll m
FU RP S/ FU RP S+
Dr om ey
B B N
Ka zm an
S I ta S r O
Correct ness V V Efficien cy V V V V V V V V Flexibil ity V V V Functio nality V V V V V V Integrit y V Interpro bability V V V V Maintai nability V V V V V V V Portabil ity V V V V V V Reliabil ity V V V V V V V V Reusabi lity V V V Testabil ity V V V V Underst andabili ty V V Table 1. perbandingan Software Quality Model
Adapun tahapan-tahapan dalam pengujian ini sesuai dengan metodologi yang diajukan, berikut adalah contoh penerapannya: 1. Dataset Dataset dibagi menjadi dua bagian, bagian pertama berisi data training yang telah mempunyai label spesifikasi sesuai dengan atribut pada Software Quality Model. Kompon en Correct ness Efficienc y Flexibilit y Functio nality Integrity
daftar kata
Interpro bability Maintai nability Portabili ty Reliabili ty Reusabil ity Testabili ty Underst andabili ty
hubung, interaksi, sistem,
lengkap, akurat, konsisten, tetap, tersedia, murah, cepat, kecil, ubah, waktu, tes, desktop, web, aman, kunci, akses, legal,
ubah, koreksi, baik, adaptasi, salah, pelihara, kinerja, pindah, software, hardware, kinerja, andal, salah, akurat, benar, waktu, guna, modul, tes, valid, uji, harap, gagal, hasil, tes, paham, cocok, kondisi, konsep,
Table 2. Data Training Dataset yang kedua merupakan data uji yang berisi requirement perangkat lunak yang berbentuk Neural Language.
No 1 2 3 4 5 6 7
8 9 10
Requirements diubah dan diperbaiki dengan mudah diakses dari web maupun desktop sistem berjalan dengan akurat sesuai dengan kebutuhan keamanan data terjamin dengan adanya kunci pengaman pemeliharaan secara teratur dua minggu sekali user dapat menggunakan dan memahami system dengan mudah system berjalan stabil dengan adanya modul yang dapat digunakan secara bersamaan mengantisipasi akses ilegal oleh user yang tidak mempunyai akses tidak memerlukan kebutuhan hardware yang begitu tinggi tidak mentoleransi kesalahan
Table 3. Data Uji 2. Tagging Dari dataset uji kemudian dilakukan proses tagging. No 1 2 3 4 5 6 7 8
Requirement diubah diperbaiki mudah diakses web desktop sistem berjalan akurat kebutuhan keamanan terjamin kunci pengaman pemeliharaan teratur menggunakan memahami mudah stabil modul digunakan bersamaan akses ilegal memerlukan kebutuhan hardware 9 tinggi 10 mentoleransi kesalahan
Tabel 4 Hasil Proses Tagging 3. Stemming Proses stemming diambil dari data uji yang telah melalui proses tagging. No 1 2 3 4
Requirement ubah,baik,mudah, akses,web,desktop, sistem,jalan,akurat,butuh, aman,terjamin,kunci,
5 6 7 8 9 10
pelihara,teratur, guna,paham,mudah, akses,legal, perlu,butuh,hardware,tinggi, stabil,modul,guna,bersama, toleransi,salah,
Tabel 5 Hasil Proses Stemming 4. Keyword Extraction Dari Dataset training dilakukan proses Keyword Extraction. Berikut adalah beberapa bagian setelah melalui proses Keyword extraction. TFI DF
Cor rec tne ss
In te gr i ty
Int erp ro bab ility
Mai ntai n abil ity
R el i a bi lit y 0
Un der sta nd abil ity
1
P o rt a bi lit y 0
ada pta si Aks es aku rat Am an An dal Bai k ben ar Cep at Coc ok
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
Tabel 6 Hasil Proses Keyword Extraction 5. TF-IDF Dari proses keyword extraction dihitung bobot pada masing-masing kata dengan TF-IDF. Berikut adalah beberapa bagian hasil dari proses pembobotan dengan menggunakan TF-IDF.
TFIDF
Correc tness
Integri ty
Interpro bability
Maintain ability
adaptasi Akses akurat Aman Andal Baik benar Cepat Cocok
0 0 0.8129 0 0 0 0 0 0
0 1.1139 0 1.1139 0 0 0 0 0
0 0 0 0 0 0 0 0 0
1.1139 0 0 0 0 1.1139 0 0 0
Port ability
Reli ability
Understand ability
0 0 0 0 0 0.8129 0 0 0 1.1139 0 0 0 1.1139 0 0 0 0
0 0 0 0 0 0 0 0 1.1139
Tabel 7. Hasil Proses Pembobotan dengan TF-IDF 6. Classification Klasifikasi dilakukan untuk data uji untuk menentukan kelas berdasarkan software quality model. Berikut beberapa bagian dari hasil klasifikasi. Kata ubah baik mudah akses web desktop sistem jalan akurat butuh aman terjamin kunci pelihara teratur guna paham
Flexi bility 0.4064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Function ality 0 0 0 0 1.1139 1.1139 0 0 0 0 0 0 0 0 0 0 0
Integri ty 0 0 0 1.1139 0 0 0 0 0 0 1.1139 0 1.1139 0 0 0 0
Interprob Maintain Reli Reus Underst ability ability ability ability andability 0 0.4064 0 0 0 0 1.1139 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.1139 0 0 0 0 0 0 0 0 0 0 0 0.4064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.1139 0 0 0 0 0 0 0 0 0 0 0 1.1139 0 0 0 0 0 1.1139
Tabel 8. Hasil Proses Klasifikasi dengan naïve bayes 7. FeedBack Komponen Correctness Efficiency Flexibility Functionality Integrity
Nilai 0.4065 0 0.4065 2.2279 5.5697
Interprobability Maintainability Portability Reliability Reusability Testability Understandability
1.1139 3.0408 1.1139 0.8129 3.3418 0 1.1139
Tabel 9. FeedBack Dari FeedBack tersebut dapat dilihat bahwa efficiency dan testability belum terpenuhi, sedangkan dalam berbagai macam Software Quality Model yang ada, efficiency harus terpenuhi. Maka seorang Requirement Engineering harus mengevaluasi SKPL agar memenuhi kebutuhan akan efisiensi perangkat lunak yang sedang dibangun. Dan jika menggunakan model McCall, Boehm, Kazman atau Star maka komponen testability juga harus terpenuhi. 5. Kesimpulan Evaluasi Spesifikasi Perangkat Lunak (SKPL) dapat dilakukan dengan menggunkan metode naïve bayes dengan cara mengklasifikasikan software requirement berdasarkan atribut-atribut yang ada dalam Software Quality Model. Penelitian ini masih membutuh seorang expert untuk membuat data training sehingga hasil yang didapat tergantung pada seberapa baik data training yang ada. oleh karena itu, kedepannya akan dilakukan penelitian ulang agar data training dapat dioptimasi agar mendapatkan hasil yang lebih baik. Refrensi [1]. Siahaan, Daniel. Analisa Kebutuhan Dalam Rekayasa Perangkat Lunak. Penerbit Andi. Yogyakarta. 2012. [2]. Saavedra R, B Luciana, A Mariel. Quality Properties Evaluation for Software Requirements Specifications: An Exploratory Analysis. [3]. Parwita, Wayan G.S., Putri, Luh A.A.R. Komponen Penilaian Kualitas Perangkat Lunak Berdasarkan Software Quality Models. Seminar Nasional Teknologi Informasi & Komunikasi Terapan. 2012. [4]. Jamwal, Deepshikha. Analysis of Software Quality Models for Organizations. International Journal of Latest Trends in Computing. 2010. [5]. F. Fabbrini, M. Fusani, S. Gnesi, G. Lami. An Automatic Quality Evaluation for
Natural Language Requirements. IEEE/ACM International Conference on Automated Software Engineering. L’Aqualia, Italia. 2008. [6]. Ammar M. Keoptimalan Naïve Bayes Dalam Klasifikasi. Program Ilmu Komputer FPMIPA Universitas Pendidikan Indonesia. [7]. Pisceldo, Femphy. Adriani, Mirna. Manurung, Ruli. Probabilistic Part Of Speech Tagging for Bahasa Indonesia. 2009.