1 of 26

PERBANDINGAN KEEFEKTIFAN TRANSFER LEARNING DAN DEEP TRANSFER LEARNING DALAM CROSS-COMPANY DEFECT PREDICTION

Nabila Fatia Kasmizar 11190910000098

2 of 26

Mengapa Software Defect Prediction?

Salah satu aspek penting dalam proses pengembangan perangkat lunak adalah nilai kegunaan dari perangkat lunak itu sendiri. Untuk menghasilkan perangkat lunak yang memiliki kualitas yang baik diperlukan cara untuk meminimalisir kecacatan pada perangkat lunak.

​

Prinsip dari prediksi cacat perangkat lunak pada dasarnya adalah dengan mempelajari sebuah model dari kumpulan data historis (training set) dan menerapkannya ke data uji (test set) untuk melakukan pengujian pada proyek yang sama (Within-Company defect prediction) (Yu, Jiang & Zhang, 2017)

3 of 26

Latar Belakang Cross Company Defect Prediction

Menurut penelitian yang dilakukan (Luo, Zeng, & Chen, 2012) Studi pada prediksi cacat perangkat lunak biasanya dilakukan dengan membangun model menggunakan data yang ada dalam perusahaan, tetapi sangat sedikit yang berfokus pada model prediksi yang dilatih dengan data lintas perusahaan (cross-company). Hal ini terjadi karena sulit untuk menerapkan model yang dibangun menggunakan data yang ada di dalam perusahaan yang baru berkembang, karena kurangnya repositori data lokal.

4 of 26

Latar Belakang Transfer Learning

Pada penelitian yang dilakukan (Luo, Zeng, & Chen, 2012), mereka mempertimbangkan skenario prediksi cacat lintas perusahaan dimana data sumber dan data target diambil dari perusahaan yang berbeda. Untuk memanfaatkan data lintas perusahaan, peneliti mencoba mengeksploitasi metode transfer learning untuk membangun model prediksi yang lebih cepat dan sangat efektif.

​

Transfer learning digunakan untuk membangun classifier pada target domain menggunakan data dari domain sumber terkait. Hal ini sangat berguna ketika distribusi contoh pelatihan dan pengujian berbeda.

​

5 of 26

Latar Belakang

Deep Transfer learning

DTL bekerja dengan cara mengirimkan informasi dari domain sumber ke domain target. Prinsipnya adalah dengan mengabaikan asumsi bahwa data pelatihan dan pengujian harus independen dan terdistribusi secara identik (Weiss et al. 2016). Hal ini dapat dibuktikan setelah mereka melakukan uji coba kepada model prediksi with-project defect prediction (WPDP) dan cross-project defect prediction (CPDP), dan menunjukan hasil bahwa pada model prediksi CPDP memiliki peningkatan dalam melakukan prediksi perangkat lunak dengan menggunakan metode DTL tersebut.

6 of 26

Masalah!

Sulitnya untuk menerapkan model yang dibangun menggunakan data lintas perusahaan, hal ini disebabkan karena kurangnya repositori data lokal.

1.

Dibutuhkannya metode pengembangan yang tepat untuk perancangan sebuah perangkat lunak agar dapat mengurangi jumlah kesalahan, mempersingkat waktu produksi, serta meminimalkan sumber daya yang digunakan.

2.

7 of 26

Rumusan Masalah

Apakah terdapat perbedaan yang signifikan dalam penggunaan algoritma Transfer Learning dan Deep Transfer Learning (DTL) untuk memprediksi cacat perangkat lunak menggunakan data historis lintas perusahaan?

Bagaimana memprediksi cacat perangkat lunak menggunakan data historis lintas perusahaan dengan Transfer Learning dan Deep Transfer Learning (DTL)?

Dari kedua algoritma tersebut manakah yang lebih efektif untuk memprediksi cacat perangkat lunak menggunakan data historis lintas perusahaan?

8 of 26

Hipotesis Penelitian

