evaluasi kesalahan perangkat lunak

Upload: muhammad-rizka

Post on 13-Jul-2015

259 views

Category:

Documents


0 download

TRANSCRIPT

Evaluasi Kesalahan Perangkat Lunakkelas A, kelompok 3 : DEVIE ROSA A. RATNA NUR TIARA SHANTY ALI KHOLIMI KUN NURSYAIFUL MUHAMMAD RIZKA 5111 201 004 5111 201 011 5111 201 018 5111 201 032 5111 201 703

Overview1. Pendahuluan 2. Klasifikasi Kesalahan pada Perangkat Lunak 3. Deteksi dan Koreksi Kesalahan 4. Prediksi Kesalahan pada Perangkat Lunak 5. Kesimpulan dan Saran

Pendahuluan Era fungsionalitas Era penjadwalan Era kualitas

Pendahuluan Tingkat kualitas berbanding terbalik dengan tingkat kecacatan atau kesalahan produk Pada proses pengembangan perangkat lunak yang besar dan dengan kompleksitas yang tinggi, jumlah kesalahan pada perangkat lunak meningkat secara eksponensial

Apa Itu Software Defect? Sebuah software defect adalah kekurangan pada sebuah produk perangkat lunak yang menyebabkan perangkat lunak bekerja di luar harapan. Dari sudut pandang pengguna perangkat lunak, kecacatan adalah segala sesuatu yang menyebabkan perangkat lunak tidak menemui harapan mereka. Software defect dapat disebabkan hal-hal seperti : cacat pada dokumentasi, pada kode program, pada desain, dan lain sebagainya.

Mengapa Perlu Mengukur Software Defect?1. Sistem tidak melaporkan adanya kesalahan. Sistem direlease 6 bulan yang lalu. Sudah waktunya bergembirakah? 2. Pimpinan anda ingin agar anda sudah menemukan dan memperbaiki 99% bug. Bagaimana respon anda?

Contoh Permasalahan Pada Kecacatan Perangkat Lunak

Contoh Permasalahan Pada Kecacatan Perangkat Lunak

Mengapa Software Defect Muncul?

Defect Insertion / Removal Model

Klasifikasi KesalahanBerdasarkan FaseFase Pengembangan

Orthogonal Defect

When-Who-How

Orthogonal Defect Classification Sebuah skema untuk mengklasifikasikan kesalahankesalahan yang ditemukan mulai dari fase pengembangan sampai dengan fase penerimaan perangkat lunak oleh pelanggan dan mulai digunakannya (Buglione and Abran, 2006). Dua parameter untuk mengklasifikasikan kesalahan, yaitu defect type dan defect trigger (Chillarege,1992).

When-Who-How When Waktu pengembangan perangkat lunak dibagi atas fasefase dan mengevaluasi distribusi kesalahan di setiap fase Mengacu pada milestones yang menggambarkan dengan jelas waktu produksi dengan jelas. Who Menggambarkan setiap tim yang melakukan tugas kendali kualitas How Menganalisa efektivitas proses identifikasi kesalahan

Deteksi dan Koreksi Kesalahan Deteksi dan Koreksi adalah dua hal yang tidak dapat terpisah dalam menangani software defect. Ketika kesalahan perangkat lunak telah terdeteksi, maka proses koreksi kesalahan tidak dapat diabaikan. Untuk itu diperlukan model yang dapat mendeteksi dan mengkoreksi kesalahan perangkat lunak.

Isu Deteksi dan Koreksi Kesalahan(Kessentini,dkk,2011) Potensi kesalahan bergantung pada perbedaan dalam mendeteksi gejala dan kondisi dalam keadaan nyata. Mendeteksi banyak kemunculan kecacatan tidak selalu dapat diandalkan. Batasan-batasannya adalah tidak bisa menemukan sebuah kelas yang dienkapsulasi oleh banyak kelas-kelas lain yang menyebabkan kelas yang dienkapsulasi tersebut mempunyai nilai dominan terhadap total nilai. Kualitas kode dapat ditingkatkan tanpa harus memperbaiki kesalahan dalam desain.

