# Machine Learning-Based Methods for Code Smell Detection: A Survey
## Appendix A
\begin{tabular}{c c} \hline \hline
**Article No.** & **S/W Metrics** \\ \hline ARTN17 & Number of Parameters (NOParam), the number of lines of code (LOC), Depth of Inheritance Tree (DIT) \\ \hline ARTN18 & Metric-based approach \\ \hline ARTN19 & Structural metrics, like size and complexity metrics. \\ \hline  & LOC, NOM, NOPK, LOCNAMM, NOCS, NOA, and WMC, NOMNAMM CYCLO, WMCNAMM, MAXNTESTING, AMW, WOC, NOP, NOAV, CLNAMM, ATLD, NOLV, AMWNAMM LCOM5, TCC FANOUT, FDP, RFC, CBO, ATFD, CINT, CDISP, CFNAMM, CC, CM LAA, NOAM, NOPA DIT, NOI, NOC, NMO, NIM, LAA, MaMCL, MeMCL, NODA, NOPVA, NOII, NOPRA, NOPA, NOFA, NOSA, NONFSA, NOABM, NoNFNSA, NOCM, NOFMSM, NoFSM, NONCM, NONFNABM, NONFNSM, NODM, NOPM, NOPM, NONAM, and NOSM \\ \hline ARTN21 & LOC, AST-based \\ \hline ARTN22 & LCOM RFC NAM NADCs, OPT, and TSCs \\ \hline ARTN23 & LOC, CBO, DIT, RFC, WMC, NOC, LCOM, CC, Dependencies (Dcy and Dcy), Javadoc function (fj), MHF, cyclomatic complexity (Ocavg), Javadoc Javadoc methods (jm), line of code (JLOC), AHF \\ \hline ARTN24 & NA \\ \hline ARTN25 & No. of object-oriented metrics \\ \hline ARTN26 & Measured through Spearman’s \\ \hline ARTN27 & LOC, CC, NOC, RFC, DIT, WMC, CBO, and LCOM \\ \hline ARTN28 & Static code metrics-based approach \\ \hline ARTN29 & 61 source code metrics were computed at class level and 82—at method level \\ \hline ARTN30 & LCOM, NOPA, NMNOPARAM, ELOC, LOC\_METHODDO, NOA, NOM, NP, and WMC \\ \hline ARTN31 & NA \\ \hline ARTN32 & LOC, NOM, NOCS, NOPK, LOCNAMM, NOA, NOMNAMM CYCLO, WMCNAMM, WMC, MAXNTESTING, WOC, CLNAMM, NOP, NOAV, ATLD, NOLV, AMWNAMM, LCOM5, TCC, FANOUT, AMW, ATFD, RFC, CBO, CFNAMM, FDP, CINT, CDISP, CM, CC, NOAM, NOPA DIT, LAA, NOI, NMO, NIM, NOC, and NOII \\ \hline ARTN33 & 82 software metrics and 61 software metrics in the class-level code smells \\ \hline ARTN34 & NOC, NOCH, WMC, IPM, CC, NBI, NOM, NOCH, DIT, LCOM, PPIV, LCCL, APD, XML, BSMC, NTO, WKL, GPS, BMAP, SQL, NET, and I/O \\ \hline ARTN35 & 82 features (software metrics), MLC evaluation metrics \\ \hline ARTN36 & In the method-level code smells, 82 software metrics are computed; in the class-level code smells, 61 software metrics are computed \\ \hline ARTN37 & There are 82 measures in the created MLD training dataset, 25 are class metrics, 5 are package metrics, and 6 are project-level metrics \\ \hline  & Weighted methods per class, Number of Methods, Depth of the Inheritance Tree, and response for a class. Coupling between object classes, lack of cohesion in methods, the normalized version of LCOM inheritance coupling, coupling between methods, average method complexity, number of public methods for a class, also known as CIS (class interface size), data access metric, measure of aggregation, measure of functional abstraction, cohesion among methods of a class, cyclomatic complexity, lines of code, afferent coupling, different coupling, maximum cyclomatic complexity, average cyclomatic complexity \\ \hline ARTN39 & LOC, NAD, McCabe, NOC, CBO, LCOM, CC, LCOM, WMC, NOPARAM, NOM, RFC, DIT, and NMO \\ \hline ARTN40 & Android-oriented metrics, complexity metrics, object-oriented metrics, and dimensional metrics \\ \hline ARTN41 & 61 software metrics for the class-level and 82 software metrics for the method-level code smells \\ \hline ARTN42 & For God Class, a set of 61 metrics was used, and for the other two code smells \\ \hline \hline \end{tabular}  Note: NA means ’Not Available’.