Machine learning techniques for code smell detection: A systematic literature review and meta-analysis
Tài liệu tham khảo
Lehman, 1980, Programs, life cycles, and laws of software evolution, Proc. IEEE, 68, 1060, 10.1109/PROC.1980.11805
Tamburri, 2018, Discovering community patterns in open-source: a systematic approach and its evaluation, Empir. Softw. Eng., 1
Parnas, 1994, Software aging, 279
Avgeriou, 2016, Managing technical debt in software engineering (dagstuhl seminar 16162), 6
Cunningham, 1993, The wycash portfolio management system, ACM SIGPLAN OOPS Messenger, 4, 29, 10.1145/157710.157715
Fowler, 1999
Kruchten, 2012, Technical debt: from metaphor to theory and practice, IEEE Softw., 29, 18, 10.1109/MS.2012.167
Seaman, 2011, Measuring and monitoring technical debt, Adv. Comput., 82, 44
Abbes, 2011, An empirical study of the impact of two antipatterns, blob and spaghetti code, on program comprehension, 181
Khomh, 2012, An exploratory study of the impact of antipatterns on class change- and fault-proneness, Empir. Softw. Eng., 17, 243, 10.1007/s10664-011-9171-y
Palomba, 2017, On the diffuseness and the impact on maintainability of code smells: a large scale empirical investigation, Empir. Softw. Eng., 1
Spadini, 2018, On the relation of test smells to software code quality, 1
Pascarella, 2019, Fine-grained just-in-time defect prediction, J. Syst. Softw., 10.1016/j.jss.2018.12.001
Banker, 1993, Software complexity and maintenance costs, Commun. ACM, 36, 81, 10.1145/163359.163375
Yamashita, 2012, Do code smells reflect important maintainability aspects?, 306
Sjøberg, 2013, Quantifying the effect of code smells on maintenance effort, IEEE Trans. Softw. Eng., 39, 1144, 10.1109/TSE.2012.89
Tufano, 2017, When and why your code starts to smell bad (and whether the smells go away), IEEE Trans. Softw. Eng., 10.1109/TSE.2017.2653105
Tufano, 2016, An empirical investigation into the nature of test smells, 4
Palomba, 2018, A large-scale empirical study on the lifecycle of code smell co-occurrences, Inf. Softw. Technol., 99, 1, 10.1016/j.infsof.2018.02.004
Arcoverde, 2011, Understanding the longevity of code smells: preliminary results of an explanatory survey, 33
Chatzigeorgiou, 2010, Investigating the evolution of bad smells in object-oriented code, 106
Lozano, 2007, Assessing the impact of bad smells using historical information, 31
Peters, 2012, Evaluating the lifespan of code smells using software repository mining, 411
Palomba, 2019, On the impact of code smells on the energy consumption of mobile applications, Inf. Softw. Technol., 105, 43, 10.1016/j.infsof.2018.08.004
Vassallo, 2018, Continuous code quality: are we (really) doing that?, 790
Vassallo, 2018, Continuous refactoring in ci: a preliminary study on the perceived advantages and barriers, 564
Vassallo, 2018, Context is king: the developer perspective on the usage of static analysis tools, 38
Pascarella, 2018, How is video game development different from software development in open source?, 392
Pascarella, 2018, Self-reported activities of android developers
Bavota, 2015, An experimental investigation on the innate relationship between quality and refactoring, J. Syst. Softw., 107, 1, 10.1016/j.jss.2015.05.024
Palomba, 2014, Do they really smell bad? a study on developers’ perception of bad code smells, 101
Palomba, 2016, Automatic test case generation: what if test code quality matters?, 130
Palomba, 2017, The scent of a smell: an extensive comparison between textual and structural smells, IEEE Trans. Softw. Eng.
Palomba, 2017, Does refactoring of test smells induce fixing flaky tests?, 1
Palomba, 2019, The smell of fear: on the relation between test smells and flaky tests, Journal of Empirical Software Engineering, 10.1007/s10664-019-09683-z
Palomba, 2017, Toward a smell-aware bug prediction model, IEEE Trans. Softw. Eng., 10.1109/TSE.2017.2770122
Yamashita, 2013, Do developers care about code smells? An exploratory survey, 242
Bavota, 2014, Methodbook: recommending move method refactorings via relational topic models, IEEE Trans. Softw. Eng., 40, 671, 10.1109/TSE.2013.60
Marinescu, 2004, Detection strategies: metrics-based rules for detecting design flaws, 350
Moha, 2010, Decor: a method for the specification and detection of code and design smells, IEEE Trans. Softw. Eng., 36, 20, 10.1109/TSE.2009.50
Morales, 2017, On the use of developers? context for automatic refactoring of software anti-patterns, J. Syst. Softw., 128, 236, 10.1016/j.jss.2016.05.042
Munro, 2005, Product metrics for automatic identification of ”bad smell” design problems in java source-code, 15
Palomba, 2016, A textual-based technique for smell detection, 1
Palomba, 2015, Mining version histories for detecting code smells, IEEE Trans. Softw. Eng., 41, 462, 10.1109/TSE.2014.2372760
Tsantalis, 2009, Identification of move method refactoring opportunities, IEEE Trans. Software Eng., 35, 347, 10.1109/TSE.2009.1
Palomba, 2018, Automatic test smell detection using information retrieval techniques, 311
Palomba, 2019, Beyond technical aspects: how do community smells influence the intensity of code smells?, IEEE Trans. Softw. Eng.
Fernandes, 2016, A review-based comparative study of bad smell detection tools, 18:1
Zhang, 2011, Code bad smells: a review of current knowledge, J. Softw. Maint. Evol., 23, 179, 10.1002/smr.521
Fontana, 2016, Antipattern and code smell false positives: Preliminary conceptualization and classification, 1, 609
Mäntylä, 2006, Subjective evaluation of software evolvability using code smells: an empirical study, Empir. Softw. Eng., 11, 395, 10.1007/s10664-006-9002-8
Fontana, 2012, Automatic detection of bad smells in code: an experimental assessment., J. Object Technol., 11
Fontana, 2016, Comparing and experimenting machine learning techniques for code smell detection, Empir. Softw. Eng., 21, 1143, 10.1007/s10664-015-9378-4
Alpaydin, 2014
Wangberg, 2010
Vale, 2014, Bad smells in software product lines: a systematic review, 84
Rasool, 2015, A review of code smell mining techniques, J. Softw. Evol. Process, 27, 867, 10.1002/smr.1737
Panichella, 2014, Cross-project defect prediction models: L’union fait la force, 164
Ghotra, 2015, Revisiting the impact of classification techniques on the performance of defect prediction models, 789
Tantithamthavorn, 2017, An empirical comparison of model validation techniques for defect prediction models, IEEE Trans. Softw.Eng., 43, 1, 10.1109/TSE.2016.2584050
Zimmermann, 2009, Cross-project defect prediction: a large scale experiment on data vs. domain vs. process, 91
B. Kitchenham, S. Charters, Guidelines for Performing Systematic Literature Reviews in Software Engineering, School of Computer Science and Mathematics, Keele University, UK, 2007.
Khan, 2014, Intercultural challenges in offshore software development outsourcing relationships: an exploratory study using a systematic literature review, IET Softw., 8, 10.1049/iet-sen.2013.0012
Tarhan, 2017, On the use of ontologies in software process assessment: a systematic literature review, 2
Gasparic, 2016, What recommendation systems for software engineering recommend: a systematic literature review, J. Syst. Softw., 113, 101, 10.1016/j.jss.2015.11.036
Vilela, 2017, Integration between requirements engineering and safety analysis: a systematic literature review, J. Syst. Softw., 125, 68, 10.1016/j.jss.2016.11.031
Wohlin, 2014, Guidelines for snowballing in systematic literature studies and a replication in software engineering, 38:1
Krippendorff, 2004
Antoine, 2014, Weighted krippendorff’s alpha is a more reliable metrics for multi-coders ordinal annotations: experimental studies on emotion, opinion and coreference annotation., 550
Brown, 1998
Pressman, 2010
Nuñez-Varela, 2017, Source code metrics: a systematic mapping study, J. Syst. Softw., 128, 164, 10.1016/j.jss.2017.03.044
Li, 1993, Object-oriented metrics that predict maintainability, J. Syst. Softw., 23, 111, 10.1016/0164-1212(93)90077-B
Chidamber, 1994, A metrics suite for object oriented design, IEEE Trans. Softw. Eng., 20, 476, 10.1109/32.295895
Perez, 2016, Framing program comprehension as fault localization, J. Softw., 28, 840
Padilha, 2014, On the effectiveness of concern metrics to detect code smells: an empirical study, 656
Figueiredo, 2008, On the maintainability of aspect-oriented software: aconcern-oriented measurement framework, 183
Figueiredo, 2011, On the impact of crosscutting concern projection on code measurement, 81
Catolino, 2017, Developer-related factors in change prediction: an empirical assessment, 186
Catolino, 2018, Enhancing change prediction models using developer-related factors, J. Syst. Softw., 10.1016/j.jss.2018.05.003
Catolino, 2018, Ensemble techniques for software change prediction: apreliminary investigation, 25
Di Nucci, 2017, A developer centered bug prediction model, IEEE Trans. Softw. Eng.
Bavota, 2012, When does a refactoring induce bugs? an empirical study, 104
Safavian, 1991, A survey of decision tree classifier methodology, IEEE Trans Syst Man Cybern, 21, 660, 10.1109/21.97458
Cortes, 1995, Support vector machine, Mach. Learn., 20, 273, 10.1007/BF00994018
Corazza, 2013, Using tabu search to configure support vector regression for effort estimation, Empir. Softw. Eng., 18, 506, 10.1007/s10664-011-9187-3
Hall, 2012, A systematic literature review on fault prediction performance in software engineering, IEEE Trans. Softw. Eng., 38, 1276, 10.1109/TSE.2011.103
Nucci, 2017, Dynamic selection of classifiers in bug prediction: an adaptive method, IEEE Trans. Emerg. Topic.Comput. Intell., 1, 202, 10.1109/TETCI.2017.2699224
Di Nucci, 2018, Evaluating the adaptive selection of classifiers for cross-project bug prediction, 48
Thomas, 2013, The impact of classifier configuration and classifier combination on bug localization, IEEE Trans. Softw. Eng., 39, 1427, 10.1109/TSE.2013.27
Tantithamthavorn, 2018, The impact of automated parameter optimization on defect prediction models, IEEE Trans. Softw. Eng., PP
Hsu, 2003, A practical guide to support vector classification
He, 2015, An empirical study on software defect prediction with a simplified metric set, Inf. Softw. Technol., 59, 170, 10.1016/j.infsof.2014.11.006
Watanabe, 2008, Adapting a fault prediction model to allow inter languagereuse, 19
Devijver, 1982
Hall, 2011, Developing fault-prediction models: what the research can show industry, IEEE Softw., 28, 96, 10.1109/MS.2011.138
Di Nucci, 2018, Detecting code smells using machine learning techniques: are we there yet?
Tempero, 2010, The qualitas corpus: a curated collection of java code for empirical studies, 336
Palomba, 2015, Landfill: an open dataset of code smells with public evaluation, 482
Cooper, 2009
Slavin, 1986, Best-evidence synthesis: an alternative to meta-analytic and traditional reviews, Educat.Res., 15, 5, 10.3102/0013189X015009005
Field, 2001, Meta-analysis of correlation coefficients: a monte carlo comparison of fixed-and random-effects methods., Psychol. Method., 6, 161, 10.1037/1082-989X.6.2.161
Borenstein, 2010, A basic introduction to fixed-effect and random-effects models for meta-analysis, Res. Synth. Method., 1, 97, 10.1002/jrsm.12
Kitchenham, 2015, 4
Hosseini, 2018, A systematic literature review and meta-analysis on cross project defect prediction, IEEE Trans. Softw. Eng.
Rafique, 2013, The effects of test-driven development on external quality and productivity: a meta-analysis, IEEE Trans. Softw. Eng., 39, 835, 10.1109/TSE.2012.28
Hannay, 2009, The effectiveness of pair programming: a meta-analysis, Inf. Softw. Technol., 51, 1110, 10.1016/j.infsof.2009.02.001
Lipsey, 2001
Greenland, 1992, Methods for trend estimation from summarized dose-response data, with applications to meta-analysis, Am. J. Epidemiol., 135, 1301, 10.1093/oxfordjournals.aje.a116237
Tacconelli, 2010, Systematic reviews: Crd’s guidance for undertaking reviews in health care, Lancet Infecti. Dis., 10, 226, 10.1016/S1473-3099(10)70065-7
Bland, 2000, The odds ratio, BMJ, 320, 1468, 10.1136/bmj.320.7247.1468
Turhan, 2009, On the relative value of cross-company and within-company data for defect prediction, Empir. Softw. Eng., 14, 540, 10.1007/s10664-008-9103-7
Peters, 2013, Better cross company defect prediction, 409
Taibi, 2017, How developers perceive smells in source code: a replicated study, Inf. Softw. Technol., 92, 223, 10.1016/j.infsof.2017.08.008
Simons, 2015, Search-based refactoring: metrics are not enough, 47
Candela, 2016, Using cohesion and coupling for software remodularization: is it enough?, ACM Trans. Softw. Eng.Methodol. (TOSEM), 25, 24, 10.1145/2928268
Kovalenko, 2018, Mining file histories: should we consider branches?, 202
Fontana, 2015, Towards a prioritization of code debt: a code smell intensity index, 16
Di Nucci, 2017, Dynamic selection of classifiers in bug prediction: an adaptive method, IEEE Trans. Emerg. Topic.Comput. Intell., 1, 202, 10.1109/TETCI.2017.2699224