Peta Penelitian : 2006Young H. Chun,dkk Metode : Statistik yang dikenal dengan capture-recapture model. Konsep dasar dari model capture - recapture adalah: Mengidentifikasi kesalahan Pemeriksaan kesalahan Pengukuran kesalahan yang terdeteksi Memperkirakan jumlah kesalahan yang tidak terdeteksi sebagai model pemrograman dengan perhitungan dalam model riset operasi. Pencatatan dalam dokumen desain perangkat lunak Hasil : Tidak dapat menunjukkan keakuratan hasil estimasi kesalahan dikarenakan tidak adanya model traditional capturerecapture (data histori) untuk dibandingan besar errornya.

Peta Penelitian : 2007Jung-Hua Lo,dkk Menggunakan Model MSE (Mean of Square Errors) MSE = untuk mendeteksi kesalahan dan kemampuan debugging (pengujian). MSE = bagian dari model pengukuran yang menggambarkan proses deteksi kesalahan dengan bergantung pada waktu deteksi kesalahan, yang disebut NHPP (Non Homogeneous Poisson Process). Konsep Dasar dari Model MSE dalam NHPP: Mendeteksi kesalahan, dalam paper ini mengadopsi pada fungsi bellshaped dalam faktor efek penundaan. Masing-masing kesalahan atau sisa dikuadratkan dengan model MLE (Maximum Likelihood Estimation) dan LSE(Least Squares Estimation) Estimasi Kuadrat Terkecil. Menghitung jumlah kumulatif kesalahan awal yang terdeteksi selama proses pengujian dalam memprediksi kegagalan dengan baik. Hasil : Model MSE yang minimum merupakan model yang memiliki kinerja lebih baik dalam memprediksi kesalahan.

Peta Penelitian : 2008Miao Jiang,dkk Metode : Jaringan Saraf Tiruan. Mengimplementasikan tool pembuat keputusan yang mampu memodelkan relasi antara input dan output Hasil : dapat mendeteksi kesalahan dalam perangkat lunak menjadi lebih mudah, tingkat akurasi = 95%

Peta Penelitian : 2009R. Selvarani,dkk Metode : CK metric dan defect-proneness index. CK metric merupakan sistem pengukuran yang digunakan untuk mendeteksi kesalahan dan mengevaluasi faktor kualitas perangkat lunak, seperti reusability, maintainability, defect proneness dan complexity yang berbasis pada orientasi objek. Defect proneness index adalah model estimasi yang memprediksi rawan kecacatan dengan indeks kelas yang didapat dari CK metric meliputi DIT (Depth of inheritance), RFC (Response For a Class) dan WMC (Wieghted Method per Class). WMC : Jumlah kompleksitas metode dalam kelas. Dan jika memiliki nilai yang tinggi menunjukkan reusability dan maitainability menurun . RFC : Indikator pengukuran kompleksitas class dengan mempertimbangkan jumlah metode. DIT : Kedalaman hirarki warisan dimana tingginya reusability akan meningkatkan kompleksitas

Fungsi estimasi untuk tiga metrik kompleksitas DP adalah DIT DP adalah RFC DP adalah WMC

:

Hasil : Tiga parameter tersebut merupakan parameter non linier dalam pengukuran kompleksitas perangkat lunak sehingga dinilai tidak dinamis

Diperlukan model yang dapat mengukur kualitasperangkat lunak secara dinamis dengan menggunakan parameter dalam metric desain yaitu Viz Metric (paramaternya : LCOM, CBO dan NOC).

Peta Penelitian : 2010Ning Li,dkk Metode :