Algoritma Deep Transfer Learning lebih unggul dalam memprediksi cacat lunak menggunakan data historis lintas perusahaan dibandingkan algoritma Transfer Learning

9 of 26

Tujuan Penelitian

Mengetahui perbedaan performa yang dihasilkan dari penggunaan algoritma Transfer Learning dengan Deep Transfer Learning

Mengetahui bagaimana memprediksi cacat perangkat lunak menggunakan data historis lintas perusahaan dengan Transfer Learning dan Deep Transfer Learning (DTL)

Membandingkan keefektifan dari penggunaan algoritma Transfer Learning dengan Deep Transfer Learning

10 of 26

Manfaat Penelitian

Untuk memenuhi salah satu persyaratan dalam mendapatkan gelar sarjana komputer ( S.Kom ) pada Program Studi Teknik Informatika, Fakultas Sains dan Teknologi.

Bagi Penulis

Sebagai sarana untuk mengimplementasikan ilmu - ilmu yang telah didapatkan selama perkuliahan.

11 of 26

Manfaat Penelitian

Mengetahui sejauh mana kemampuan mahasiswa dalam menguasai dan mengimplementasikan ilmu yang telah diberikan selama perkuliahan.

Bagi Universitas

Menambahkan ke dalam salah satu koleksi penelitian yang telah dilakukan oleh mahasiswa prodi Teknik Informatika Fakultas Sains dan Teknologi.

12 of 26

Manfaat Penelitian

Pembaca dapat mengetahui mengenai prediksi cacat perangkat lunak menggunakan data lintas perusahaan dengan transfer learning dan deep transfer learning.

Bagi Pembaca

Memberikan informasi kepada para pembaca mengenai algoritma mana yang lebih unggul dalam memprediksi cacat perangkat lunak menggunakan data lintas perusahaan.

13 of 26

Batasan Masalah

Metode

Algoritma Transfer Learning untuk mengekstrak pengetahuan umum dari satu domain tugas lalu mentransfernya ke yang lain, untuk melatih model prediksi.

Deep transfer learning digunakan untuk mendeteksi cacat pada kode program yang sudah divisualisasikan dalam bentuk gambar.

Visualisasi perangkat lunak digunakan untuk memvisualisasikan struktur dan fitur kode, eksekusi kode, dan perubahan dari basis kode menjadi sebuah gambar.

14 of 26

Batasan Masalah

Tools

Bahasa pemrograman yang digunakan adalah Python.

Laptop yang digunakan dalam penelitian ini bersistem operasi Windows 11 (64 bit) dan RAM 8 GB.

Library yang digunakan pada penelitian ini adalah numpy, torch, os, random, dan time.

15 of 26

Batasan Masalah

01

02

03

04

Proses

Data pengujian yang digunakan dalam penelitian ini adalah dataset milik NASA MDP.

Pengimplementasian Algoritma Transfer Learning untuk memprediksi program yang memiliki cacat.

Pengimplementasian Algoritma deep transfer learning untuk menampilkan program yang memiliki cacat.

Memperoleh hasil prediksi cacat dalam bentuk gambar.

16 of 26

Metode Penelitian

17 of 26

Metode Pengumpulan Data

Metode pengumpulan data menggunakan teknik studi literatur. Hal ini dilakukan dengan membaca buku-buku serta jurnal yang berkaitan dengan topik penelitian. Sumber-sumber diambil dari berbagai media seperti jurnal, e-book, penelitian skripsi yang berkaitan dengan topik penelitian digunakan sebagai landasan teori dan referensi untuk penyelesaian masalah dari penelitian yang dilakukan.

18 of 26

Studi Literatur Sejenis

19 of 26

Metode Pengembangan Sistem

20 of 26

Perhitungan Performa

Performance Measure

Deskripsi

Akurasi

Untuk menghitung jumlah module yang di prediksi dengan benar

Precision

Untuk menghitung jumlah module

yang diklasifikasikan sebagai defect

