Code Smells Thresholds Optimization: Defect Prediction as a Case Study
Abstract
1. Introduction
2. Background and Related Works
2.1. Code Smells
2.2. Utilization of Code Smells for Defect Prediction
2.3. Optimize Code Smells Thresholds
2.4. Learning Through Non-Differentiable Operators
3. Problem Description
3.1. Defect Prediction
3.2. Code Smells Thresholds Optimization
- Research objective. Let us formally define the research objective of this paper. Let be the set of all code smells being considered. A code smell is defined by a function that applies to specific metrics and their corresponding thresholds. Let be the set of all metric values, and let be the ordered set of the metrics considered for a specific code smell . For the given code smell there is the ordered set of thresholds corresponding to the metric set . The function can be formally represented as follows:
- The expression represents a condition that compares a metric with its corresponding threshold using relational operators such as , or .
- The symbol denotes a logical operator, where ∧ stands for AND, ∨ stands for OR and ¬ stands for Not, used to combine the conditions.
- is the ordered set of metrics relevant to code smell , and
- is the ordered set of thresholds relevant to code smell , optimized specifically for sample .
4. Methodology
4.1. Overview
4.2. Detailed Architecture
4.2.1. Thresholds Generator (TG)
4.2.2. Code Smells Calculator (CSC)
4.2.3. Classifier
4.2.4. Cooperative Critic
- Why this signal is informative. The Cooperative Critic is asked to separate a true per-sample BCE loss value from a version perturbed by uniform noise on . When the Classifier is accurate and confident on most samples, its per-sample losses are tightly concentrated near zero, while the noised versions form a wider and offset distribution; the two are then easily separable. When the Classifier is inaccurate or uncertain, its per-sample losses are more broadly distributed, the noised counterpart overlaps them substantially, and the discrimination task approaches chance. Minimizing the Cooperative Critic’s loss on ‘real’ inputs is therefore monotonically related to driving the Classifier’s loss distribution toward zero, which is precisely the signal we want to propagate back to the TG. This style of reasoning has a well-established counterpart in the noise-contrastive estimation and density-ratio-via-classification literature [49,50], where a binary Classifier trained to separate one distribution from a reference distribution is used to characterize the former.
- Why . The width of the noise window governs the difficulty of the Cooperative Critic’s task, which in turn governs how informative its gradient is as a signal about the Classifier’s loss distribution. Two limiting cases frame the choice. If the window is very small, real and noised losses are nearly indistinguishable regardless of Classifier quality, and the Cooperative Critic’s gradient carries almost no information about whether the Classifier has improved. If the window is very large, real and noised losses are separable at essentially any stage of training, the Cooperative Critic reaches saturation early, and its gradient again becomes uninformative. Between these extremes lies a range in which the separability of real from noised is a function of the concentration of the Classifier’s loss distribution—which is exactly the signal we want the Cooperative Critic to expose to the TG. The value sits inside this range given that the Classifier uses Binary Cross-Entropy on probabilistic outputs, whose per-sample loss values in practice span roughly the interval and concentrate near zero for confident-correct predictions. At this scale, is large enough to matter on easy samples (where real losses near zero are clearly distinguishable from noised losses around –) and small enough to remain non-trivial on harder samples (where real losses are larger and the noised distribution overlaps meaningfully with them). This kind of moderate-scale additive perturbation is the standard design knob in noise-contrastive training schemes, where the noise distribution’s spread is tuned relative to the data distribution’s own spread rather than to a universal constant.
4.2.5. Training Process
- Updating the Classifier’s parameters. The training process begins with the TG receiving a batch of input samples. For each sample in the batch, this component of our architecture produces a set of thresholds and sends them to the Code Smells Calculator. The CSC output is the input of the Classifier, which predicts the existence of bugs in the original code. The Classifier is then updated using the BCE loss function presented in Equation (1).
- Updating the Cooperative Critic’s parameters. Upon obtaining the Classifier’s loss function value, we create the latter’s noised version and provide both to the Cooperative Critic. The component is tasked with determining which of the values is ‘real’. The Cooperative Critic’s loss function is presented in Equation (2).
- Updating the Thresholds Generator’s parameters. The TG’s loss function combines those of the Classifier and the Cooperative Critic: , where is the Binary Cross-Entropy function, denotes the Cooperative Critic’s output, is the Classifier’s output, and y is the true label of the analyzed sample (a value of 1 indicates the code contains bugs). As explained above, this loss function ensures that as the Classifier’s loss decreases, so does the Thresholds Generator’s loss, prompting the Thresholds Generator to optimize its parameters to produce thresholds that lead to more accurate bug predictions.
5. Evaluation
5.1. Experimental Setup
5.1.1. Selected Code Smells
5.1.2. Data Description
5.1.3. Preprocessing Steps
- is the normalized metric value.
- m is the origin metric value.
- is the minimum metric value in the version v of project p.
- is the maximum metric value in the version v of project p.
5.1.4. Training Details
5.1.5. Evaluation Metrics
5.1.6. Baseline Comparisons
5.2. Results
6. Threats to Validity
6.1. Internal Validity
6.2. External Validity
6.3. Construct Validity
7. Conclusions and Future Work
Author Contributions
Funding
Data Availability Statement
Conflicts of Interest
References
- Becker, P.; Fowler, M.; Beck, K.; Brant, J.; Opdyke, W.; Roberts, D. Refactoring: Improving the Design of Existing Code; Addison-Wesley Professional: Boston, MA, USA, 1999. [Google Scholar]
- Brown, W.H.; Malveau, R.C.; McCormick, H.W.S.; Mowbray, T.J. AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis; John Wiley & Sons, Inc.: Hoboken, NJ, USA, 1998. [Google Scholar]
- Piotrowski, P.; Madeyski, L. Software Defect Prediction Using Bad Code Smells: A Systematic Literature Review. In Lecture Notes on Data Engineering and Communications Technologies; Springer: Berlin/Heidelberg, Germany, 2020; Volume 40, pp. 77–99. [Google Scholar]
- Ma, W.; Chen, L.; Zhou, Y.; Xu, B. Do We Have a Chance to Fix Bugs When Refactoring Code Smells? In Proceedings of the 2016 International Conference on Software Analysis, Testing and Evolution (SATE), Kunming, China, 3–4 November 2016; pp. 24–29. [Google Scholar] [CrossRef]
- Taba, S.E.S.; Khomh, F.; Zou, Y.; Hassan, A.E.; Nagappan, M. Predicting Bugs Using Antipatterns. In Proceedings of the 2013 IEEE International Conference on Software Maintenance, Eindhoven, The Netherlands, 22–28 September 2013; pp. 270–279. [Google Scholar] [CrossRef]
- Sotto-Mayor, B.; Kalech, M. Cross-project smell-based defect prediction. Soft Comput. 2021, 25, 14171–14181. [Google Scholar] [CrossRef]
- Sotto-Mayor, B.; Elmishali, A.; Kalech, M.; Abreu, R. Exploring Design smells for smell-based defect prediction. Eng. Appl. Artif. Intell. 2022, 115, 105240. [Google Scholar] [CrossRef]
- Foucault, M.; Palyart, M.; Falleri, J.R.; Blanc, X. Computing contextual metric thresholds. In Proceedings of the 29th Annual ACM Symposium on Applied Computing, Gyeongju, Republic of Korea, 24–28 March 2014; pp. 1120–1125. [Google Scholar]
- Shatnawi, R.; Li, W.; Swain, J.; Newman, T. Finding software metrics threshold values using ROC curves. J. Softw. Maint. Evol. Res. Pract. 2010, 22, 1–16. [Google Scholar] [CrossRef]
- Oliveira, P.; Valente, M.T.; Lima, F.P. Extracting relative thresholds for source code metrics. In Proceedings of the 2014 Software Evolution Week-IEEE Conference on Software Maintenance, Reengineering, and Reverse Engineering (CSMR-WCRE), Antwerp, Belgium, 3–6 February 2014; pp. 254–263. [Google Scholar]
- Alves, T.L.; Ypma, C.; Visser, J. Deriving metric thresholds from benchmark data. In Proceedings of the 2010 IEEE International Conference on Software Maintenance, Timișoara, Romania, 12–18 September 2010. [Google Scholar]
- Ferreira, K.A.; Bigonha, M.A.; Bigonha, R.S.; Mendes, L.F.; Almeida, H.C. Identifying thresholds for object-oriented software metrics. J. Syst. Softw. 2012, 85, 244–257. [Google Scholar] [CrossRef]
- Fontana, F.A.; Ferme, V.; Zanoni, M.; Yamashita, A. Automatic metric thresholds derivation for code smell detection. In Proceedings of the IEEE/ACM 6th International Workshop on Emerging Trends in Software Metrics, Florence, Italy, 17 May 2015; pp. 44–53. [Google Scholar]
- Liu, H.; Liu, Q.; Niu, Z.; Liu, Y. Dynamic and automatic feedback-based threshold adaptation for code smell detection. IEEE Trans. Softw. Eng. 2015, 42, 544–558. [Google Scholar] [CrossRef]
- Palomba, F.; Zanoni, M.; Fontana, F.A.; De Lucia, A.; Oliveto, R. Smells like teen spirit: Improving bug prediction performance using the intensity of code smells. In Proceedings of the 2016 IEEE International Conference on Software Maintenance and Evolution (ICSME), Raleigh, NC, USA, 2–7 October 2016. [Google Scholar]
- Moha, N.; Gueheneuc, Y.G.; Duchien, L.; Le Meur, A.F. DECOR: A Method for the Specification and Detection of Code and Design Smells. IEEE Trans. Softw. Eng. 2009, 36, 20–36. [Google Scholar] [CrossRef]
- Marinescu, C.; Marinescu, R.; Mihancea, P.; Ratiu, D.; Wettel, R. iPlasma: An Integrated Platform for Quality Assessment of Object-Oriented Design. In Proceedings of the IEEE International Conference on Software Maintenance-Industrial & Tool Volume, Budapest, Hungary, 25–30 September 2005. [Google Scholar]
- Danphitsanuphan, P.; Suwantada, T. Code Smell Detecting Tool and Code Smell-Structure Bug Relationship. In Proceedings of the 2012 Spring Congress on Engineering and Technology, Xi’an, China, 27–30 May 2012; pp. 1–5. [Google Scholar] [CrossRef]
- Tsantalis, N.; Chaikalis, T.; Chatzigeorgiou, A. JDeodorant: Identification and Removal of Type-Checking Bad Smells. In Proceedings of the 2008 European Conference on Software Maintenance and Reengineering, Athens, Greece, 1–4 April 2008. [Google Scholar] [CrossRef]
- Suryanarayana, G.; Samarthyam, G.; Sharma, T. Refactoring for Software Design Smells: Managing Technical Debt; Morgan Kaufmann: Burlington, MA, USA, 2014. [Google Scholar]
- Paterson, D.; Campos, J.; Abreu, R.; Kapfhammer, G.M.; Fraser, G.; McMinn, P. An Empirical Study on the Use of Defect Prediction for Test Case Prioritization. In Proceedings of the 2019 12th IEEE Conference on Software Testing, Validation and Verification, Xi’an, China, 22–27 April 2019; pp. 346–357. [Google Scholar] [CrossRef]
- Wang, S.; Liu, T.; Tan, L. Automatically learning semantic features for defect prediction. In Proceedings of the 38th International Conference on Software Engineering, Austin, TA, USA, 14–22 May 2016; pp. 297–308. [Google Scholar]
- Li, J.; He, P.; Zhu, J.; Lyu, M.R. Software defect prediction via convolutional neural network. In Proceedings of the 2017 IEEE International Conference on Software Quality, Reliability and Security (QRS), Prague, Czech Republic, 25–29 July 2017; IEEE: Piscataway, NJ, USA, 2017; pp. 318–328. [Google Scholar]
- Hoang, T.; Dam, H.K.; Kamei, Y.; Lo, D.; Ubayashi, N. Deepjit: An end-to-end deep learning framework for just-in-time defect prediction. In Proceedings of the 2019 IEEE/ACM 16th International Conference on Mining Software Repositories (MSR), Montréal, QC, Canada, 26–27 May 2019; IEEE: Piscataway, NJ, USA, 2019; pp. 34–45. [Google Scholar]
- Feng, Z.; Guo, D.; Tang, D.; Duan, N.; Feng, X.; Gong, M.; Shou, L.; Qin, B.; Liu, T.; Jiang, D.; et al. Codebert: A pre-trained model for programming and natural languages. In Proceedings of the Findings of the Association for Computational Linguistics: EMNLP 2020, Online Event, 16–20 November 2020; pp. 1536–1547. [Google Scholar]
- Sheng, V.S.; Ling, C.X. Thresholding for making classifiers cost-sensitive. In Proceedings of the Aaai, Boston, MA, USA, 16–20 July 2006; Volume 6, pp. 476–481. [Google Scholar]
- Zou, Q.; Xie, S.; Lin, Z.; Wu, M.; Ju, Y. Finding the best classification threshold in imbalanced classification. Big Data Res. 2016, 5, 2–8. [Google Scholar] [CrossRef]
- Pleiss, G.; Raghavan, M.; Wu, F.; Kleinberg, J.; Weinberger, K.Q. On fairness and calibration. In Proceedings of the 31st International Conference on Neural Information Processing Systems; Curran Associates Inc.: Red Hook, NY, USA, 2017. [Google Scholar]
- Arcelli Fontana, F.; Mäntylä, M.V.; Zanoni, M.; Marino, A. Comparing and experimenting machine learning techniques for code smell detection. Empir. Softw. Eng. 2016, 21, 1143–1191. [Google Scholar] [CrossRef]
- Di Nucci, D.; Palomba, F.; Tamburri, D.A.; Serebrenik, A.; De Lucia, A. Detecting code smells using machine learning techniques: Are we there yet? In Proceedings of the 2018 IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER), Campobasso, Italy, 20–23 March 2018; IEEE: Piscataway, NJ, USA, 2018; pp. 612–621. [Google Scholar]
- Kusner, M.J.; Hernández-Lobato, J.M. Gans for sequences of discrete elements with the gumbel-softmax distribution. arXiv 2016, arXiv:1611.04051. [Google Scholar] [CrossRef]
- Yu, L.; Zhang, W.; Wang, J.; Yu, Y. Seqgan: Sequence generative adversarial nets with policy gradient. In Proceedings of the AAAI Conference on Artificial Intelligence, San Francisco, CA, USA, 4–9 February 2017; Volume 31. [Google Scholar]
- Arjovsky, M.; Chintala, S.; Bottou, L. Wasserstein generative adversarial networks. In Proceedings of the International Conference on Machine Learning, Sydney, NSW, Australia, 6–11 August 2017; PMLR: New York, NY, USA, 2017; pp. 214–223. [Google Scholar]
- Gulrajani, I.; Ahmed, F.; Arjovsky, M.; Dumoulin, V.; Courville, A. Improved training of wasserstein gans. In Proceedings of the 31st International Conference on Neural Information Processing Systems; Curran Associates Inc.: Red Hook, NY, USA, 2017. [Google Scholar]
- Konda, V.R.; Tsitsiklis, J.N. Actor-critic algorithms. In Proceedings of the 13th International Conference on Neural Information Processing Systems; MIT Press: Cambridge, MA, USA, 1999. [Google Scholar]
- Mnih, V.; Badia, A.P.; Mirza, M.; Graves, A.; Lillicrap, T.; Harley, T.; Silver, D.; Kavukcuoglu, K. Asynchronous methods for deep reinforcement learning. In Proceedings of the International Conference on Machine Learning, New York, NY, USA, 20–22 June 2016; PMLR: New York, NY, USA, 2016; pp. 1928–1937. [Google Scholar]
- Xie, J.; Lu, Y.; Gao, R.; Zhu, S.C.; Wu, Y.N. Cooperative training of descriptor and generator networks. IEEE Trans. Pattern Anal. Mach. Intell. 2018, 42, 27–45. [Google Scholar] [CrossRef] [PubMed]
- Lessmann, S.; Baesens, B.; Mues, C.; Pietsch, S. Benchmarking Classification Models for Software Defect Prediction: A Proposed Framework and Novel Findings. IEEE Trans. Softw. Eng. 2008, 34, 485–496. [Google Scholar] [CrossRef]
- Nagappan, N.; Ball, T. Use of relative code churn measures to predict system defect density. In Proceedings of the 27th International Conference on Software Engineering, St. Louis, MO, USA, 15–21 May 2005; pp. 284–292. [Google Scholar]
- Radjenović, D.; Heričko, M.; Torkar, R.; Živkovič, A. Software fault prediction metrics: A systematic literature review. Inf. Softw. Technol. 2013, 55, 1397–1418. [Google Scholar] [CrossRef]
- Fernandes, E.; Oliveira, J.; Vale, G.; Paiva, T.; Figueiredo, E. A review-based comparative study of bad smell detection tools. In Proceedings of the 20th International Conference on Evaluation and Assessment in Software Engineering, Limerick, Ireland, 1–3 June 2016; pp. 1–12. [Google Scholar]
- Paiva, T.; Damasceno, A.; Figueiredo, E.; Sant’Anna, C. On the evaluation of code smells and detection tools. J. Softw. Eng. Res. Dev. 2017, 5, 7. [Google Scholar] [CrossRef]
- Hozano, M.; Garcia, A.; Fonseca, B.; Costa, E. Are you smelling it? Investigating how similar developers detect code smells. Inf. Softw. Technol. 2018, 93, 130–146. [Google Scholar] [CrossRef]
- Ha, D.; Dai, A.; Le, Q.V. Hypernetworks. arXiv 2016, arXiv:1609.09106. [Google Scholar]
- Shazeer, N.; Mirhoseini, A.; Maziarz, K.; Davis, A.; Le, Q.; Hinton, G.; Dean, J. Outrageously large neural networks: The sparsely-gated mixture-of-experts layer. arXiv 2017, arXiv:1701.06538. [Google Scholar]
- Bengio, Y.; Léonard, N.; Courville, A. Estimating or propagating gradients through stochastic neurons for conditional computation. arXiv 2013, arXiv:1308.3432. [Google Scholar] [CrossRef]
- Neftci, E.O.; Mostafa, H.; Zenke, F. Surrogate gradient learning in spiking neural networks. IEEE Signal Process. Mag. 2019, 36, 51–63. [Google Scholar] [CrossRef]
- Gorishniy, Y.; Rubachev, I.; Khrulkov, V.; Babenko, A. Revisiting deep learning models for tabular data. Adv. Neural Inf. Process. Syst. 2021, 34, 18932–18943. [Google Scholar]
- Gutmann, M.; Hyvärinen, A. Noise-contrastive estimation: A new estimation principle for unnormalized statistical models. In Proceedings of the Thirteenth International Conference on Artificial Intelligence and Statistics, JMLR Workshop and Conference Proceedings, Sardinia, Italy, 13–15 May 2010; pp. 297–304. [Google Scholar]
- Sugiyama, M.; Suzuki, T.; Kanamori, T. Density Ratio Estimation in Machine Learning; Cambridge University Press: Cambridge, UK, 2012. [Google Scholar]
- Lin, T.Y.; Goyal, P.; Girshick, R.; He, K.; Dollár, P. Focal loss for dense object detection. In Proceedings of the IEEE International Conference on Computer Vision, Venice, Italy, 22–29 October 2017; pp. 2980–2988. [Google Scholar]
- Shrivastava, A.; Gupta, A.; Girshick, R. Training region-based object detectors with online hard example mining. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, Las Vegas, NV, USA, 27–30 June 2016; pp. 761–769. [Google Scholar]
- Oizumi, W.; Sousa, L.; Oliveira, A.; Garcia, A.; Agbachi, A.B.; Oliveira, R.; Lucena, C. On the identification of design problems in stinky code: Experiences and tool support. J. Braz. Comput. Soc. 2018, 24, 13. [Google Scholar] [CrossRef]
- Sharma, T. Designite—A Software Design Quality Assessment Tool. 2016. Available online: https://zenodo.org/records/2566832 (accessed on 28 April 2025).
- Kamei, Y.; Shihab, E.; Adams, B.; Hassan, A.E.; Mockus, A.; Sinha, A.; Ubayashi, N. A large-scale empirical study of just-in-time quality assurance. IEEE Trans. Softw. Eng. 2012, 39, 757–773. [Google Scholar] [CrossRef]
- Nevendra, M.; Singh, P. TRGNet: A deep transfer learning approach for software defect prediction. Expert Syst. Appl. 2025, 282, 127799. [Google Scholar] [CrossRef]
- Anand, K.; Jena, A.K.; Das, H.; Askar, S.S.; Abouhawwash, M. Software defect prediction using wrapper-based dynamic arithmetic optimization for feature selection. Connect. Sci. 2025, 37, 2461080. [Google Scholar] [CrossRef]
- Zimmermann, T.; Nagappan, N.; Gall, H.; Giger, E.; Murphy, B. Cross-project defect prediction: A large scale experiment on data vs. domain vs. process. In Proceedings of the 7th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering, Amsterdam, The Netherlands, 24–28 August 2009; pp. 91–100. [Google Scholar]


