Machine/Deep Learning for Software Engineering: A Systematic Literature Review

被引:26
作者
Wang, Simin [1 ]
Huang, Liguo [1 ]
Gao, Amiao [1 ]
Ge, Jidong [2 ]
Zhang, Tengfei [2 ]
Feng, Haitao [2 ]
Satyarth, Ishna [1 ]
Li, Ming [2 ]
Zhang, He [2 ]
Ng, Vincent [3 ]
机构
[1] Southern Methodist Univ, Dept Comp Sci, Dallas, TX 75275 USA
[2] Nanjing Univ, Nanjing 210093, Jiangsu, Peoples R China
[3] Univ Texas Dallas, Human Language Technol Res Inst, Richardson, TX 75083 USA
关键词
Task analysis; Software; Data models; Complexity theory; Codes; Predictive models; Analytical models; Software engineering; machine learning; deep learning; DEFECT PREDICTION; BUG LOCALIZATION; CLASSIFICATION; REPRESENTATION; PERFORMANCE; MODELS; REPRODUCIBILITY; COMPONENTS; AGREEMENT; TUTORIAL;
D O I
10.1109/TSE.2022.3173346
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Since 2009, the deep learning revolution, which was triggered by the introduction of ImageNet, has stimulated the synergy between Software Engineering (SE) and Machine Learning (ML)/Deep Learning (DL). Meanwhile, critical reviews have emerged that suggest that ML/DL should be used cautiously. To improve the applicability and generalizability of ML/DL-related SE studies, we conducted a 12-year Systematic Literature Review (SLR) on 1,428 ML/DL-related SE papers published between 2009 and 2020. Our trend analysis demonstrated the impacts that ML/DL brought to SE. We examined the complexity of applying ML/DL solutions to SE problems and how such complexity led to issues concerning the reproducibility and replicability of ML/DL studies in SE. Specifically, we investigated how ML and DL differ in data preprocessing, model training, and evaluation when applied to SE tasks, and what details need to be provided to ensure that a study can be reproduced or replicated. By categorizing the rationales behind the selection of ML/DL techniques into five themes, we analyzed how model performance, robustness, interpretability, complexity, and data simplicity affected the choices of ML/DL models.
引用
收藏
页码:1188 / 1231
页数:44
相关论文
共 397 条
[1]   How to "DODGE" Complex Software Analytics [J].
Agrawal, Amritanshu ;
Fu, Wei ;
Chen, Di ;
Shen, Xipeng ;
Menzies, Tim .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2021, 47 (10) :2182-2194
[2]   Using Deep Reinforcement Learning for Exploratory Performance Testing of Software Systems With Multi-Dimensional Input Spaces [J].
Ahmad, Tanwir ;
Ashraf, Adnan ;
Truscan, Dragos ;
Domi, Andi ;
Porres, Ivan .
IEEE ACCESS, 2020, 8 :195000-195020
[3]  
Ahmad W., 2020, P 58 ANN M ASS COMPU, P4998, DOI 10.18653/v1/2020.acl-main.449
[4]  
Ahmad WU, 2021, 2021 CONFERENCE OF THE NORTH AMERICAN CHAPTER OF THE ASSOCIATION FOR COMPUTATIONAL LINGUISTICS: HUMAN LANGUAGE TECHNOLOGIES (NAACL-HLT 2021), P2655
[5]   Predicting bug-fixing time: A replication study using an open source software project [J].
Akbarinasaji, Shirin ;
Caglayan, Bora ;
Bener, Ayse .
JOURNAL OF SYSTEMS AND SOFTWARE, 2018, 136 :173-186
[6]   Code Localization in Programming Screencasts [J].
Alahmadi, Mohammad ;
Khormi, Abdulkarim ;
Parajuli, Biswas ;
Hassel, Jonathan ;
Haiduc, Sonia ;
Kumar, Piyush .
EMPIRICAL SOFTWARE ENGINEERING, 2020, 25 (02) :1536-1572
[7]  
Allamanis M, 2016, PR MACH LEARN RES, V48
[8]   code2vec: Learning Distributed Representations of Code [J].
Alon, Uri ;
Zilberstein, Meital ;
Levy, Omer ;
Yahav, Eran .
PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2019, 3 (POPL)
[9]   Software Engineering for Machine Learning: A Case Study [J].
Amershi, Saleema ;
Begel, Andrew ;
Bird, Christian ;
DeLine, Robert ;
Gall, Harald ;
Kamar, Ece ;
Nagappan, Nachiappan ;
Nushi, Besmira ;
Zimmermann, Thomas .
2019 IEEE/ACM 41ST INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING: SOFTWARE ENGINEERING IN PRACTICE (ICSE-SEIP 2019), 2019, :291-300
[10]   Bug Localization with Combination of Deep Learning and Information Retrieval [J].
An Ngoc Lam ;
Anh Tuan Nguyen ;
Hoan Anh Nguyen ;
Nguyen, Tien N. .
2017 IEEE/ACM 25TH INTERNATIONAL CONFERENCE ON PROGRAM COMPREHENSION (ICPC), 2017, :218-229