Kÿ thuật lựa chọn đặc trưng trong dự đoán code-smell dựa trên học máy
Feature selection techniques in code smell prediction based on machine learning
Abstract
Các nghiên cứu thử nghiệm nhằm phát hiện code-smell trong mã nguồn bằng cách sử dụng các kỹ thuật học
máy dựa trên tập dữ liệu độ đo mã nguồn đã cho thấy nhiều kết quả hứa hẹn. Các thử nghiệm đã bước đầu đưa các kỹ thuật lựa chọn đặc trưng của các tập dữ liệu vào các mô hình học máy, kết quả thử nghiệm cho thấy các kỹ thuật lựa chọn đặc trưng đã có những tác động tích cực đến hiệu suất dự đoán của các mô hình. Tuy nhiên, chưa có nghiên cứu nào so sánh hiệu suất dự đoán giữa các kỹ thuật lựa chọn đặc trưng trên cùng một mô hình trong dự đoán code-smell. Bài báo này sẽ cung cấp các kết quả thử nghiệm nhằm đánh giá toàn diện các kỹ thuật lựa chọn đặc trưng bằng cách so sánh hiệu suất dự đoán code-smell giữa các kỹ thuật này khi được áp dụng với cùng một mô hình học máy; đồng thời, bài báo này cũng cho biết kỹ thuật lựa chọn đặc trưng phù hợp nhất đối với một mô hình phát hiện code-smell dựa trên học máy.
References
M. Lehman, “Programs, life cycles, and laws of software evolution,” Proceedings of the IEEE, vol. 68, pp. 1060–1076, 1980.
D. Parnas, “Software aging.” IEEE Comput. Soc. Press, 1994, pp. 279–287.
P. Avgeriou and P. Kruchten, “Managing technical debt in software engineering,” Dagstuhl Seminar 16162, 2016.
F. Khomh, M. D. Penta, Y.-G. Guéhéneuc, and G. Antoniol, “An exploratory study of the impact of antipatterns on class change- and fault-proneness,” Empirical Software Engineering, vol. 17, pp. 243–275, 8 2012.
D. Spadini, F. Palomba, A. Zaidman, M. Bruntink, and A. Bacchelli, “On the relation of test smells to software code quality,” 2018 IEEE International Conference on Software Maintenance and Evolution (ICSME), pp. 1–12, 8 2018.
A. Yamashita and L. Moonen, “Do code smells reflect important maintainability aspects?” IEEE International Conference on Software Maintenance, ICSM, pp. 306–315, 8 2012.
F. A. Fontana, M. V. Mantyl ¨ a, M. Zanoni, and A. Marino, “Comparing and experimenting machine learning techniques for code smell detection,” Empirical Software Engineering, vol. 21, pp. 1143–1191, 6 2016.
F. A. Fontana and M. Zanoni, “Code smell severity classification using machine learning techniques,” Knowledge-Based Systems, vol. 128, pp. 43–58, 7 2017.
U. Mansoor, M. Kessentini, B. R. Maxim, and K. Deb, “Multi-objective code-smells detection using good and bad design examples,” Software Quality Journal, vol. 25, pp. 529–552, 6 2017.
P. M. N and M. M, “Predicting the severity of open source bug reports using unsupervised and supervised techniques,” International Journal of Open Source Software and Processes, vol. 10, pp. 1–15, 1 2019.
M. Y. Mhawish and M. Gupta, “Generating codesmell prediction rules using decision tree algorithm and software metrics,” International Journal of Computer Sciences and Engineering, vol. 7, pp. 41–48, 5 2019.
——, “Predicting code smells and analysis of predictions: Using machine learning techniques and software
metrics,” Journal of Computer Science and Technology, vol. 35, pp. 1428–1445, 11 2020.
S. Dewangan and R. S. Rao, Code Smell Detection Using Classification Approaches, 2022.
B. N. Thanh, M. N. N. H, H. L. T. My, and B. N. Thanh, “Ml-codesmell: A code smell prediction dataset for machine learning approaches.” Association for Computing Machinery, 12 2022, pp. 368–374.
L. Breiman, “Random forests,” pp. 5–32, 2001.
D. A. McCarty, H. W. Kim, and H. K. Lee, “Evaluation of light gradient boosted machine learning technique in large scale land use and land cover classification,” Environments, vol. 7, p. 84, 10 2020.
P. Cunningham and S. J. Delany, “k-nearest neighbour classifiers - a tutorial,” ACM Computing Surveys, vol. 54, pp. 1–25, 7 2022.
S. Sperandei, “Understanding logistic regression analysis,” Biochemia Medica, vol. 24, pp. 12–18, 2014.
C.-Y. J. Peng, K. L. Lee, and G. M. Ingersoll, “An introduction to logistic regression analysis and reporting,” The Journal of Educational Research, vol. 96, pp. 3–14, 9 2002.
G. Fung and O. L. Mangasarian, “Semi-supervised support vector machines for unlabeled data classification,” pp. 1–14, 2001.