## 4 Identification of Deficient Classes Within Object-Oriented Programming Languages
### Evaluation and Quality Rating of Deficient Classes  
The evaluation of software classes was done using the criteria composed of different quality aspects and corresponding software metrics with their threshold values. The aim of the evaluation was finding program entities with deficient overall quality and not on finding particular types of code smells or even faulty classes. The evaluation of classes within object-oriented programming languages started by gathering the values of selected software metrics using the Understand tool [40]. We evaluated the software solutions developed in Java, C++ and C#, since object-orientation is nowadays a widely adopted approach in software engineering [17]. Table 2 lists the evaluated software. Participating software projects are open source and are available in the SourceForge [49] online source code repository. They have been chosen  
number of identified classes exceeds 10% of all classes only for the metric LCOM (measuring the lack of cohesion). The evaluation with an individual metric was also done for software in the programming languages C++ and C#. The analyzed software in C++ results in more potentially deficient classes \begin{table}
\begin{tabular}{c c c c c c c c c c c c c} \hline \hline  & **1** & \multicolumn{3}{c}{**2**} & \multicolumn{3}{c}{**3**} & \multicolumn{3}{c}{**4**} & \multicolumn{3}{c}{**5**} & \multicolumn{3}{c}{**6**} \\ \hline  & **\#** & **\%** & **\#** & **\%** & **\#** & **\%** & **\#** & **\%** & **\#** & **\%** & **\#** & **\%** \\ \hline SLOC & 90 & **20.0** & 46 & **22.3** & 108 & **20.7** & 199 & **17.1** & 16 & 4.0 & 508 & **10.9** \\ AMS & 91 & **20.3** & 55 & **26.7** & 113 & **21.7** & 182 & **15.7** & 15 & **21.7** & 491 & **10.6** \\ NOM & 35 & 7.8 & 1 & 0.5 & 34 & 6.5 & 49 & 4.2 & 16 & 4.0 & 674 & **14.5** \\ \hline WMC & 92 & **20.5** & 38 & **18.5** & 141 & **27.1** & 169 & **15.5** & 24 & 6.5 & 474 & **10.2** \\ ACC & 65 & **14.5** & 16 & 7.8 & 122 & **23.4** & 121 & **10.4** & 13 & 3.5 & 340 & 7.3 \\ NS & 115 & **25.6** & 31 & **15.1** & 138 & **26.5** & 210 & **18.1** & 24 & 6.5 & 493 & **10.6** \\ \hline CBO & 21 & 4.7 & 26 & **12.6** & 80 & **15.4** & 54 & 4.7 & 9 & 2.4 & 322 & 6.9 \\ \hline LCOM & 36 & 8.0 & 22 & **10.7** & 19 & 3.6 & 127 & **10.9** & 156 & **41.9** & 550 & **11.4** \\ \hline \hline \end{tabular}
\end{table} 
Table 4: Number of potentially deficient classes within Notepad++ (1); Money Manager (2); 7-Zip (3); TortoiseSVN (4); FileZilla (5) and MySQL Server (6) identified by using each software metric separately. \begin{table}
\begin{tabular}{c c c c c c c c c c c c c} \hline \hline  & **1** & \multicolumn{3}{c}{**2**} & \multicolumn{3}{c}{**3**} & \multicolumn{3}{c}{**4**} & \multicolumn{3}{c}{**5**} \\ \hline  & **\#** & **\%** & **\#** & **\%** & **\#** & **\%** & **\#** & **\%** & **\#** & **\%** & **\#** & **\%** \\ \hline SLOC & 75 & **14.3** & 136 & **14.8** & 178 & 6.3 & 341 & 6.3 & 100 & **13.0** \\ AMS & 59 & **11.3** & 121 & **13.2** & 185 & 6.6 & 372 & 6.9 & 94 & **12.3** \\ NOM & 19 & 3.6 & 85 & 9.2 & 158 & 5.6 & 411 & 7.6 & 66 & 8.6 \\ \hline WMC & 105 & **20.1** & 126 & **13.7** & 240 & 8.5 & 348 & 6.4 & 79 & **10.3** \\ ACC & 90 & **17.2** & 55 & 6.0 & 236 & 8.4 & 355 & 6.6 & 36 & 4.7 \\ NS & 35 & 6.7 & 56 & 6.1 & 124 & 4.4 & 235 & 4.3 & 29 & 3.8 \\ \hline CBO & 114 & **21.8** & 126 & **13.7** & 212 & 7.5 & 398 & 7.4 & 122 & **15.9** \\ \hline LCOM & 171 & **32.7** & 273 & **29.7** & 479 & **17.0** & 1,140 & **21.1** & 302 & **39.4** \\ \hline \hline \end{tabular}
\end{table} 
Table 5: Number of potentially deficient classes within KeePass (1); OpenCBS (2) iTextSharp (3); OnlyOffice (4) and Git Extensions (5) identified by using each software metric separately. when compared to Java software. As shown in Table 4, within Money Manager 22.3% of classes exceed the threshold value of metric counting lines of code. Also, within the same software, 18.5% classes exceed the threshold of the metric expressing the sum of cyclomatic complexity of all methods within a class.