Recall

Untuk menghitung jumlah module

defect di prediksi dengan benar

False Alarm

Untuk menghitung jumlah module

non-defect yang di klasifikasikan

sebagai defect

21 of 26

Time Table

Kegiatan

Target

Proposal

11 Februari 2022

Seminar Proposal

17 Februari 2022

KKN + SKRIPSI

Agustus 2022

Lulus Skripsi

November / Desember 2022

22 of 26

Calon Dosen Pembimbing

​

​

Rizal Broer Bahaweres, M.Kom

Nurul Faizah Rozy, MTI

23 of 26

Reference

  • Chen, J., Hu, K., Yu, Y., Chen, Z., Xuan, Q., Liu, Y., & Filkov, V. (2020). Software Visualization and Deep Transfer Learning for Effective Software Defect Prediction. 2020 IEEE/ACM 42nd International Conference on Software Engineering (ICSE), 578-589. https://doi.org/10.1145/3377811.3380389

​

  • Ma, Y., Luo, G., Li, J., & Chen, A. (2011). Software defect prediction using transfer method. 2011 International Conference on Computational Problem-Solving (ICCP), 610-613. https://doi.org/10.1109/ICCPS.2011.6092261

​

  • Ma, Y., Luo, G., Zeng, X., & Chen, A. (2012). Transfer learning for cross-company software defect prediction. Information and Software Technology, 54(3), 248–256. http://doi.org/10.1016/j.infsof.2011.09.007

​

  • McDonald, M., Musson, R., & Smith, R. (2007). The practical guide to defect prevention. Control, 260–272.

24 of 26

Reference

  • Naik, S. and Tripathy, P. (2008) Software Testing and Quality Assurance: Theory and Practice. Wiley-Spektrum. https://doi.org/10.1002/9780470382844

​

  • Pan, S.J., & Yang, Q. (2010). A Survey on Transfer Learning. IEEE Transactions on Knowledge and Data Engineering, 22, 1345-1359. https://doi.org/10.1109/TKDE.2009.191

​

  • Peters, Fayola & Menzies, Tim & Marcus, Andrian. (2013). Better cross company defect prediction. IEEE International Working Conference on Mining Software Repositories. 409-418. https://doi.org/10.1109/MSR.2013.6624057

​

  • Saifan, Ahmad A.; Al Smadi, Nawzat (2019). Source code-based defect prediction using deep learning and transfer learning. Intelligent Data Analysis, 23(6), 1243–1269. doi:10.3233/IDA-184297

​

25 of 26

Reference

  • Turhan, B., Menzies, T., Bener, A.B., & Stefano, J.S. (2008). On the relative value of cross-company and within-company data for defect prediction. Empirical Software Engineering, 14, 540-578. http://doi.org/10.1007/s10664-008-9103-7

​

  • Weiss, K.R., Khoshgoftaar, T.M., & Wang, D. (2016). A survey of transfer learning. Journal of Big Data, 3, 1-40. https://doi.org/10.1186/s40537-016-0043-6

​

  • Yu, Xiao., Liu, J., Peng, W., & Peng, X. (2017). Improving Cross-Company Defect Prediction with Data Filtering. Int. J. Softw. Eng. Knowl. Eng., 27, 1427-1438. https://doi.org/10.1142/S0218194017400046

​

  • Yu, Xiao., Zhou, Mingsong & Chen, Xu & Deng, Lijun. (2017). Using Class Imbalance Learning for Cross-Company Defect Prediction. 117-122. https://doi.org/10.18293/SEKE2017-035

​

  • Zimmermann, T., Nagappan, N., Gall, H.C., Giger, E., & Murphy, B. (2009). Cross-project defect prediction: a large scale experiment on data vs. domain vs. process. ESEC/FSE '09. https://doi.org/10.1145/1595696.1595713

​

26 of 26

Terimakasih

atas waktu dan kesempatannya

​

​

Nabila Fatia Kasmizar