Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 76 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
76
Dung lượng
3,54 MB
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 LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Đà Nẵng – Năm 2022 ĐẠ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ố: 848.01.01 LUẬN VĂN THẠC SĨ Ngƣời hƣớng dẫn khoa học: TS LÊ THỊ MỸ HẠNH Đà Nẵng – Năm 2022 i LỜI CAM ĐOAN Tôi xin cam đoan cơng trình nghiên cứu riêng tơi Những kiến thức trình bày luận văn tơi tìm hiểu, nghiên cứu trình bày lại theo cách hiểu Trong q trình làm luận văn tơi có tham khảo tài liệu có liên quan ghi rõ nguồn tài liệu tham khảo Tác giả luận văn Phan Duy Hùng THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành nội ii TÓM TẮT LUẬN VĂN XÂY DỰNG BỘ DỮ LIỆU VÀ DỰ ĐOÁN MÃ XẤU SỬ DỤNG HỌC MÁY Học viên: Phan Duy Hùng Chuyên ngành: Khoa học máy tính Mã số: 60.48.01 Khóa: K41.KMT (PFIEV) Trường Đại học Bách khoa - ĐHĐN Tóm tắt – Một cách để ngăn chặn lỗi phần mềm phát mã xấu loại bỏ trước gây lỗi phần mềm Xác định mã xấu giúp nhà phát triển cải thiện chương trình họ chất lượng, đặc biệt hoạt động bảo trì Mã xấu Martin Fowler Kent Beck định nghĩa vào năm 1999 Cho đến có nhiều nghiên cứu cách phát mã xấu Hiện tương lai, nhà nghiên cứu hướng đến việc sử dụng học máy để dự đoán mã xấu Tuy nhiên, vấn đề liệu mã xấu cản trở nghiên cứu Vì vậy, tác giả xây dựng liệu mã xấu với nhiều cải tiến quy mô mẫu thử lớn, đa dạng với 13 loại mã xấu, đầy đủ độ đo mã nguồn Ngoài ra, tác giả cịn trình bày kịch thử nghiệm dự đoán mã xấu liệu mã xấu công bố Fontana năm 2017 liệu tác giả cung cấp Có thuật toán học máy kỹ thuật tiền xử lý liệu áp dụng Kết kịch đánh giá dựa độ đo ROC Curve, F1-score Hầu hết thuật toán mang lại kết khả quan Trong đó, Random Forest, Support Vector Machine, Decision Tree cho kết cao (85%-99%) Hơn nữa, việc áp dụng kỹ thuật tiền xử lý liệu nâng cao độ xác từ khoảng 60% lên khoảng 95% Từ khóa – Mã xấu; Bộ liệu mã xấu; Thuật toán học máy; Tiền xử lý liệu; Độ đo mã nguồn BUILD DATASETS AND PREDICT CODE SMELLS USING MACHINE LEARNING Abstract - One of the ways to prevent software bugs is to detect code smell and remove it before it causes software bugs Identifying code smell can help developers improve their programs in terms of quality, especially in maintenance activities Code smell was defined by Martin Fowler and Kent Beck in 1999 So far there are lots of researches on how to detect code smell Now and in the future, researchers aim to use machine learning to predict code smell However, the problem of code smell datasets is one of the obstacles of these studies Therefore, the author has built a dataset of code smell with many improvements such as large, many samples with 13 types of code smell, full of source code metrics Besides, the author also presents code smell prediction test scenarios on the code smell dataset published by Fontana in 2017 and the new dataset provided by the author There are machine learning algorithms and data preprocessing techniques applied The results of the scenarios are evaluated based on measures such as ROC Curve, F1-score Most of the algorithms give positive results In which, Random Forest, Support Vector Machine, Decision Tree gave the highest results (85%-99%) Furthermore, the application of data preprocessing techniques has improved the accuracy from about 60% to about 95% Key words – Code smell; Code smell datasets; Machine learning; Data preprocessing; Code metrics THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành nội iii MỤC LỤC LỜI CAM ĐOAN i TÓM TẮT LUẬN VĂN ii MỤC LỤC iii DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT v DANH MỤC CÁC BẢNG vi DANH MỤC CÁC HÌNH vii MỞ ĐẦU 1 Tính cấp thiết lý chọn đề tài Mục tiêu nội dung nghiên cứu Đối tượng phạm vi nghiên cứu Phương pháp nghiên cứu Ý nghĩa khoa học thực tiễn Bố cục luận văn CHƯƠNG 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 .4 1.1.2 Mã xấu 1.1.3 Các thuật toán học máy 1.1.4 Mã xấu học máy 1.1.5 Mơ hình triển khai phương pháp đo lường 1.2 Phương pháp thực 11 1.2.1 Lý thuyết tập hợp liệu 11 1.2.2 Lý thuyết kỹ thuật tiền xử lý liệu 11 1.2.3 Lý thuyết lựa chọn đặc trưng 13 1.3 Kết luận 17 CHƯƠNG XÂY DỰNG BỘ DỮ LIỆU MÃ XẤU 19 2.1 Giới thiệu liệu 19 2.2 Các công cụ đo .21 2.2.1 PMD 21 2.2.2 iPlasma 22 2.2.3 inFusion 22 2.3 Hạn chế công cụ thử nghiệm 22 2.4 Đặc tả liệu .23 THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành nội iv 2.4.1 Thu thập mã nguồn .23 2.4.2 Sử dụng công cụ iPlasma 23 2.4.3 Đặc tả liệu 24 2.5 Định nghĩa loại mã xấu dữliệu 29 2.5.1 Brain Method 29 2.5.2 Brain Class 29 2.5.3 Data Class .29 2.5.4 God Class 29 2.5.5 Schizofrenic Class 29 2.5.6 Extensive Coupling .29 2.5.7 Feature Envy 30 2.5.8 Intensive Coupling 30 2.5.9 Shotgun Surgery 30 2.6 Định nghĩa độ đo 30 2.7 Công khai liệu 30 2.8 Đánh giá kết liệu phương pháp học máy 33 2.9 Kết luận 36 CHƯƠNG ĐÁNH GIÁ CÁC PHƯƠNG PHÁP HỌC MÁY TRONG DỰ ĐOÁN MÃ XẤU 37 3.1 Áp dụng học máy dự đoán mã xấu .37 3.1.1 Các bước tiền xử lí liệu 37 3.1.2 Áp dụng thuật toán học máy 38 3.2 Đo lường, đánh giá, so sánh kết thuật toán 39 3.2.1 Tổng quát 39 3.2.2 Kịch thử nghiệm .39 3.2.3 Phân tích đánh giá kết .40 3.3 Kết luận 47 CHƯƠNG KẾT LUẬN VÀ BÀN LUẬN 48 KẾT LUẬN VÀ KHUYẾN NGHỊ .50 DANH MỤC TÀI LIỆU THAM KHẢO QUYẾT ĐỊNH GIAO ĐỀ TÀI LUẬN VĂN (Bản sao) THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành nội v DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT AUC DT LDA FP FN kNN MAR MCAR MLP MNAR RF ROC SVM SMOTE TN TP Area Under The Curve Decision Tree Linear Discriminant Analysis False Positive False Negative k-Nerest-Neighbours Missing at Random Missing Completely at Random Multilayer Perceptron Missing not at Random Random Forest Receiver Operating Characteristic Support Vector Machine Synthetic Minority Over-sampling True Negative True Positive THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành nội vi DANH MỤC CÁC BẢNG Số hiệu bảng 1.1 2.1 2.2 3.1 Tên bảng Confusion matrix Bảng tổng hợp liệu mã xấu từ năm 2009 Bảng tổng hợp mã xấu độ đo 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 Trang 10 21 27 40 Lưu hành nội vii DANH MỤC CÁC HÌNH Số hiệu hình 1.1 1.2 1.3 2.1 2.2 2.3 2.4 2.5 2.6 3.1 3.2 3.3 3.4 3.5 Tên hình Mơ hình triển khai Tổng hợp phương pháp lựa chọn đặc trưng Xác định phương pháp lựa chọn đặc trưng Áp dụng iPlasma cho mẫu code Đồ thị mối tương quan Phân bố mã xấu loại method Phân bố mã xấu loại class Kết loại mã xấu: class Kết loại mã xấu: method Kịch kiểm thử Kịch kiểm thử Kịch kiểm thử Kịch kiểm thử Kết tổng hợp kịch thử nghiệm THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Trang 16 17 24 26 31 32 34 35 42 43 44 45 46 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ự đốn mã xấu Mã xấu đề xuất vào năm 1999 Martin Fowler Kent Beck [1] phương tiện để xác định vấn đề thiết kế mã nguồn, ví dụ, lớp lớn mã trùng lặp Mã xấu gây hoạt động bảo trì tốn dễ bị lỗi Khi mã xấu dự đốn, kỹ thuật tái cấu hình áp dụng để loại bỏ mã xấu Kỹ thuật tái cấu tạo cải thiện chất lượng mã, không thay đổi hành vi phần mềm Tuy nhiên, dự đoán mã xấu nhiệm vụ tốn thời gian tài nguyên Trước đây, việc dự đoán mã xấu dựa hoàn toà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 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 Mục tiêu nội dung nghiên cứu 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 THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành nội [22] Martin White, Michele Tufano, Christopher Vendome, and Denys Poshyvanyk Deep learning code fragments for code clone detec-tion In 2016 31st IEEE/ACM International Conference on Auto-mated Software Engineering (ASE), pages 87–98 IEEE, 2016 [23] Francesca Arcelli Fontana and Marco Zanoni Code smell severity classification using machine learning techniques Knowledge-Based Systems, 128:43–58, 2017 [24] Mouna Hadj-Kacem and Nadia Bouassida A hybrid approach to detect code smells using deep learning In ENASE, pages 137–146, 2018 [25] Hui Liu, Jiahao Jin, Zhifeng Xu, Yifan Bu, Yanzhen Zou, and Lu Zhang Deep learning based code smell detection IEEE trans-actions on Software Engineering, 2019 [26] Fabiano Pecorelli, Dario Di Nucci, Coen De Roover, and Andrea De Lucia On the role of data balancing for machine learning-based code smell detection In Proceedings of the 3rd ACM SIGSOFT in-ternational workshop on machine learning techniques for software quality evaluation, pages 19–24, 2019 [27] Thirupathi Guggulothu and Salman Abdul Moiz Code smell de-tection using multi-label classification approach Software Quality Journal, 28(3):1063– 1086, 2020 [28] Zdzislaw Pawlak, Lech Polkowski, and Andrzej Skowron Rough set theory KI, 15(3):38–39, 2001 [29] Damian Andrew Tamburri and Fabio Palomba Discovering com-munity patterns in open-source: a systematic approach and its eval-uation Empirical Software Engineering, 24(4):1369–1417, 2019 [30] David Lorge Parnas Software aging Proceedings ICSE-16., 16th International Conference on Software Engineering, page 279–287, 1994 [31] Fowler Martin, Beck Kent, Brant John, Opdyke William, Roberts Don, and Erich Gamma Refactoring: Improving the Design of Ex-isting Code AddisonWesley Object Technology Series Addison-Wesley, 1999 [32] Marwen Abbes, Foutse Khomh, Yann-Gaelă Guộhộneuc, and Giu-liano Antoniol An empirical study of the impact of two antipat-terns, blob and spaghetti code, on program comprehension Pro-ceedings of the European Conference on Software Maintenance and Reengineering, CSMR, pages 181–190, 03 2011 [33] Foutse Khomh, Massimiliano Di Penta, Yann-Gaelă Guộhộneuc, and Giuliano Antoniol An exploratory study of the impact of antipat-terns on class THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành nội change- and fault-proneness Empirical Software En-gineering, 17:243–275, 06 2012 [34] Davide Spadini, Fabio Palomba, Andy Zaidman, Magiel Bruntink, and Alberto Bacchelli On the relation of test smells to software code quality 2018 IEEE International Conference on Software Maintenance and Evolution (ICSME), pages 1–12, 09 2018 [35] Aiko Yamashita and Leon Moonen Do code smells reflect im-portant maintainability aspects? IEEE International Conference on Software Maintenance, ICSM, pages 306–315, 09 2012 [36] Edward Ogheneovo On the relationship between software com-plexity and maintenance costs Journal of Computer and Commu-nications, 02:1–16, 01 2014 [37] O Ciupke Automatic detection of design problems in object-oriented reengineering pages 18–32, 1999 [38] Guilherme Travassos, Forrest Shull, Michael Fredericks, and Victor Basili Detecting defects in object-oriented designs: Using reading techniques to [39] [40] [41] [42] [43] increase software quality ACM SIGPLAN Notices, 34:47–56, 10 1999 Michele Lanza and Radu Marinescu Object-Oriented Metrics in Practice: Using Software Metrics to Characterize, Evaluate, and Improve the Design of Object-Oriented Systems 01 2006 Naveen Roperia JSmell: A Bad Smell detection tool for Java sys-tems Maharishi Dayanand University, 2009 Zhifei Chen, Lin Chen, Wanwangying Ma, Xiaoyu Zhou, Yum-ing Zhou, and Baowen Xu Understanding metric-based detectable smells in python software: A comparative study Information and Software Technology, 94, 09 2017 Karim Dhambri, Houari A Sahraoui, and Pierre Poulin Visual detection of design anomalies 2008 12th European Conference on Software Maintenance and Reengineering, pages 279–283, 2008 Guillaume Langelier, Houari Sahraoui, and Pierre Poulin Visualization-based analysis of quality for large-scale software sys-tems ase ’05 20th IEEE/ACM International Conference on Auto-mated Software Engineering, ASE 2005, pages 214–223, 01 2005 [44] M.J Munro Product metrics for automatic identification of bad smell design problems in java source-code Software Metrics, 2005 11th IEEE International Symposium, pages 15 – 15, 10 2005 THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành ni b [45] Naouel Moha, Yann-Gaelă Guộhộneuc, Anne-Francáoise Meur, and Laurence Duchien A domain analysis to specify design defects and generate detection algorithms 4961, 03 2008 [46] Fabio Palomba Textual analysis for code smell detection 37th IEEE/ACM International Conference on Software Engineering (SRC), 05 2015 [47] Mohamed Boussaa, Wael Kessentini, Marouane Kessentini, Slim Bechikh, and Soukeina Chikha Competitive coevolutionary code-smells detection 8084:5065, 08 2013 [48] Foutse Khomh, Stephane Vaucher, Yann-Gaelă Guéhéneuc, and Houari Sahraoui A bayesian approach for the detection of code and design smells Proceedings - International Conference on Quality Software, pages 305–314, 08 2009 [49] Foutse Khomh, Stephane Vaucher, Yann-Gaelă Guộhộneuc, and Houari Sahraoui Bdtex: A gqm-based bayesian approach for the detection of antipatterns Journal of Systems and Software, 84:559– 572, 04 2011 [50] Jochen Kreimer Adaptive detection of design flaws Electronic Notes in [51] [52] [53] [54] Theoretical Computer Science, 141:117–136, 12 2005 Nikolaos Tsantalis, Theodore Chaikalis, and Alexander Chatzigeor-giou Jdeodorant: Identification and removal of type-checking bad smells pages 329–331, 05 2008 Aloustapha Issiaka Maiga, Nasir Ali, Neelesh Bhattacharya, A Sa-bane, YannGaelă Guộhộneuc, Giuliano Antoniol, and Esma Aimeur Support vector machines for anti-pattern detection 2012 27th IEEE/ACM International Conference on Automated Software En-gineering, ASE 2012 - Proceedings, 09 2012 Fabio Palomba, Gabriele Bavota, Massimiliano Di Penta, Rocco Oliveto, Andrea Lucia, and Denys Poshyvanyk Detecting bad smells in source code using change history information 2013 28th IEEE/ACM International Conference on Automated Software Engi-neering, ASE 2013 - Proceedings, pages 268 278, 11 2013 Francesca Arcelli Fontana, Mika Mantylăa,ă Marco Zanoni, and Alessandro Marino Comparing and experimenting machine learn-ing techniques for code smell detection Empirical Software Engi-neering, 21, 06 2015 [55] Fabio Palomba, Gabriele Bavota, Massimiliano Di Penta, Rocco Oliveto, Denys Poshyvanyk, and Andrea De Lucia Mining version histories for detecting code smells IEEE Transactions on Software Engineering, 41(5):462–489, THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành nội 2015 [56] Fabio Palomba, Gabriele Bavota, Massimiliano Di Penta, Fausto Fasano, Rocco Oliveto, and Andrea Lucia A large-scale empirical study on the lifecycle of code smell co-occurrences Information and Software Technology, 99, 02 2018 [57] Ian Shoenberger, Mohamed Wiem Mkaouer, and Marouane Kessen-tini On the use of smelly examples to detect code smells in javascript pages 20–34, 03 2017 [58] Fabiano Pecorelli, Fabio Palomba, Dario Di Nucci, and Andrea Lucia Comparing heuristic and machine learning approaches for metric-based code smell detection 05 2019 [59] Lech Madeyski and Tomasz Lewowski Mlcq: Industry-relevant code smell data set pages 342–347, 04 2020 [60] Pmd source code analyzer project https://pmd.github io/latest/ Accessed: 202011-04 [61] Michele Lanza and Radu Marinescu Object-oriented metrics in practice: using [62] [63] [64] [65] [66] software metrics to characterize, evaluate, and im-prove the design of objectoriented systems Springer Science & Business Media, 2007 M Cristina, M Radu, F Mihancea, et al iplasma: an integrated plat-form for quality assessment of object-oriented design In Proceed-ings of the 21st IEEE International Conference on Software Main-tenance, pages 77–80, 2005 Francesca Arcelli Fontana, Elia Mariani, Andrea Mornioli, Raul Sormani, and Alberto Tonello An experience report on using code smells detection tools In 2011 IEEE fourth international con-ference on software testing, verification and validation workshops, pages 450–457 IEEE, 2011 Martin Fowler, Kent Beck, J Brant, W Opdyke, and D Roberts Refactoring: Improving the design of existing code addison-wesley professional Berkeley, CA, USA, 1999 N Poolsawad, C Kambhampati, and JGF Cleland Balancing class for performance of classification with a clinical dataset In Pro-ceedings of the World Congress on engineering, volume 1, pages 1–6, 2014 Nitesh V Chawla, Kevin W Bowyer, Lawrence O Hall, and W Philip Kegelmeyer Smote: synthetic minority over-sampling technique Journal of artificial intelligence research, 16:321–357, 2002 [67] Salvador García and Francisco Herrera Evolutionary undersam-pling for THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành nội classification with imbalanced datasets: Proposals and tax-onomy Evolutionary computation, 17(3):275–306, 2009 [68] Nicholas J Higham Computing the nearest correlation ma-trix—a problem from finance IMA journal of Numerical Analysis, 22(3):329343, 2002 [69] Francesca Arcelli Fontana, Mika V Mantylăa,ă Marco Zanoni, and Alessandro Marino Comparing and experimenting machine learn-ing techniques for code smell detection Empirical Software Engi-neering, 21(3):1143–1191, 2016 THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành nội THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành nội THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành nội THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành nội THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành nội THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành nội THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành nội THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành nội THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành nội THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành nội THƯ VIỆN TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐẠI HỌC ĐÀ NẴNG Lưu hành nội ... 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 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... đề 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 Đối... 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