Peta Penelitian : 2011Marouane Kessentini,dkk membahas pendekatan otomatis untuk mendeteksi dan mengkoreksi kesalahan dg Algoritma Genetika dalam berbagai tipe kesalahan desain source code. Aturan-aturannya didefinisikan sebagai kombinasi dari metrik dan/atau thresholds yang lebih baik. Hasil : 80 % dapat mendeteksi kesalahan. Hasil pendeteksian, dapat digunakan untuk mempelajari sistem agar dapat digunakan selanjutnya. 78% dari 80% kesalahan yg terdeteksi dapat dikoreksi.

Prediksi KesalahanPrediksi kesalahan perangkat lunak bertujuan untuk menginformasikan kepada pengguna mengenai file-file mana saja di dalam sistem yang mengandung atau cenderung memiliki kesalahan (faults). Faults atau kesalahan merupakan suatu kecacatan dalam perangkat lunak yang bisa mengakibatkan suatu perangkat lunak bertindak tidak sesuai dengan apa yang diharapkan. Model prediksi kesalahan dalam perangkat lunak di bagi kedalam dua model yaitu, model klasifikasi dan model peringkat (Ranking). model klasifikasi di desain untuk melaporkan kepada pengguna mengenai files, modules atau entitas perangkat lunak mana saja yang di dalamnya mengandung kesalahan dan mana saja yang tidak mengandung kesalahan. model rangking mengurutkan entitas berdasarkan jumlah kesalahan yang berhasil diprediksi.

Manfaat Prediksi : Mengurangi waktu pengembangan dan resiko proyek Mengurangi biaya sumber daya dan infrastruktur Meningkatkan efektifitas dan efisiensi pengujian perangkat lunak

Peta Penelitian : Prediksi Kesalahan

Peta Penelitian : 2005 Thwin dan Quah Metode : Jaringan syaraf tiruan dengan membandingkan antara algoritma backpropagation dengan general regression neural network Hasil : korelasi antara kesalahan yang diprediksi dengan kesalahan aktual adalah 0.9531 pada GRNN dan 0,9476 pada backpropagation

Peta Penelitian : 2007Menzies, Greenwald, dan Frank Metode : Nave Bayes Hasil penelitian menunjukkan bahwa algoritma nave bayes mampu memprediksi dengan baik

Mahaweerawat, Sophatshathit, dan Lursinsap

Self Organizing Map (SOM) dan Radial Basis Function (RBF) Hasil penelitian menunjukkan tingkat akurasi 93%, tetapi penelitian ini juga menyebutkan bahwa tingkat akurasi prediksi dipengaruhi oleh imbalanced dataset

Peta Penelitian : 2007Yang, Yao, dan Huang Metode : neuro fuzzy Hasil penelitian menunjukkan bahwa metode ini mampu mengukur ciri kualitas perangkat lunak seperti keandalan, kinerja, dan maintainanbility

Olague, Gholston, dan Quatlebaum

Metode : CK metric, MOOD metric, dan QMOOD metric Hasil penelitian menunjukkan Kinerja terbaik diperoleh bila menggunakan CK metric

Peta Penelitian : 2007Bezerra, Miguel, dan Silvero Pelayo dan Dick Metode : Radial Basis Function Hasil penelitian menunjukkan bahwa

Metode : SMOTE Hasil penelitian menunjukkan oversampling melebihi 300% ternyata tidak terlalu berpengaruh terhadap hasil klasifikasi

Peta Penelitian : 2008Shafi, Hassan, Arshaq, Khan, dan Shamail Teknik regresi dan LWL Hasil : mampu memprediksi kesalahan dengan tingkat ketepatan yang lebih baik dibanding metode yang lain

Shatnawi dan Li

Software Metric Mereka menemukan bahwa meskipun beberapa software metric bisa memprediksi kesalahan, tingkat akurasi prediksi mengalami penurunan dari satu rilis ke rilis berikutnya

