1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Xây dựng bộ dữ liệu và dự đoán mã xấu sử dụng học máy (tt)

26 2 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA PHAN DUY HÙNG XÂY DỰNG BỘ DỮ LIỆU VÀ DỰ ĐOÁN MÃ XẤU SỬ DỤNG HỌC MÁY Chuyên ngành : Khoa học máy tính Mã số : 8480101 TĨM TẮT LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH ĐÀ NẴNG - NĂM 2022 THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành nội CƠNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA Người hướng dẫn khoa học: TS LÊ THỊ MỸ HẠNH Phản biện 1: TS Lê Trần Đức Phản biện 2: TS Lâm Tùng Giang Luận văn bảo vệ trước Hội đồng chấm Luận văn tốt nghiệp thạc sĩ ngành Khoa học máy tính họp Trường Đại học Bách khoa vào ngày 22 tháng năm 2021 Có thể tìm hiểu luận văn tại: - Trung tâm học liệu TT trường Đại Học Bách khoa - Thư viện Khoa Công Nghệ Thông Tin, Trường ĐH Bách khoa – ĐHĐN THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành nội MỞ ĐẦU Tính cấp thiết lý chọn đề tài Với phát triển công nghệ thông tin ngày mạnh mẽ, số lượng phần mềm ngày nhiều Các dự án phát triển phần mềm ngày trở nên lớn, phức tạp, tốn ngày khó dự đốn Các nhà phát triển phải làm việc suất để đáp ứng cho nhu cầu cao số lượng chất lượng phần mềm Một vấn đề mà nhà phát triển cần quan tâm khả rủi ro gia tăng độ phức tạp phần mềm gia tăng Điều ảnh hưởng đến chi phí tiến độ dự án phát triển phần mềm Việc dự đoán khiếm khuyết phần mềm mang lại ý nghĩa lớn Điều làm giảm chi phí cải thiện thời gian nâng cao chất lượng dự án, làm giảm nguy phá vỡ kế hoạch, chiến lượng doanh nghiệp Một khiếm khuyết phần mềm mà dự đoán mã xấu Trước đây, việc dự đốn mã xấu dựa hồn tồn vào kiến thức, kinh nghiệm nhà phát triển phần mềm Sau họ đưa tập quy tắc để xác định mã xấu Cách làm chủ quan tốn nhiều thời gian để thực Hiện nay, nhà nghiên cứu giới tiến đến việc sử dụng kỹ thuật học máy để dự đoán dự đoán mã xấu Nhiều nghiên cứu gần chứng kết đầy hứa hẹn phương pháp sử dụng học máy để dự đoán mã xấu dựa độ đo phần mềm Một khó khăn việc sử dụng phương pháp học máy cần phải có liệu đủ lớn để thực huấn luyện mơ hình Tuy nhiên, theo hiểu biết tìm hiểu tơi, chưa có nghiên cứu đáp ứng tốt liệu mã xấu THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành nội Vì lý trên, tơi chọn đề tài luận văn cao học: Xây dựng liệu đoán mã xấu sử dụng học máy Giới thiệu tổng quan đề tài Code smell (mã xấu) định nghĩa theo nguyên tắc sau: mã xấu số cấu trúc định mã cho thấy vi phạm nguyên tắc thiết kế ảnh hưởng tiêu cực đến chất lượng thiết kế Các mã xấu thường lỗi lỗi Chúng không mặt kỹ thuật khơng ngăn cản chương trình hoạt động Mã xấu Fowler cộng (1999) xác định cách khơng thức triệu chứng vấn đề xảy với mã thiết kế Thay vào đó, vi phạm tuyệt đối nguyên tắc phần mềm làm giảm chất lượng mã Chúng điểm yếu thiết kế làm chậm trình phát triển tăng nguy lỗi hỏng hóc tương lai Hiện tại, có nhiều thuật tốn học máy sử dụng để xác định mã xấu phần mềm Năm 2009, Khomh cộng đề xuất sử dụng phương pháp Bayesian Belief Networks để dự đoán mã xấu Năm 2010, Hassaine cộng thực nghiệm dự đoán mã xấu dựa liệu Khomh cộng Năm 2012, Maiga cộng giới thiệu phương pháp sử dụng Support Vector Machine để dự đoán mã xấu Năm 2013, Fontana cộng trình bày việc dự đoán mã xấu nhiều thuật toán học máy khác Năm 2015, Amorim cộng giới thiệu thực nghiệm sử dụng thuật toán Decision Tree để dự đoán mã xấu Năm 2018, Hadj-Kacem Bouassida đề xuất phương pháp kết hợp sử dụng thuật tốn khơng giám sát khơng giám sát để phát mã xấu Dựa kết nghiên cứu trên, thực nghiệm thuật toán học máy khác để so sánh kết Trong nội THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành nội dung nghiên cứu này, tập trung vào thuật toán học máy bao gồm Linear Discriminant Analysis (LDA), k-NearestNeighbours (kNN), Multilayer Perceptron (MLP), Decision Tree (DT), Support Vector Machine (SVM), Random Forest (RF) Sau xây dựng liệu với kỳ vọng, nghiên cứu áp dụng thử nghiệm số thuật toán học máy liệu Mục tiêu nội dung nghiên cứu 3.1 Mục tiêu Mục tiêu luận văn nghiên cứu dự đoán mã xấu sử dụng thuật toán học máy Mục tiêu cụ thể luận văn xây dựng liệu cho toán dự đoán mã xấu nghiên cứu thuật toán học máy áp dụng cho dự đoán mã xấu 3.2 Nội dung nghiên cứu Để hồn thành mục tiêu phân tích này, cần phải có hiểu biết thấu đáo vấn đề Điều thực thông qua tìm hiểu cách thấu đáo lý thuyết thực nghiệm Nội dung nghiên cứu bao gồm tất vấn đề có liên quan, cụ thể: - Lý thuyết mã xấu Phương pháp dự đoán mã xấu Áp dụng học máy vào dự đoán mã xấu Bộ liệu mã xấu sử dụng cho phương pháp máy học Đối tượng phạm vi nghiên cứu 4.1 Đối tượng nghiên cứu Với mục tiêu đặt ra, luận văn tập trung nghiên cứu nội dung sau: - Nghiên cứu dự đoán mã xấu khứ THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành nội - Dự đoán mã xấu dựa độ đo mã nguồn sử dụng thuật toán học máy - Nghiên cứu thuật toán học máy ứng dụng dự đoán mã xấu 4.2 Phạm vi nghiên cứu Với mục tiêu đối tượng nghiên cứu đặt ra, phạm vi nghiên cứu luận văn sau: - Nghiên cứu thuật toán học máy Linear Discriminant Analysis, K-Nearest-Neighbours, Multilayer Perceptron, Decision Tree, Support Vector Machine, Random Forest - Nghiên cứu kỹ thuật tiền xử lý liệu Balancing, Normalization, Feature selection - Nghiên cứu liệu mã xấu từ năm 2009 đến - Nghiên cứu công cụ đo PMD, iPlasma, inFusion - Nghiên cứu hai loại mã xấu Class Method Phương pháp nghiên cứu 5.1 Phương pháp lý thuyết Nghiên cứu tổng hợp tài liệu liên quan mã xấu dự đoán mã xấu sử dụng kỹ thuật học máy, nghiên cứu, phân tích liệu mã xấu công cụ phát mã xấu 5.2 Phương pháp thực nghiệm Sử dụng số công cụ iPlasma, PMD, … để xây dựng liệu mã xấu dựa dự án mã nguồn mở Cài đặt thử nghiệm hiệu số thuật toán học máy liệu liệu Fontana Kết đạt 6.1 Về lý thuyết THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành nội Hiểu khái niệm tính chất việc sử dụng thuật toán phục vụ chẩn đoán phương pháp học máy Hiểu phương pháp dự đoán mã xấu Đánh giá chất lượng dự đốn mã xấu thơng qua độ đo 6.2 Về thực nghiệm Nghiên cứu cải thiện thuật toán dự đoán mã xấu Xây dựng liệu lớn hơn, phù hợp cho việc áp dụng thuật toán học máy để dự đoán mã xấu Đo lường đánh giá chất lượng thuật toán liệu Ý nghĩa khoa học thực tiễn 7.1 Ý nghĩa khoa học - Áp dụng lý thuyết phân tích dự đốn lĩnh vực đời sống - Áp dụng phương pháp học máy để dự đoán mã xấu 7.2 Ý nghĩa thực tiễn - Đề xuất giải pháp nhằm cải thiện chất lượng chẩn đốn mã xấu, góp phần giúp cho nhà quản lý phát triển phần mềm giảm thiểu nguồn lực, kiểm sốt tốt tiến trình, giảm thiểu rủi ro tăng tính khả thi cho dự án - Giúp cho chủ doanh nghiệp CNTT kiểm sốt tốt nguồn lực, giảm thiểu phí đầu tư, rút ngắn thời gian, đảm bảo tính cạnh tranh nâng cao hiệu kinh doanh nhằm đảm bảo phát triển bền vững - Đóng góp kết nghiên cứu thực nghiệm, giúp cải thiện góc nhìn khoa học phục vụ cho nghiên cứu phát triển ứng dụng nhiều lĩnh vực khác đời sống – xã hội thời THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành nội gian Bố cục luận văn Ngoài phần mở đầu kết luận, đề tài gồm có chương: • Chương 1: Tổng quan dự đoán mã xấu dựa học máy • Chương 2: Xây dựng liệu mã xấu • Chương 3: Đánh giá phương pháp học máy dự đốn mã xấu • Chương 4: Kết luận hướng phát triển CHƯƠNG 1: TỔNG QUAN VỀ DỰ ĐOÁN MÃ XẤU DỰA TRÊN HỌC MÁY 1.1 Tổng quan 1.1.1 Phát triền phần mềm Hiện nay, phần mềm có bước chuyển đổi mạnh mẽ hỗ trợ hầu hết cho tất loại ngành nghề từ cơng nghiệp, giải trí đến dịch vụ Hầu tất công việc thực máy tính ngày thơng qua phần mềm chun dụng 1.1.2 Mã xấu Một cách để ngăn chặn lỗi phần mềm xảy phát mã xấu loại bỏ trước gây lỗi phần mềm Mã xấu phép ẩn dụ để mô tả mẫu, đoạn mã thường liên quan đến thiết kế tồi lập trình tồi Năm 1999, Martin Fowler Kent Beck định nghĩa mã xấu nghiên cứu họ Martin Fowler cho rằng: "Mã xấu dấu hiệu bề mặt thường tương ứng với vấn đề sâu hệ thống" Kent Beck định nghĩa mã xấu sau: "Mã xấu gợi ý xảy lỗi THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành nội mã bạn Sử dụng mã xấu để theo dõi vấn đề" Trong nghiên cứu mình, hai ông thống mã xấu lỗi, dấu hiệu cảnh báo lỗi xảy Nghiên cứu ơng đặt móng cho phát triển việc xác định phát mã xấu sau 1.1.3 Các thuật tốn học máy Hiện tại, có nhiều thuật tốn học máy giải vấn đề khác Một số số chúng sử dụng để xác định mã xấu phần mềm Trong báo này, tập trung vào thuật toán học máy bao gồm Linear Discriminant Analysis (LDA), k-Nearest-Neighbours (kNN), Multilayer Perceptron (MLP), Decision Tree (DT), Support Vector Machine (SVM), Random Forest (RF) 1.1.4 Mã xấu học máy Trong khứ năm gần đây, vấn đề phát mã xấu tích cực Cộng đồng nghiên cứu đề xuất kỹ thuật phát mã xấu khác nhau, chia thành hai loại Phương pháp bao gồm kỹ thuật dựa quy tắc xác định số quy tắc phát cách sử dụng số liệu mã số ngưỡng áp dụng số liệu để phân biệt mã xấu mã tốt Phương pháp thứ hai bao gồm kỹ thuật dựa máy học, áp dụng phương pháp học có giám sát để phát mã xấu 1.1.5 Mơ hình triển khai phương pháp đo lường 1.1.5.1 Mơ hình triển khai Hình 1.1 cho thấy bước cho giai đoạn đào tạo giai đoạn thử nghiệm Đầu tiên, tập liệu thô tách thành hai tập liệu với tỷ lệ 75% cho đào tạo (1), 25% cho thử nghiệm (4) Sau tách, tập liệu liệu thô, tập liệu thô THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành nội chuyển thành tập liệu nhị phân (2) (5) Hình 1 Mơ hình triển khai 1.1.5.2 Phương pháp đo lường Trong phạm vi luận, độ đo accuracy, f1-score ROC (Receiver Operating Characteristic) sử dụng để đo lường hiệu thuật toán học máy cho kịch kiểm thử Tất thử nghiệm thực với liệu nhị phân, ma trận 2x2 Confusion Matrix Đây kỹ thuật đo lường hiệu suất phổ biến sử dụng rộng rãi cho mơ hình phân loại 1.2 Phương pháp thực 1.1.6 Lý thuyết tập hợp liệu 1.1.7 Lý thuyết kỹ thuật tiền xử lý liệu 1.1.8 Lý thuyết lựa chọn đặc trưng 1.3 Kết luận Trong phần này, tơi trình bày tổng quan đề tài Khái niệm mã xấu trình bày cụ thể, thơng qua đó, ta hiểu tầm quan trọng việc phát mã xấu Đó mục tiêu viết Ngoài ra, phần này, tơi trình bày THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành nội 10 Mỗi nghiên cứu có tập liệu riêng nên đẫn đến số nhược điểm sau: Số lượng mẫu thử liệu nhỏ Số lượng loại mã xấu hạn chế Dữ liệu không quán tập liệu mà phụ thuộc vào công cụ đánh giá chủ quan người Khó so sánh hai mơ hình với khác biệt tập liệu Do đó, cần sử dụng tập liệu chung cho nghiên cứu khác tập liệu cần có số đặc điểm sau Đầu tiên, phải có số lượng lớn phiên bản, trích xuất từ số lượng lớn kho lưu trữ cách sử dụng cơng cụ đáng tin cậy Thứ hai, phải có đủ thuộc tính (số liệu nguồn, mã xấu, Vv.) để phục vụ mục đích khác Cuối cùng, phải cơng bố rộng rãi để cộng đồng nghiên cứu xác nhận độ tin cậy 2.2 Các cơng cụ đo Hiện nay, có nhiều cơng cụ đời để đánh giá chất lượng mã, đo lường mức độ mã Trong phần này, giới thiệu ba công cụ mà thử nghiệm sâu inFusion, PMD, iPlasma 2.3 Hạn chế công cụ thử nghiệm Một số hạn chế xác định trình nghiên cứu sử dụng công cụ Các công cụ đề cập tạo để phân tích chất lượng phần mềm, có nghĩa phát mã xấu khơng phải mục tiêu công cụ Các công cụ chủ yếu sử dụng cho số ngơn ngữ lập trình, chẳng hạn Java, C++ Đối với PMD, giới hạn số lập trình sẵn THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành nội 11 khiến người dùng nhiều thời gian để thêm số khác Tuy nhiên, việc thêm thước đo khác không đơn giản người dùng khơng thể sử dụng ngơn ngữ Java để lập trình iPlasma khắc phục hạn chế PMD lại để lại hạn chế iPlasma sử dụng giao diện trông tiện lợi cho người dùng cồng kềnh 2.4 Đặc tả liệu Bảng 2.1 thống kê tổng quát số lượng mã xấu loại kèm với danh sách độ đo chúng Loại Class Mã xấu Độ đo Brain Class DIT, NOPA, PNAS, WOC, NSPECM, CC, NOAM, CM, NAS, NTempF, NProtM, NOA, FDP, ATFD, NOM, CBO, AMW, FANOUT, WMC Data Class WMC, CM, BUR, PNAS, CC, NOM, NOA, NTempF, NOPA, NOAM Futile Abstract Pipeline CC, AMW, NOA, CM, FANOUT, NOAM, CBO, WOC, WMC, NAbsM, NSPECM, NOM, DIT, NProtM, NAS, HIT, PNAS Futile Hierarchy NOPA, NAS, WOC, BUR, CC, CM, NAbsM, NOA, NOAM, NTempF, AMW, FDP, ATFD, NOM, FANOUT, CBO, WMC, HIT,NProtM God Class HIT, NOPA, NSPECM, CM, NAS, CC, NAbsM, NOA, NProtM,ATFD, WMC, NOAM, NTempF, FANOUT, FDP, CBO, NOM, DIT, PNAS, AMW, TCC, WOC THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành nội 12 Method Schizofrenic Class NSPECM, NAbsM, NOPA, NAS, CC,NOAM, CM, WOC, AMW,NProtM, NOA, NTempF, ATFD, FANOUT, FDP, WMC, NOM, CBO Brain Method CC, CM, FANIN, NOP, CDISP, FDP, CINT, ATFD, FANOUT, NOAV, MAXNESTING, NOLV, LOC, CYCLO Extensive Coupling FANIN, NOP, CDISP, MAXNESTING, FANOUT, NOAV, LOC, CYCLO, ATFD, NOLV, FDP, CINT Feature Envy NOP, CYCLO, CDISP, MAXNESTING,NOLV, LOC, NOAV, FANOUT, CINT, FDP,ATFD Intensive Coupling CC, CM, FANIN, NOP, CDISP, NOLV, NOAV, FDP, CYCLO, MAXNESTING, LOC, FANOUT, ATFD, CINT Shortcircuiting NOLV, ATFD, FDP, FANOUT, LOC, Method CINT, NOAV, CDISP, CYCLO, MAXNESTING, FANIN, CM, CC Shotgun Surgery LAA, FANIN, CM, CC Bảng Bảng tổng hợp liệu mã xấu từ năm 2009 THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành nội 13 2.5 Định nghĩa loại mã xấu liệu Trong phần này, loại mã xấu hai nhóm Class Method định nghĩa khái quát 2.6 Định nghĩa độ đo Với hỗ trợ công cụ đo nay, thu thập nhiều giá trị đo mã nguồn Tuy nhiên, đề cập phần trên, việc thu thập nhiều độ đo không hẳn đem lại hiệu cao Thực tế, theo kết nghiên cứu thực nghiệm tôi, việc sử dụng tất độ đo đem lại kết Ngun nhân vài độ đo khơng liên quan đến độ đo khác hay không ảnh hưởng đến việc gán nhãn Chúng gọi nhiễu Các phương pháp khử nhiễu đề cập phần Đây bước quan trọng việc nâng cao chất lượng mơ hình Phần đính kèm Metrics danh sách số định nghĩa chúng sau trình khử nhiễu 2.7 Công khai liệu Tệp Dataset-Method tệp Dataset-Class tập liệu mã xấu mà xuất Sự phân bố tập liệu mã xấu biểu diễn thơng qua Hình 2.2 Hình 2.3 bên Hình Phân bố mã xấu loại method THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành nội 14 Hình 2 Phân bố mã xấu loại class 2.8 Đánh giá kết liệu phương pháp học máy Việc áp dụng thuật toán học máy vào tốn phát mã xấu hồn tồn khả thi Hơn nữa, kết tất thuật tốn mang lại tỷ lệ xác khả quan Qua cho thấy liệu tạo cách hợp lý, đầy đủ tạo điều kiện lý tưởng để áp dụng thuật toán học máy 2.9 Kết luận Trong phần này, nêu rõ công cụ đo sử để tạo liệu mã xấu Ngoài ra, đặc tả chi tiết liệu trình bày cụ thể, bao gồm định nghĩa loại mã xấu, độ đo sử dụng Bộ liệu cung cấp tổng cộng 13 loại mã xấu (6 nhóm method nhóm class), loại mã xấu, số lượng mẫu nhiều so với hầu hết liệu mã xấu tại) Điều quan trọng hữu ích cho nhà phát triển phân tích, giải tốn phát mã xấu tương lai Các kỹ thuật nhằm nâng cao hiệu liệu giới thiệu Việc áp dụng kỹ thuật mang lại kết khả quan việc áp dụng thuật toán học THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành nội 15 máy Thơng qua đó, khẳng định lại lần liệu mã xấu hồn tồn có khả áp dụng thuật tốn học máy CHƯƠNG 3: ĐÁNH GIÁ CÁC PHƯƠNG PHÁP HỌC MÁY TRONG DỰ ĐOÁN MÃ XẤU 3.1 Áp dụng học máy dự đoán mã xấu 3.1.1 Các bước tiền xử lí liệu Xử lý trước liệu trước áp dụng thuật toán ML quan trọng Đó kỹ thuật khai thác chuyển đổi liệu thô thành liệu dễ hiểu Dữ liệu thô không đầy đủ, nhiều nhiễu khó hiểu với máy tính, liệu khơng thể gửi qua mơ hình Đó lý cần tiền xử lý liệu trước gửi qua mơ hình 3.1.1.1 Cân liệu Q trình cân quan trọng, đặc biệt trường hợp có cân lớn tập liệu Trên thực tế, kiểm tra kết dựa liệu cân không cân bằng, thảo luận phần sau Việc xây dựng mơ hình phân loại với tập liệu không cân khiến cho lớp đại diện bị bỏ qua chí bị bỏ qua 3.1.1.2 Chuẩn hóa liệu Đối với hầu hết vấn đề giải thuật toán học máy, kỹ thuật chuẩn hóa thường sử dụng Chuẩn hóa phần q trình chuẩn bị liệu cho học máy Việc chuẩn hóa quan trọng, giúp thay đổi giá trị cột số tập liệu thành tỷ lệ chung mà không làm sai lệch khác biệt phạm vi giá trị Nếu liệu có dải giá trị cột THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành nội 16 khơng cần chuẩn hóa Trong trường hợp giá trị cột tập liệu khác nhiều q trình chuẩn hóa cần thiết quan trọng 3.1.1.3 Lựa chọn đặc trưng liệu Mỗi loại mã xấu có số đặc trưng khác Số lượng đặc trưng thường nhiều, chúng số liệu tính tốn dựa mã nguồn Chúng ta hồn tồn sử dụng tất đặc trưng để luyện tập Tuy nhiên, điều tiêu tốn nhiều tài nguyên thời gian Đơi ảnh hưởng đến kết trình thử nghiệm 3.1.2 Áp dụng thuật tốn học máy Trong phần này, tơi trình bày bước áp dụng kỹ thuật trình bày để phát mã xấu Hình 1.1 cho thấy bước cho giai đoạn đào tạo giai đoạn thử nghiệm Đầu tiên, tập liệu thô chia thành hai tập liệu với tỷ lệ 75% cho đào tạo, 25% cho thử nghiệm Sau tách, tập liệu liệu thô, tập liệu thô chuyển thành tập liệu nhị phân Điều có nghĩa loại mã xấu chia thành tập liệu nhị phân Mỗi phiên tập liệu gắn nhãn Nhãn có hai giá trị sai tương ứng với trường hợp có mùi khơng có mùi Các kỹ thuật tiền xử lý liệu áp dụng tương tự, đồng với tập liệu huấn luyện tập liệu kiểm tra Các thuật toán giới thiệu phần trước Các mơ hình phân loại xây dựng dựa thuật toán học máy dựa tập liệu đào tạo Các mơ hình sử dụng lại để kiểm tra liệu Kết trình kiểm tra danh sách nhãn tương ứng cho dòng máy loại mã xấu Độ xác q trình tính tốn dựa nhãn danh sách THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành nội 17 liệu thử nghiệm nhãn danh sách dự đốn thơng qua mơ hình Điều thảo luận phần sau 3.2 Đo lường, đánh giá, so sánh kết thuật toán 3.2.1 Tổng quát Bốn kịch thử nghiệm thực phần Tất tình dựa liệu thử nghiệm (25% liệu thơ) Đối với kịch bản, có sáu thuật toán triển khai bao gồm (Linear Discriminant Analysis (LDA), k-Nearest-Neighbors (kNN), Multilayer Perceptron (MLP), Decision Tree (DT), Support Vector Machine (SVM), Random Forest (RF)) Kết thử nghiệm kịch thể thông qua bảng biểu đồ Receiver Operating Characteristic curve (ROC curve) để minh họa hiệu thuật toán khác Chúng cung cấp nhìn trực quan, rõ ràng đầy đủ kết tổng thể kịch 3.2.2 Kịch thử nghiệm Có tổng cộng kịch xây dựng bên Bảng 3.1 hiển thị tổng quan kỹ thuật tiền xử lý liệu áp dụng tất tình P.P Tiền xử lý Kịch Kịch Kịch Kịch Normalization X X X Feature Selection X X X Balancing with Oversampling strategy X Balancing with Under-sampling strategy X Bảng Các phương pháp tiền xử lý liệu cho kịch THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành nội 18 3.2.3 Phân tích đánh giá kết Kết tất kịch hiển thị Hình3.5 Dựa kết này, số đánh giá phân tích tóm tắt sau: • Kịch 1: kết tất thuật tốn khơng ấn tượng với phạm vi [0,6 - 0,75] Các thuật toán cho kết cao thuật tốn cịn lại, nhiên, khác biệt khơng q lớn Trong biểu đồ ROC Hình3.1, đường cong nằm phần đường chéo Tuy nhiên, AUC không quan trọng Điều cho thấy hiệu phương pháp khơng cao • Kịch 2: kết kịch với phạm vi [0,75 - 0,9] cao kết kịch Trong Hình3.2, tất đường cong nằm đường chéo, AUC lớn đường cong Hình3.2 Điều lần khẳng định kết kịch tốt kết kịch • Kịch 3: Kết kịch với phạm vi [0,85 0,98] cao nhiều so với kết kịch kịch Tất thuật tốn cho kết tốt tập trung vào thuật toán Random Forest Thuật toán cho thấy ổn định kết bốn loại mã xấu Trong Hình 3.3, đường cong nằm đường chéo AUC lớn nhiều so với đường cong Hình3.1 Hình3.2 Điều có nghĩa việc áp dụng thuật toán cân cho kết tốt so với việc khơng sử dụng • Kịch 4: kết kịch với phạm vi [0,84 - 0,98] THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành nội 19 giống với kết kịch Như kịch 3, thuật toán Random Forest kịch cho kết kết cao bốn loại mã xấu Kết thuật toán cao loại Mã xấu Long Method, Data Class, God Class Trong Hình 3.4, đường cong giống với đường cong kịch Tất đường cong nằm đường chéo AUC lớn nhiều so với đường cong kịch kịch Đó cho thấy hiệu suất việc áp dụng thuật toán cân bằng, chiến lược lấy mẫu lấy mẫu mức Hình Kịch kiểm thử THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành nội 20 Hình Kịch kiểm thử Hình 3 Kịch kiểm thử THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành nội 21 Hình Kịch kiểm thử Hình Kết tổng hợp kịch thử nghiệm Cuối cùng, thơng qua Hình3.5, câu trả lời cho ba câu hỏi THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành nội 22 nghiên cứu phần trả lời sau: • Câu hỏi 1: Kỹ thuật tiền xử lý hoạt động tốt để phát mã xấu? Theo kết Hình3.5, việc sử dụng kỹ thuật tiền xử lý liệu cho kết ấn tượng Việc áp dụng đầy đủ kỹ thuật tiền xử lý cải thiện độ xác từ 60% lên 95% Do đó, kết hợp kỹ thuật chuẩn hóa, lựa chọn đặc trưng cân tập liệu hiệu áp dụng kỹ thuật cách riêng biệt • Câu hỏi 2: Thuật tốn học máy cho kết xác nhất? Thuật tốn Random Forest cho kết cao (95% - 99%) bốn loại Mã xấu Một số thuật tốn có độ xác thấp chút so với thuật tốn Random Forest, chẳng hạn như: SVM (90% 97%), Decision Tree (85% - 95%) • Câu hỏi Thuật tốn học máy cho kết ổn định cho tất loại mã xấu? Thuật toán Random Forest cho thấy độ xác ổn định bốn loại mã xấu bốn tình Kết thuật tốn ln nằm top thuật tốn có hiệu suất cao 3.3 Kết luận Trong phần này, tơi giới thiệu thuật tốn học máy, kỹ thuật tiền xử lý liệu dành cho toán phát mã xấu phân tích kết thử nghiệm Các bước tiến hành áp dụng kỹ thuật tiền xử lý liệu, cân liệu bốn kịch kiểm thử trình bày cụ thể, rõ ràng Kết kịch đánh giá dựa độ đo ROC Curve, F1-score THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành nội 23 đề cập phần Thông qua kết so sánh bốn kịch bản, mục tiêu phần trả lời Hầu hết thuật toán mang lại kết khả quan Trong đó, ba thuật tốn Random Forest, Support Vector Machine, Decision Tree có kết cao Hơn nữa, việc áp dụng kỹ thuật tiền xử lý liệu cãi thiện kết rõ rệt, chúng nâng cao độ xác từ khoảng 60% lên khoảng 95% CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Trong viết này, dã trình bày khái niệm mã xấu Mã xấu lỗi phần mềm, mã xấu dấu hiệu hay nguy dẫn đến lỗi phần mềm Đó lí tầm quan trọng việc phát mã xấu mã nguồn Nó giúp nhà phát triển phần mềm ngăn ngừa lỗi xảy tương lai Bên cạnh đó, kết khẳng định việc phát mã xấu thuật toán học máy khả thi đầy hứa hẹn Tôi công bố báo thực nghiệm việc dự đoán mã xấu sử dụng học máy Bài báo đăng Hội thảo khoa học quốc gia – CITA 2021 Tên báo “Experimentations of Machine Learning for Predicting Code Smells” với ID 27 Trong tương lai hướng đến việc mở rộng liệu Như đề cập, 13 loại mã xấu xây dựng khơng phải tất cả, cịn nhiều loại mã xấu khác Vì việc mở rộng liệu với quy mô lớn mục tiêu quan trọng cần thiết Mặc khác, với độ rộng lớn liệu, việc sử dụng thuật toán học máy để phát mã xấu theo phương pháp gán nhãn nhị phân (binary-labels) gây tốn thời gian Vì lí này, việc xây dựng sử dụng thuật toán học máy theo phương pháp gán THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành nội 24 đa nhãn (multi-labels) mục tiêu nghiên cứu Nếu thành công, chúng giúp tiết kiệm thời gian thực thi việc phát nhiều mã xấu lúc Sau thực nghiên cứu này, việc đóng gói chúng thành cơng cụ mục tiêu nghiên cứu Hi vọng rằng, nhà phát triển, lập trình viên sử dụng cơng cụ để phát mã xấu ngăn ngừa lỗi cách sớm hiệu Xin chân thành cảm ơn! THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành nội ... vấn đề có liên quan, cụ thể: - Lý thuyết mã xấu Phương pháp dự đoán mã xấu Áp dụng học máy vào dự đoán mã xấu Bộ liệu mã xấu sử dụng cho phương pháp máy học Đối tượng phạm vi nghiên cứu 4.1 Đối... quan dự đoán mã xấu dựa học máy • Chương 2: Xây dựng liệu mã xấu • Chương 3: Đánh giá phương pháp học máy dự đốn mã xấu • Chương 4: Kết luận hướng phát triển CHƯƠNG 1: TỔNG QUAN VỀ DỰ ĐOÁN MÃ XẤU... tài liệu liên quan mã xấu dự đoán mã xấu sử dụng kỹ thuật học máy, nghiên cứu, phân tích liệu mã xấu công cụ phát mã xấu 5.2 Phương pháp thực nghiệm Sử dụng số công cụ iPlasma, PMD, … để xây dựng

