How and why we end up with complex methods: a multi-language study
Tóm tắt
Từ khóa
Tài liệu tham khảo
Aniche M, Bavota G, Treude C, Gerosa MA, van Deursen A (2018) Code smells for Model-View-Controller architectures. Empir Softw Eng 23:2121–2147
Avelino G, Passos L, Hora A, Valente MT (2016) A novel approach for estimating truck factors. In: 24th International Conference on Program Comprehension (ICPC), pp 1–10
Avelino G, Passos L, Hora A, Valente MT (2019) Measuring and analyzing code authorship in 1 + 118 open source projects. Sci Comput Program 176 (1):14–32
Ayalew Y, Mguniin K (2013) An assessment of changeability of open source software. Computer and Information Science 6(3):68–79
Borges H, Hora A, Valente MT (2016) Understanding the factors that impact the popularity of GitHub repositories. In: International conference on software maintenance and evolution (ICSME), pp 334–344
Bray MW, Brune K, Fisher D, Foreman J, Gerken M (1997) C4 software technology reference guide - a prototype
Brito A, Valente MT, Xavier L, Hora A (2020) You broke my code: understanding the motivations for breaking changes in apis. Empir Softw Eng 25:1458–1492
Chatzigeorgiou A, Manakos A (2010) Investigating the evolution of bad smells in object-oriented code. In: International conference on the quality of information and communications technology. IEEE, pp 106–115
Chatzigeorgiou A, Manakos A (2014) Investigating the evolution of code smells in object-oriented systems. Innov Syst Softw Eng 10(1):3–18
Chen Z, Chen L, Ma W, Xu B (2016) Detecting code smells in python programs. In: International conference on software analysis, testing and evolution (SATE), pp 18–23
Chi-Square - College of Education - NIU (2021) https://www.cedu.niu.edu/~walker/statistics/Chi%20Square%202.pdf
Code Climate (2021) https://docs.codeclimate.com/docs/cyclomatic-complexity
Cruzes DS, Dyba T (2011) Recommended steps for thematic synthesis in software engineering. In: 2011 International symposium on empirical software engineering and measurement (ESEM), pp 275–284
Di Nucci D, Palomba F, Tamburri DA, Serebrenik A, De Lucia A (2018) Detecting code smells using machine learning techniques: Are we there yet?. In: International conference on software analysis, evolution and reengineering (SANER), pp 612–621
Dias M, Bacchelli A, Gousios G, Cassou D, Ducasse S (2015) Untangling fine-grained code changes. In: International conference on software analysis, evolution, and reengineering (SANER), pp 341–350
Fard AM, Mesbah A (2013) JSNOSE: Detecting JavaScript Code Smells. In: International working conference on source code analysis and manipulation (SCAM), pp 116–125
Fischer M, Pinzger M, Gall H (2003) Populating a release history database from version control and bug tracking systems. In: International conference on software maintenance (ICSM), pp 23–32
Fontana F A, Braione P, Zanoni M (2012) Automatic detection of bad smells in code: An experimental assessment. J Object Technology 11(2):5–1
Fowler M (2018) Refactoring: Improving the design of existing code. Addison-Wesley Professional
Grund F, Chowdhury SA, Bradley N, Hall B, Holmes R (2021) CodeShovel: Constructing Method-Level Source Code Histories. In: International conference on software enginnering (ICSE)
Herzig K, Just S, Zeller A (2013) It’s not a bug, it’s a feature: How misclassification impacts bug prediction. In: International conference on software engineering (ICSE), pp 392–401
Hora A, Anquetil N, Ducasse S, Allier S (2012) Domain specific warnings: Are they any better?. In: 2012 28th IEEE International conference on software maintenance (ICSM), pp 441–450
Hora A, Robbes R (2020) Characteristics of method extractions in java: A large scale empirical study. Empir Softw Eng 25:1798–1833
Host E W, Ostvold B M (2007) The programmer’s lexicon, volume i: The verbs. In: International working conference on source code analysis and manipulation, pp 193–202
IBM Rational Asset Analyzer (2021) https://www.ibm.com/docs/en/raa/6.1?topic=metrics-cyclomatic-complexityhttps://www.ibm.com/docs/en/raa/6.1?topic=metrics-cyclomatic-complexity
Jbara A, Matan A, Feitelson DG (2014) High-mcc functions in the linux kernel. Empir Softw Eng 19:1261–1298
Johannes D, Khomh F, Antoniol G (2019) A large-scale empirical study of code smells in JavaScript projects. Software Quality 27:1271–1314
Kendall MG (1948) Rank correlation methods. Griffin
Khomh F, Di Penta M, Gueheneuc Y (2009) An exploratory study of the impact of code smells on software change-proneness. In: Working conference on reverse engineering, pp 75–84
Khomh F, Vaucher S, Guéhéneuc Y, Sahraoui H (2009) A bayesian approach for the detection of code and design smells. In: International conference on quality software, pp 305–314
Kim S, Whitehead, EJ, Zhang Y (2008) Classifying software changes: Clean or buggy?. IEEE Trans Softw Eng 34(2):181–196
Lanza M (2001) The evolution matrix: Recovering software evolution using software visualization techniques. International workshop on principles of software evolution (IWPSE)
Lehman MM (1996) Laws of software evolution revisited. In: European workshop on software process technology. Springer, pp 108–124
Lehman MM, Ramil JF, Wernick PD, Perry DE, Turski WM (1997) Metrics and laws of software evolution-the nineties view. In: International software metrics symposium. IEEE, pp 20–32
Liu H, Gong X, Liao L, Li B (2018) Evaluate how cyclomatic complexity changes in the context of software evolution. In: Annual computer software and applications conference (COMPSAC), vol 02, pp 756–761
Maneerat N, Muenchaisri P (2011) Bad-smell prediction from software design model using machine learning techniques. In: International joint conference on computer science and software engineering (JCSSE), pp 331–336
Martin RC (2009) Clean code: a handbook of agile software craftsmanship. Pearson Education
Microsoft Visual Studio (2021) https://docs.microsoft.com/en-us/visualstudio/code-quality/code-metrics-cyclomatic-complexityhttps://docs.microsoft.com/en-us/visualstudio/code-quality/code-metrics-cyclomatic-complexity
Moha N, Gueheneuc Y, Duchien L, Le Meur A (2010) Decor: A method for the specification and detection of code and design smells. IEEE Trans Softw Eng 36(1):20–36
Olbrich S, Cruzes DS, Basili V, Zazworka N (2009) The evolution and impact of code smells: A case study of two open source systems. In: International symposium on empirical software engineering and measurement. IEEE, pp 390–400
Olbrich SM, Cruzes DS, Sjøberg DIK (2010) Are all code smells harmful? a study of god classes and brain classes in the evolution of three open source systems. In: International conference on software maintenance. IEEE, pp 1–10
Palomba F, Bavota G, Di Penta M, Oliveto R, De Lucia A, Poshyvanyk D (2013) Detecting bad smells in source code using change history information. In: International conference on automated software engineering (ASE), pp 268–278
Palomba F, Bavota G, Di Penta M, Oliveto R, De Lucia A (2014) Do they really smell bad? a study on developers’ perception of bad code smells. In: International conference on software maintenance and evolution. IEEE, pp 101–110
Perforce (2021) https://www.perforce.com/blog/qac/what-cyclomatic-complexity
Peters R, Zaidman A (2012) Evaluating the lifespan of code smells using software repository mining. In: European conference on software maintenance and reengineering, pp 411–416
Ratzinger J, Sigmund T, Gall HC (2008) On the relation of refactorings and software defect prediction. In: International working conference on mining software repositories, pp 35–38
Robles G, Herraiz I, German DM, Izquierdo-Cortazar D (2012) Modification and developer metrics at the function level: Metrics for the study of the evolution of a software project. In: International workshop on emerging trends in software metrics (WETSoM), pp 49–55
Saboury A, Musavi P, Khomh F, Antoniol G (2017) An empirical study of code smells in JavaScript projects. In: International conference on software analysis, evolution and reengineering (SANER), pp 294–305
Silva D, da Silva JP, Santos G, Terra R, Valente MT (2020) Refdiff 2.0: A multi-language refactoring detection tool. IEEE Trans Softw Eng 1 (1):1–17
Silva D, Tsantalis N, Valente MT (2016) Why we refactor? confessions of GitHub contributors. In: International symposium on the foundations of software engineering, pp 858–870
Silva D, Valente MT (2017) RefDiff: detecting refactorings in version histories. In: International conference on mining software repositories, pp 269–279
Silva H, Valente M T (2018) What’s in a GitHub star? understanding repository starring practices in a social coding platform. J Syst Softw 146:112–129
Sjøberg DIK, Yamashita A, Anda BCD, Mockus A, Dybå T (2013) Quantifying the effect of code smells on maintenance effort. IEEE Trans Softw Eng 39(8):1144–1156
Skolka P, Staicu C-A, Pradel M (2019) Anything to Hide? Studying Minified and Obfuscated Code in the Web. In: The world wide web conference, pp 1735–1746
SonarQube (2021) https://docs.sonarqube.org/latest/user-guide/metric-definitions
Spadini D, Aniche M, Bacchelli A (2018) Pydriller: Python framework for mining software repositories. In: Joint meeting on european software engineering conference and symposium on the foundations of software engineering, pp 908–911
Stroggylos K, Spinellis D (2007) Refactoring–does it improve software quality?. In: International workshop on software quality (WoSQ’07: ICSE Workshops 2007), pp 10–10
Taibi D, Janes A, Lenarduzzi V (2017) How developers perceive smells in source code: A replicated study. Inf Softw Technol 92:223–235
Tsantalis N, Mansouri M, Eshkevari LM, Mazinanian D, Dig D (2018) Accurate and efficient refactoring detection in commit history. In: International conference on software engineering, pp 483–494
Tufano M, Palomba F, Bavota G, Oliveto R, Di Penta M, De Lucia A, Poshyvanyk D (2015) When and why your code starts to smell bad. In: International conference on software engineering, vol 1. IEEE, pp 403–414
Tufano M, Palomba F, Bavota G, Oliveto R, Di Penta M, De Lucia A, Poshyvanyk D (2017) When and why your code starts to smell bad (and whether the smells go away). IEEE Trans Softw Eng 43(11):1063–1088
van Emden E, Moonen L (2002) Java quality assurance by detecting code smells. In: Working conference on reverse engineering, 2002. Proceedings., pp 97–106
Vavrová N, Zaytsev V (2017) Does Python Smell Like Java? Tool Support for Design Defect Discovery in Python. Computing Research Repository, abs/1703.10882
Yamashita A, Moonen L (2012) Do code smells reflect important maintainability aspects?. In: International conference on software maintenance (ICSM), pp 306–315
Yamashita A, Moonen L (2013) Exploring the impact of inter-smell relations on software maintainability: An empirical study. In: International conference on software engineering (ICSE), pp 682–691
Yamashita A, Moonen L (2013) Do developers care about code smells? an exploratory survey. In: Working conference on reverse engineering (WCRE). IEEE, pp 242–251
Yue S, Pilon P, Cavadias G (2002) Power of the mann–kendall and spearman’s rho tests for detecting monotonic trends in hydrological series. J Hydrol 259(1):254–271