| Code Smell Name | Description | Calculation Formula |
|---|---|---|
| Lazy Class | A class does not have a single, well-defined responsibility. | LOC < T |
| Swiss Army Knife | An abstract class has many responsibilities and functionality. | IA == 1 ∧ IMC > T |
| Refused Bequest | A subclass does not use or override methods or properties that are inherited from its superclass. | OR > T |
| Large Class | A class has grown too large and contains too many methods or properties. | LOC > T |
| Class Data Should Be Private | A class data is exposed publicly, rather than being kept private and only accessible through methods. | NOPF > T |
| God Class | A class has too many responsibilities, and becomes too large and complex to understand and maintain. | LOC > T1 ∧ TCC < T2 |
| Multifaceted Abstraction | A class has more than one responsibility assigned to it. | LCOM > T1 ∧ NOF > T2 ∧ NOM > T3 |
| Unnecessary Abstraction | A class that is actually not needed (and thus could have been avoided). | NOPM == 0 ∧ NOF < T |
| Broken Modularization | A class that is not cohesively encapsulating its responsibilities | NOPM == 0 ∧ NOF > T |
| Hub-Like Modularization | A class has dependencies (both incoming and outgoing) with a large number of other classes. | FANIN > T1 ∧ FANOUT > T2 |
| Deep Hierarchy | A class’s inheritance hierarchy is excessively deep. | DOI > T |
| Code Smell | Threshold(s) | Value(s) |
|---|---|---|
| Lazy Class | T (LOC) | |
| Swiss Army Knife | T (IMC) | |
| Refused Bequest | T (OR) | |
| Large Class | T (LOC) | |
| Class Data Should Be Private | T (NOPF) | |
| God Class | (LOC), (TCC) | , |
| Multifaceted Abstraction | (LCOM), (NOF), (NOM) | , , |
| Unnecessary Abstraction | T (NOF) | |
| Broken Modularization | T (NOF) | |
| Hub-Like Modularization | (FANIN), (FANOUT) | , |
| Deep Hierarchy | T (DOI) |
| Metric Name | Abbreviation | Description |
|---|---|---|
| Lines Of Code | LOC | The number of lines of code in a class. |
| Is Abstract | IA | A bolean metrics that indicate if a class is abstract (1) or not (0). |
| Interface Method Declaration Count | IMC | The number of methods declared in an interface. |
| Override Ratio | OR | Overridden Methods/Overridable Superclass Methods. |
| Tight Class Cohesion | TCC | The degree of relatedness of methods within a class based on their shared access to instance variables. |
| Lack of Cohesion in Methods | LCOM | The lack of cohesion in methods within a class. |
| Number Of Fields | NOF | Total number of fields in a class. |
| Number Of Public Fields | NOPF | Number of public fields in a class. |
| Number Of Methods | NOM | Total number of methods in a class. |
| Number Of Public Methods | NOPM | Number of public methods in a class. |
| FAN-IN | FANIN | The number of other classes or components that use this class. |
| FAN-OUT | FANOUT | The number of distinct classes that a given class uses. |
| Deep Of Inheritance | DIT | The length of the inheritance path from a given class to its highest ancestor class. |
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2026 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license.
Share and Cite
Mashiach, T.; Katz, G.; Kalech, M. Code Smells Thresholds Optimization: Defect Prediction as a Case Study. Algorithms 2026, 19, 412. https://doi.org/10.3390/a19050412
Mashiach T, Katz G, Kalech M. Code Smells Thresholds Optimization: Defect Prediction as a Case Study. Algorithms. 2026; 19(5):412. https://doi.org/10.3390/a19050412
Chicago/Turabian StyleMashiach, Tom, Gilad Katz, and Meir Kalech. 2026. "Code Smells Thresholds Optimization: Defect Prediction as a Case Study" Algorithms 19, no. 5: 412. https://doi.org/10.3390/a19050412
APA StyleMashiach, T., Katz, G., & Kalech, M. (2026). Code Smells Thresholds Optimization: Defect Prediction as a Case Study. Algorithms, 19(5), 412. https://doi.org/10.3390/a19050412

