| Metric suite | Metric | Papers using it | TOT | Score |
| — | Aggregate stability | [53] | 1 | 1 | — | AODE, aggregating one dependence estimators | [24] | 1 | 1 | Aspect-based metrics | DCP, degree of crosscutting per pointcut | [23] | 1 | 1 | Aspect-based metrics | NAA, number of advices per aspect | [23] | 1 | 1 | Aspect-based metrics | Number of aspects | [23] | 1 | 1 | Aspect-based metrics | NPA, number of pointcuts per aspect | [23] | 1 | 1 | Aspect-based metrics | RAD, response for advice | [23] | 1 | 1 | — | Avg CC, average cyclomatic complexity | [5, 54] | 2 | 2 | — | Avg. LOC per method | [54] | 1 | 1 | — | Bandwidth | [24] | 1 | 1 | — | Base classes (IFANIN) | [35] | 1 | 1 | — | Branching complexity (Sneed Metric) | [35] | 1 | 1 | — | Branch stability | [53] | 1 | 1 | — | Bug patterns | [14] | 1 | 1 | — | CA, afferent coupling | [5, 21] | 2 | 2 | — | CAM, cohesion among methods of a class | [21] | 1 | 1 | — | CBM, coupling between methods | [21] | 1 | 1 | — | CC, McCabe’s cyclomatic complexity | [14, 24, 44, 51], [6, 16, 32, 44, 48], [23, 29, 31, 35, 47] | 14 | 12 | — | CE, efferent coupling | [5, 21, 25] | 3 | 3 | — | CHANGE, number changed in the class | [5, 25, 26, 43] | 4 | 4 | — | CHC, class coupling complexity | [46] | 1 | 1 | Chidamber and Kemerer | CBO, coupling between objects | [5, 14, 15, 25, 26], [21, 27, 32, 44], [20, 28, 36, 39], [23, 29, 35, 47, 50] | 18 | 16 | Chidamber and Kemerer | DIT, depth of inheritance tree | [5, 14, 26, 43, 44], [20, 21, 27, 32], [23, 28, 29, 39], [35, 47] | 15 | 13 | Chidamber and Kemerer | LCOM, lack of cohesion in methods | [5, 14, 26, 43, 44], [20, 27, 28, 32], [23, 36, 39, 46, 47] | 14 | 12 | Chidamber and Kemerer | NOC, number of children | [5, 14, 26, 43, 44], [20, 27, 32, 39], [23, 29, 35, 47] | 13 | 11 | Chidamber and Kemerer | RFC, response for class | [5, 15, 19, 26, 43], [14, 21, 27, 44], [20, 29, 32, 39], [23, 46, 47, 50] | 17 | 15 | Chidamber and Kemerer | WMC, weighted methods per class | [5, 21, 26, 43, 44], [16, 20, 27, 32], [23, 29, 39, 47] | 13 | 11 | — | CI, clone instances | [19] | 1 | 1 | — | CLOC, comment lines of code | [5, 24, 25, 28, 44], [35] | 6 | 6 | — | Clone coverage | [14] | 1 | 1 | — | Cocol’s metric | [48] | 1 | 1 | Code smells | Feature Envy (# per KLOC of code) | [44] | 1 | 1 | Code smells | God Class (# per KLOC of code) | [44] | 1 | 1 | — | Code-to-comment ratio | [14, 15] | 2 | 2 | — | Complexity average by class | [31] | 1 | 1 | — | Complexity average by file | [31] | 1 | 1 | — | Complexity average by function | [31] | 1 | 1 | — | CONS, number of constructors | [5, 25] | 3 | 1 | — | Coupling and cohesion | [14] | 1 | 1 | — | Coupling dispersion | [35] | 1 | 1 | — | Coupling intensity | [35] | 1 | 1 | — | CPC, class coupling complexity | [46] | 1 | 1 | — | CSA, class size (attributes) | [5, 25] | 2 | 2 | — | CSO, class size (operations) | [5, 25] | 2 | 2 | — | CSOA, class size (operations + attributes) | [5, 25] | 2 | 2 | — | Cyclic, number of cyclic dependencies | [25] | 1 | 1 | — | Cyclomatic complexity in classes | [31] | 1 | 1 | — | Cyclomatic complexity in functions | [31] | 1 | 1 | — | DAM, data access metric (Card Metric) | [21, 47] | 2 | 2 | — | Data complexity (Chapin Metric) | [35] | 1 | 1 | — | Dataflow | [14] | 1 | 1 | — | Dcy, number of dependencies | [5] | 1 | 1 | — | Dcy, number of transitive dependencies | [5] | 1 | 1 | — | Decisional complexity (McClure) | [35] | 1 | 1 | — | Divergent change | [34] | 1 | 1 | — | Dominator tree metrics | [20] | 1 | 1 | — | Dpt, number of dependents | [5] | 1 | 1 | Dynamic metrics | DCBO, dynamic coupling between objects | [9] | 1 | 1 | Dynamic metrics | MTBF, mean time between failure | [9] | 1 | 1 | Dynamic metrics | MTTF, the mean time to failure | [9] | 1 | 1 | — | ECC, external class complexity (CIC + ICP) | [46] | 1 | 1 | — | Essential complexity | [35] | 1 | 1 | — | Fan-in | [35] | 1 | 1 | — | Fan-out | [35] | 1 | 1 | Halstead | Halstead bugs (B) | [5, 14, 23, 25, 48], [47] | 6 | 4 | Halstead | Halstead difficulty (D) | [5, 14, 25, 44, 51], [23, 47, 48] | 8 | 6 | Halstead | Halstead effort (E) | [5, 14, 25, 44, 51], [23, 47, 48] | 8 | 6 | Halstead | Halstead length (N) | [5, 14, 24, 25, 51], [23, 44, 47, 48] | 9 | 7 | Halstead | Halstead vocabulary (n) | [5, 14, 25, 44, 51], [23, 47, 48] | 8 | 6 | Halstead | Halstead volume (V) | [5, 14, 25, 44, 51], [6, 23, 44, 47, 48] | 10 | 8 | History sensitive metrics | pLOC | [40] | 1 | 1 | History sensitive metrics | rdocLOC | [40] | 1 | 1 | History sensitive metrics | rniLOC | [40] | 1 | 1 | History sensitive metrics | rpdLOC | [40] | 1 | 1 | History sensitive metrics | rpiLOC | [40] | 1 | 1 | History sensitive metrics | TL | [40] | 1 | 1 | — | I, instability | [28] | 1 | 1 | — | IC, inheritance coupling | [21] | 1 | 1 | — | ICC, internal class complexity (CAC + CMC) | [46] | 1 | 1 | — | Indentation as proxy for complexity metric | [44] | 1 | 1 | — | Inner, number of inner classes | [5] | 1 | 1 | — | Jensen’s Nf | [24] | 1 | 1 | — | JLOC, JavaDoc lines of code | [5, 25, 28] | 3 | 3 | — | Kaur’s metric | [25] | 1 | 1 | — | LCOM2, lack of cohesion in methods | [21, 29, 35] | 3 | 3 | — | LCOM3, lack of cohesion of methods | [21, 35] | 2 | 2 | — | Level, level order | [5] | 1 | 1 | — | Level, level order | [5] | 1 | 1 | Li and Henry (L&H) | DAC | [39, 43] | 2 | 2 | Li and Henry (L&H) | DIT, depth of inheritance tree | [25] | 1 | 1 | Li and Henry (L&H) | LCOM, lack of cohesion in methods | [25] | 1 | 1 | Li and Henry (L&H) | MPC, message passing coupling | [25, 39, 43, 46] | 4 | 4 | Li and Henry (L&H) | NOC, number of children | [25] | 1 | 1 | Li and Henry (L&H) | NOM | [39] | 1 | 1 | Li and Henry (L&H) | RFC, response for a class | [25] | 1 | 1 | Li and Henry (L&H) | SIZE2 | [39] | 1 | 1 | Li and Henry (L&H) | SLOC, source lines of code | [25] | 1 | 1 | Li and Henry (L&H) | WMC, weighted method per class | [25] | 1 | 1 | — | LOC, lines of code | [15, 24–26], [14, 44, 51], [6, 21, 23, 31, 32], [35, 50] | 15 | 11 | — | Logic | [14] | 1 | 1 | — | MC, method coupling | [46] | 1 | 1 | — | MFA, measure of functional abstraction | [21] | 1 | 1 | — | MI, maintainability index | [6, 14, 25, 44, 51], [30] | 6 | 4 | Misra’s metrics | AAC, average attributes per class | [27] | 1 | 1 | Misra’s metrics | AC, attribute complexity | [27] | 1 | 1 | Misra’s metrics | ACC, average class complexity | [27] | 1 | 1 | Misra’s metrics | ACF, average coupling factor | [27] | 1 | 1 | Misra’s metrics | AMC, average method complexity | [27] | 1 | 1 | Misra’s metrics | AMCC, average method complexity per class | [27] | 1 | 1 | Misra’s metrics | CLC, class complexity | [27] | 1 | 1 | Misra’s metrics | CC, code complexity | [27] | 1 | 1 | Misra’s metrics | CWC, coupling weight for a class | [27] | 1 | 1 | Misra’s metrics | MC, method complexity | [27] | 1 | 1 | Misra’s metrics | OMMIC, coupling | [44] | 1 | 1 | — | MOA, measure of aggregation | [21, 28] | 2 | 2 | Mood’s metrics | AHF, attribute hiding factor | [23] | 1 | 1 | Mood’s metrics | AIF, attribute inheritance factor | [23] | 1 | 1 | Mood’s metrics | CF, coupling factor | [23] | 1 | 1 | Mood’s metrics | MHF, method hiding factor | [23] | 1 | 1 | Mood’s metrics | MIF, method inheritance factor | [23] | 1 | 1 | Mood’s metrics | PF, polymorphism factor | [23] | 1 | 1 | — | NAA, number of attributes added | [25] | 1 | 1 | Narsimhan’s metrics | AID, average interaction density | [23] | 1 | 1 | Narsimhan’s metrics | IID, incoming interaction density | [23] | 1 | 1 | Narsimhan’s metrics | OID, outgoing interaction density | [23] | 1 | 1 | — | Nesting depth | [14] | 1 | 1 | — | Nesting (Max Nest) | [35] | 1 | 1 | — | NIM, instance methods | [35] | 1 | 1 | — | NIV, instance variables | [35] | 1 | 1 | — | NOAC, number of operations added | [5, 25] | 2 | 2 | — | NOI, number of outgoing invocations | [19] | 1 | 1 | — | NOOC, number of operations overridden | [5] | 1 | 1 | — | NOM, number of methods | [26, 28, 31, 43] | 4 | 4 | — | Noncommenting lines of code (lines only containing space, tab, and CR are ignored) | [31] | 1 | 1 | — | Noncommenting lines of new code | [31] | 1 | 1 | — | NOP, number of polymorphic methods | [28] | 1 | 1 | — | NOPA, number of public attributes | [35] | 1 | 1 | — | NPATH | [32] | 1 | 1 | — | NPM, number of public methods | [5, 21, 28, 29] | 4 | 4 | — | Number of attributes added | [5] | 1 | 1 | — | Number of code characters | [24] | 1 | 1 | — | Number of classes (including nested classes, interfaces, enums, and annotations) | [31, 35] | 2 | 2 | — | Number of commands | [5, 25] | 2 | 2 | — | Number of comment characters | [24] | 1 | 1 | — | Number of directories | [31] | 1 | 1 | — | Number of files | [31, 33] | 2 | 2 | — | Number of God Classes | [34] | 1 | 1 | — | Number of queries | [5, 25] | 2 | 2 | — | Ocmax, maximum operation complexity | [25] | 1 | 1 | — | OSmax, maximum operation size | [25] | 1 | 1 | — | Override ratio | [35] | 1 | 1 | — | Paths | [35] | 1 | 1 | — | PDcy, number of package dependencies | [5, 25] | 2 | 2 | — | RAM, RAM + CPU memory usage | [48] | 1 | 1 | — | RCI, ratio of cohesion interactions | [46] | 1 | 1 | — | Shotgun Surgery | [34] | 1 | 1 | SM, structural measures | OMMIC, coupling | [44] | 1 | 1 | SM, structural Measures | TCC, tight class cohesion | [35, 44] | 2 | 2 | SM, structural Measures | WMC1, size of classes | [44] | 1 | 1 | — | Structure stability | [53] | 1 | 1 | — | Spatial complexity metrics | [49] | 1 | 1 | — | STAT, number of statements | [5, 25, 31, 35] | 4 | 4 | — | TCLOC, total comment lines of code | [19] | 1 | 1 | — | Test results and coverage | [14] | 1 | 1 | — | TLLOC, total logical lines of code | [19] | 1 | 1 | — | TNOS, total number of statements | [19] | 1 | 1 | — | Token count | [23] | 1 | 1 | — | Total number of characters | [24] | 1 | 1 | — | Version distance | [53] | 1 | 1 | — | Version stability | [53] | 1 | 1 | — | Vytovtov’s metric | [48] | 1 | 1 | — | Welker and Oman | [25] | 1 | 1 | — | WMC, McCabe’s weighted method count | [14, 15, 25, 38], [28, 36, 50] | 7 | 7 | — | WMCU, McCabe’s weighted method count-unweighted | [15, 50] | 2 | 2 | — | WOC, weight of classes | [35] | 1 | 1 |
|
|