Ngày đăng: 21/10/2022, 18:07

HÌNH ẢNH LIÊN QUAN

Hình 1.1 Mơ hình triển khai - Xây dựng bộ dữ liệu và dự đoán mã xấu sử dụng học máy (tt)
Hình 1.1 Mơ hình triển khai (Trang 10)
Bảng 1.1 Confusion matrix - Xây dựng bộ dữ liệu và dự đoán mã xấu sử dụng học máy (tt)
Bảng 1.1 Confusion matrix (Trang 11)
Bảng 2.1 dưới đây thống kê tổng quát số lượng mã xấu từng loại kèm với danh sách các độ đo của chúng - Xây dựng bộ dữ liệu và dự đoán mã xấu sử dụng học máy (tt)
Bảng 2.1 dưới đây thống kê tổng quát số lượng mã xấu từng loại kèm với danh sách các độ đo của chúng (Trang 13)
Bảng 2.1 Bảng tổng hợp các bộ dữ liệu về mã xấu từ năm 2009 - Xây dựng bộ dữ liệu và dự đoán mã xấu sử dụng học máy (tt)
Bảng 2.1 Bảng tổng hợp các bộ dữ liệu về mã xấu từ năm 2009 (Trang 14)
Hình 2.1 Phân bố mã xấu loại method - Xây dựng bộ dữ liệu và dự đoán mã xấu sử dụng học máy (tt)
Hình 2.1 Phân bố mã xấu loại method (Trang 15)
Hình 2.2 Phân bố mã xấu loại class - Xây dựng bộ dữ liệu và dự đoán mã xấu sử dụng học máy (tt)
Hình 2.2 Phân bố mã xấu loại class (Trang 16)
Có tổng cộng 4 kịch bản được xây dựng bên dưới. Bảng 3.1 hiển thị tổng quan về các kỹ thuật tiền xử lý dữ liệu được áp dụng  trong tất cả các tình huống - Xây dựng bộ dữ liệu và dự đoán mã xấu sử dụng học máy (tt)
t ổng cộng 4 kịch bản được xây dựng bên dưới. Bảng 3.1 hiển thị tổng quan về các kỹ thuật tiền xử lý dữ liệu được áp dụng trong tất cả các tình huống (Trang 19)
Hình3 1 Kịch bản kiểm thử 1 - Xây dựng bộ dữ liệu và dự đoán mã xấu sử dụng học máy (tt)
Hình 3 1 Kịch bản kiểm thử 1 (Trang 21)
Hình3 3 Kịch bản kiểm thử 3 - Xây dựng bộ dữ liệu và dự đoán mã xấu sử dụng học máy (tt)
Hình 3 3 Kịch bản kiểm thử 3 (Trang 22)
Hình3 4 Kịch bản kiểm thử 4 - Xây dựng bộ dữ liệu và dự đoán mã xấu sử dụng học máy (tt)
Hình 3 4 Kịch bản kiểm thử 4 (Trang 23)

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w