Peta Penelitian : 2009 Catal dan Diri Metode : Random forrest dan nave bayes Hasil : Random Forrest adalah algoritma terbaik yang mampu memprediksi kesalahan pada data set yang berukuran besar, sedangkan Nave Bayes adalah algoritma yang tepat untuk memprediksi kesalahan pada data set yang berukuran kecil

Peta Penelitian : 2010 Kaur, Sandhu, dan Brar Jaringan syaraf tiruan dan clustering Pada percobaan yang dilakukan dengan menggunakan requirement metric, hasil prediksi yang di dapatkan kurang efisien. Begitu juga pada percobaan yang kedua dengan menggunakan code metric hasil yang didapatkan juga hampir sama dengan percobaan yang pertama. Pada percobaan yang ketiga yaitu gabungan requirement metric dan code metric maka hasil prediksi yang didapatkan lebih baik dari kedua percobaan sebelumnya. Hasil penelitian menunjukkan bahwa ketika semua teknik prediksi dievaluasi, model prediksi yang terbaik merupakan gabungan metrik kode dan spesifikasi kebutuhan

Peta Penelitian : 2011 Song, Zia, Shepperd, Ying, dan Liu Song, dkk mengusulkan model yang terdiri terdiri atas dua komponen yaitu skema evaluasi dan komponen prediksi kesalahan Berdasarkan hasil penelitian, peneliti berpendapat bahwa tidak ada skema yang terbaik untuk memprediksi semua data set kesalahan perangkat lunak. Peneliti juga berpendapat bahwa kerangka yang diajukan memiliki kemampuan untuk memprediksi kesalahan dan hasil yang lebih stabil

Peta Penelitian : 2011LING-FENG ZHANG,dkk Metode : Classifying Feature Alasan : Menghasilkan klasifikasi yg lebih baik Lebih simple, meningkatkan kecepatan untuk learning model software yg cacat. Tidak memakan banyak kapasitas penyimpanan

Hasilnumeric feature :

classifying feature :

Peta Penelitian : 2011 Alaa Hassouna dan Ladan Tahvildari Metode : Nearest Neighbour yang digunakan C.Weiss (2007) Peningkatan yg dilakukan :

Peningkatan Data : memasukkan informasi tambahan ke dalam prosedure penilaian kemiripan yang bertujuan untuk meingkatkan akurasi nilai kemiripan. Majority Voting. Adaptive Threshold. Binary Clustering : teknik ini mengklasifikasikan beberapa isu yang sama menjadi beberapa cluster. Hasil clustering berupa nilai binary 0 dan 1. Nilai 0 = jika ada kemiripan, atau 1 = jika tidak ada kemiripan.

Trend Isu Prediksi Kesalahan Perangkat Lunak

Software Metric

Machine Learning

Trend Isu Prediksi Kesalahan Perangkat Lunak

Pendekatan Machine Learning

Pendekatan Software Metric

Kesimpulan Tingkat kesalahan pada perangkat lunak mempengaruhi biaya pengembangan, biaya perawatan, dan resiko proyek perangkat lunak Data-data kesalahan perangkat lunak yang ditemukan pada proses pengembangan perlu disimpan dalam se buah repository Untuk memudahkan ketika melakukan analisa data-data kesalahan, data-data kesalahan yang didapatkan perlu diklasifikasikan. Klasifikasi dapat dilakukan berdasarkan pendekatan fasefase pengembangan, orthogonal, atau when-who-how

Kesimpulan Deteksi dan koreksi kesalahan perangkat lunak dapat dilakukan dengan pendekatan statistik dan komputasi cerdas seperti jaringan syaraf tiruan dan algoritma genetika Prediksi perangkat lunak dapat dilakukan dengan menggunakan pendekatan software metric dan komputasi cerdas Metode naive bayes dapat digunakanuntuk memprediksi kesalahan pada data set yang kecil, tetapi jika data set besar, maka gunakan random forrest

SaranMetode baru perlu dikembangkan untuk memprediksi kesalahan perangkat lunak yang tidak bias terhadap data set dan memiliki akurasi yang tinggi