Techniques for Calculating Software Product Metrics Threshold Values: A Systematic Mapping Study
Abstract
:1. Introduction
2. Background and Related Work
2.1. Object-Oriented Metrics
2.2. Object-Oriented Metrics Thresholds
2.3. Related Work
3. Systematic Mapping Process
3.1. Definitions of Research Questions
3.2. Search Strategy
3.3. Screening
- They mention the object-oriented metrics and thresholds in the title, abstract, or keywords;
- The threshold values are the main topic in the study; and
- They provide approaches and applications to calculate the threshold values.
- They do not identify threshold values of object-oriented metrics;
- They explain object-oriented metrics without focusing on thresholds; and
- They are duplicate papers.
3.4. Classification Scheme
- Paper title sorted from A to Z.
- Year, when the paper was published.
- Author.
- Publication type (e.g., conference, journal, workshop).
- Threshold calculation methods: to determine calculation methods used in each paper.
- The quality attributes for threshold calculation methods: to determine the quality attributes for threshold calculation methods.
- Metrics categories used: to identify which metrics sets are used in research papers.
- The most relevant and least relevant metrics: to list relevant and irrelevant metrics to the method that was used in the studies.
- The types of projects used in the studies.
3.5. Extraction
3.6. Final Pool of Research Studies
3.7. Quality Assessment
- Q1: Are the aims of the study clearly stated?
- Q2: Are the scope and experimental design of the study defined clearly?
- Q3: Are the variables in the study likely to be valid and reliable?
- Q4: Is the research process documented adequately?
- Q5: Are all the study questions answered?
- Q6: Are the negative findings presented?
- Q7: Are the main findings regarding creditability, validity, and reliability stated?
- Q8: Do the conclusions relate to the aim of the purpose of the study?
4. Systematic Mapping Process
4.1. Q1 What Kind of Threshold Calculation Methods Exist in the Literature?
4.2. Q2 What Are the Quality Attributes for Threshold Calculation Methods?
4.3. Q3 Which Metrics Combinations Have Been Used?
4.4. Q4 What Are the Types of Studies?
4.5. Q5 What Are the Correlated Metrics with Tested Quality, and Which of Them Are Uncorrelated?
5. Discussion
- Q1 (Type of threshold calculation methods):
- Q2 (The quality attributes for threshold calculation methods):
- Q3 (Metrics categories):
- Q4 (The types of studies):
- Q5 (Relevant metrics):
6. Threat to Validity and Limitations
7. Implications for Researchers and Practitioners
8. Conclusions and Future Work
Author Contributions
Funding
Institutional Review Board Statement
Informed Consent Statement
Data Availability Statement
Conflicts of Interest
Appendix A
[S1] Vale, G., Figueiredo, E. (2015). A Method to Derive Metric Thresholds for software product line. 29th Brazilian Symposium on Software Engineering. |
[S2] Shatnawi, R. (2010). A Quantitative Investigation of the Acceptable Risk Levels of Object-Oriented Metrics in Open-Source Systems. IEEE Journal of Transactions on Software Engineering. Volume: 36, issue: 2. |
[S3] Sodiya, Adesina S., Aborisade, Dada O., Ikuomola, Aderonke J. (2012). A Survivability Model for Object-Oriented Software Systems. Fourth International Conference on Computational Aspects of Social Networks (CASoN), pp 283–290. |
[S4] Li, W. and Shatnawi, R. (2007) An empirical study of the bad smells and class error probability in the post-release object-oriented system evolution. Journal of Systems and Software, volume 80, issue 7, pp 1120–1128. |
[S5] Al Dallal, J. and Briand, L. C. (2010) An object-oriented high-level design-based class cohesion metric. Inf. Softw. Technol. 52, 12 (December 2010), 1346-1361. |
[S6] Alan, O., Catal, C. (2009). An Outlier Detection Algorithm Based on Object-Oriented. 24th International Symposium on Computer and Information Sciences, pp 567-570. |
[S7] Fontana, F. A., Ferme, V., Zanoni, M., Yamashit, A. (2015). Automatic metric thresholds derivation for code smell detection. 6th International Workshop on Emerging Trends in Software Metrics. |
[S8] Herbold, S. Grabowski, J. Waack, S. (2011). Calculation and optimization of thresholds for sets of software metrics. An International Journal of Empirical Software Engineering, volume 16, issue 6, pp 812–841. |
[S9] Al Dallal, J. (2012). Constructing models for predicting extract subclass refactoring opportunities using object-oriented quality metrics. Journal of Information and Software Technology, volume 54, issue 10, pp 1125–1141. |
[S10] Alves Tiago L., Christiaan Ypma, Joost Visser. (2010). Deriving Metric Thresholds from Benchmark data. IEEE International Conference on Software Maintenance (ICSM), pp 1-10. |
[S11] Shatnawi, R. (2015), Deriving metrics thresholds using log transformation. Journal of Software Evolution and Process, volume 27, issue 2, pp 95–113. |
[S12] Suresh, Y., Pati, J., and Rath, S. K. (2012). Effectiveness of software metrics for object-oriented system. 2nd International Conference on Communication, Computing & Security. Volume 6, pp 420-427. |
[S13] Malhotra, R. and Jain Bansal, A. (2014). Fault prediction considering threshold effects of object oriented metrics. Journal of Expert System. Volume 32, issue 2, pp 203-219. |
[S14] Shatnawi, R., Li, W., Swain, J. and Newma, T. (2009). Finding software metrics threshold values using ROC curves. Journal of Software Maintenance and Evolution: Research and Practice, Volume 22, issue 1, pp 1–16. |
[S15] Ferreira, K. A. M., Bigonha, M. A. S., Bigonha, R. S., Mendes, L. F. O., and Almeida, H. C. (2012). Identifying thresholds for object-oriented software metrics. Journal of Systems and Software, volume 85, issue 2, February 2012, pp 244–257. |
[S16] Al Dallal, J. (2011) Improving the applicability of object-oriented class cohesion metrics. Inf. Softw. Technol. 53, 9 (September 2011), 914-928. |
[S17] Singh, S. and Kahlon, K.S. (2014). Object oriented software metrics threshold values at quantitative acceptable risk level. Journal of CSI Transactions on ICT, volume 2, issue 3, pp 191-205. |
[S18] Oliveira, P., Lima, F. P., Valente, M. T., Serebrenik, A. (2014). RTTOOL: A Tool for Extracting Relative Thresholds for Source Code Metrics. IEEE International Conference on Software Maintenance and Evolution (ICSME), pp 629-632. |
[S19] Benlarbi, S., El Emam, K., Goel, N., Rai, S. (2000). Thresholds for Object-Oriented Measures. 11th International Symposium on Software Reliability Engineering, pp 24–38. |
[S20] Al Dallal, J. (2011) Transitive-based object-oriented lack-of-cohesion metric, Procedia Computer Science 3 (2011) 1581–1587 |
[S21] Lavazza, L. and Morasca, S. (2016, September). An empirical evaluation of distribution-based thresholds for internal software measures. In Proceedings of the The 12th International Conference on Predictive Models and Data Analytics in Software Engineering (p. 6). ACM |
[S22] Vale, G., Albuquerque, D., Figueiredo, E., and Garcia, A. (2015, July). Defining metric thresholds for software product lines: a comparative study. In Proceedings of the 19th International Conference on Software Product Line (pp. 176-185). ACM. |
[S23] Arar, Ö. F. and Ayan, K. (2016). Deriving thresholds of software metrics to predict faults on open source software: Replicated case studies. Expert Systems with Applications, 61, 106-121. |
[S24] Hussain, S., Keung, J., Khan, A. A., and Bennin, K. E. (2016, August). Detection of fault-prone classes using logistic regression based object-oriented metrics thresholds. In Software Quality, Reliability and Security Companion (QRS-C), 2016 IEEE International Conference on (pp. 93-100). IEEE. |
[S25] Catal, C., Alan, O., and Balkan, K. (2011). Class noise detection based on software metrics and ROC curves. Information Sciences, 181(21), 4867-4877. |
[S26] Shatnawi, R., and Althebyan, Q. (2013). An empirical study of the effect of power law distribution on the interpretation of OO metrics. ISRN Software Engineering, 2013. |
[S27] Malhotra, R., Chug, A., and Khosla, P. (2015, August). Prioritization of classes for refactoring: A step towards improvement in software quality. In Proceedings of the Third International Symposium on Women in Computing and Informatics (pp. 228-234). ACM |
[S28] Lochmann, K. (2012). A benchmarking-inspired approach to determine threshold values for metrics. ACM SIGSOFT Software Engineering Notes, 37(6), 1-8. |
[S29] Veado, L., Vale, G., Fernandes, E., and Figueiredo, E. (2016, June). TDTool: threshold derivation tool. In Proceedings of the 20th International Conference on Evaluation and Assessment in Software Engineering (p. 24). ACM. |
[S30] Oliveira, P., Valente, M. T., and Lima, F. P. (2014, February). Extracting relative thresholds for source code metrics. In Software Maintenance, Reengineering and Reverse Engineering (CSMR-WCRE), 2014 Software Evolution Week-IEEE Conference on (pp. 254-263). IEEE. |
[S31] Malhotra R. and Bansal A. (2017) Identifying threshold values of an open source software using Receiver Operating Characteristics curve (ROC), Journal of Information and Optimization Sciences, 38:1, 39-69, DOI: 10.1080/02522667.2015.1135592. |
[S32] Filó, T. G., Bigonha, M., and Ferreira, K. (2015) A catalogue of thresholds for object-oriented software metrics. Proc. of the 1st SOFTENG, 48–55. |
[S33] Stojkovski M. (2017) Thresholds for Software Quality Metrics in Open Source Android Projects, Department of Computer Science, Norwegian University of Science and Technology, December 2017. |
[S34] Vale, G., Fernandes, E., and Figueiredo, E. (2018) On the proposal and evaluation of a benchmark-based threshold derivation method. Software Quality Journal, 27(1), 1-32. |
[S35] Mori, A., Vale, G., Viggiato, M., Oliveira, J., Figueiredo, E., Cirilo, E., Jamshidi, P. and Kastner, C., (2018) Evaluating domain-specific metric thresholds: an empirical study. In International Conference on Technical Debt (TechDebt). |
[S36] Boucher A., Badri M. (2018) Software metrics thresholds calculation techniques to predict fault-proneness: An empirical comparison, Information and Software Technology, 96, 2018, pp. 38-67. |
[S37] Padhy N., Panigrahi R. and Neeraja, K. (2019) Threshold estimation from software metrics by using evolutionary techniques and its proposed algorithms, models, Evolutionary Intelligence, 1–15. |
[S38] Mohovic M., Mausa G. and Grbac T. (2018) Using Threshold Derivation of Software Metrics for Building Classifiers in Defect Prediction, Proceedings of the Seventh Workshop on Software Quality Analysis, Monitoring, Improvement, and Applications. |
[S39] Shatnawi, R. (2017) The application of ROC analysis in threshold identification, data imbalance and metrics selection for software fault prediction, Innovations Syst Softw Eng, 13: 201 |
[S40] Boucher A. and Badri M. (2016) Using Software Metrics Thresholds to Predict Fault-Prone Classes in Object-Oriented Software, 2016 4th Intl Conf on Applied Computing and Information Technology/3rd Intl Conf on Computational Science/Intelligence and Applied Informatics/1st Intl Conf on Big Data, Cloud Computing, Data Science & Engineering (ACIT-CSII-BCD), Las Vegas, NV, 2016, pp. 169-176. |
[S41] Mauša G. and Grbac T.G. (2017) The Stability of Threshold Values for Software Metrics in Software Defect Prediction. Lecture Notes in Computer Science, vol 10563. Springer, Cham |
[S42] Aniche M., Treude C., Zaidman A., v. Deursen A. and Gerosa M. A. (2016) SATT: Tailoring Code Metric Thresholds for Different Software Architectures, 2016 IEEE 16th International Working Conference on Source Code Analysis and Manipulation (SCAM), Raleigh, NC, 2016, pp. 41-50. |
[S43] Catal, C., Sevim, U., and Diri, B. (2009) Clustering and metrics thresholds based software fault prediction of unlabeled program modules, ITNG 2009—6th International Conference on Information Technology: New Generations. |
[S44] Beranic T. and Hericko M. (2017) Approaches for Software Metrics Threshold Derivation: A Preliminary Review, Proceedings of the Sixth Workshop on Software Quality Analysis, Monitoring, Improvement, and Applications. |
[S45] Ronchieri E., and Canaparo M. (2016) A preliminary mapping study of software metrics thresholds, Italy conference ICSOFT 2016—Proceedings of the 11th International Joint Conference on Software Technologies. |
Appendix B
ID | Q1 | Q2 | Q3 | Q4 | Q5 | Q6 | Q7 | Q8 | Total |
---|---|---|---|---|---|---|---|---|---|
S1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 8 |
S2 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 7 |
S3 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 7 |
S4 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 8 |
S5 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 8 |
S6 | 1 | 1 | 1 | 1 | 1 | 0.5 | 0.5 | 1 | 7 |
S7 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 8 |
S8 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 8 |
S9 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 8 |
S10 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 7 |
S11 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 8 |
S12 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 7 |
S13 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 8 |
S14 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 8 |
S15 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 8 |
S16 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 8 |
S17 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 8 |
S18 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 7 |
S19 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 7 |
S20 | 1 | 1 | 1 | 0.5 | 1 | 1 | 0 | 1 | 6.5 |
S21 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 8 |
S22 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 8 |
S23 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 8 |
S24 | 1 | 1 | 1 | 1 | 1 | 0.5 | 0.5 | 1 | 7 |
S25 | 1 | 1 | 1 | 1 | 1 | 0.5 | 1 | 1 | 7.5 |
S26 | 1 | 1 | 1 | 1 | 1 | 1 | 0.5 | 1 | 7.5 |
S27 | 1 | 1 | 1 | 0.5 | 1 | 0.5 | 0.5 | 1 | 6.5 |
S28 | 1 | 1 | 1 | 1 | 1 | 0.5 | 1 | 1 | 7.5 |
S29 | 1 | 1 | 1 | 0.5 | 1 | 0.5 | 0.5 | 1 | 6.5 |
S30 | 1 | 1 | 1 | 1 | 1 | 0.5 | 1 | 1 | 7.5 |
S31 | 1 | 1 | 1 | 0.5 | 1 | 0.5 | 0.5 | 1 | 6.5 |
S32 | 1 | 1 | 1 | 1 | 1 | 0.5 | 0.5 | 1 | 7 |
S33 | 1 | 1 | 1 | 1 | 1 | 0.5 | 1 | 1 | 7.5 |
S34 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 8 |
S35 | 1 | 1 | 1 | 1 | 1 | 0.5 | 1 | 1 | 7.5 |
S36 | 1 | 1 | 1 | 1 | 1 | 0.5 | 1 | 1 | 7.5 |
S37 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 6 |
S38 | 1 | 1 | 1 | 1 | 1 | 0 | 0.5 | 1 | 6.5 |
S39 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 8 |
S40 | 1 | 1 | 1 | 1 | 1 | 1 | 0.5 | 1 | 7.5 |
S41 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 7 |
S42 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 8 |
S43 | 1 | 1 | 1 | 1 | 1 | 0.5 | 1 | 1 | 7.5 |
S44 | 1 | 1 | 1 | 1 | 1 | 0.5 | 0.5 | 1 | 7 |
S45 | 1 | 1 | 1 | 1 | 1 | 0.5 | 0 | 1 | 6.5 |
Appendix C
References | Relevant Metrics | Irrelevant Metrics |
---|---|---|
[S1] | LOC (Lines of Code), CBO (Coupling between Objects), WMC (Weighted Methods for Class), and NCR (Number of Class Reused) | Not mentioned |
[S2] | CBO, RFC (Response for a Class), and WMC | DIT (Depth of inheritance tree) and NOC (Number of Children) metrics |
[S3] | WMC | Not mentioned |
[S4] | NAM (Number of Accessor Methods), WOC (Weight Of Class), NOPA (Number of Public Attributes), TCC (Tight Class Cohesion), WMC, LOC, NOLV (Number of Local Variables), NOP (Number of Parameters), MNOB (Maximum Number of Branches), AIUR (Average Inheritance Usage Ratio), DIT, CM (Changing Methods), ChC (Changing Classes), ALD (Access of Local Data), NIC (Number of Import Classes), AID (Access of Import Data), and AOFD (Access of Foreign Data) | Not mentioned |
[S5] | SCC (Similarity-based Class Cohesion), CAMC (Cohesion Among Methods in a Class), NHD (Normalized Hamming Distance), SNHD (Scaled NHD), Lack of Cohesion in Methods metrics (LCOM1, LCOM2, LCOM3, Coh, TCC, and LCC) | Not mentioned |
[S6] | WMC, DIT, NOC, CBO, RFC, LCOM. | Two metrics of CK |
[S7] | ATFD (Access to Foreign Data), WMC, NOPA, NAM, LOC, CYCLO/CC (Cyclomatic Complexity), MAXNESTING (Maximum Nesting Level), NOAV (Number of Accessed Variables), CINT (Coupling Intensity), CM, ChC | TCC, DIT |
[S8] | Metrics for methods: VG/CC (Cyclomatic Number), NBD (Nested Block Depth), NFC (Number of Function Calls), NST (Number of Statements) Metrics for classes: WMC, CBO, RFC, NORM (Number of Overridden Methods), LOC, NOM (Number of Methods), NSM (Number of Static Methods) | LCOM, DIT and NOC |
[S9] | LOC, NOM, NOA, RFC, MPC (Message Passing Coupling), DAC1 (Data Abstraction Coupling), DAC2, OCMEC (Number of distinct classes used as types of the parameters of the methods in the class), LCOM1, LCOM2, LCOM3, LCOM4, LCOM5, Coh, TCC, LCC, DCD, DCI, CC, SCOM, LSCC, CBMC (Cohesion Based on Member Connectivity), ICBMC, OLn, and PCCC (Path Connectivity Class Cohesion) | Nonlocal coupling measures (e.g., CBO) |
[S10] | LOC | Not mentioned |
[S11] | RFC, CBO, LCOM, NOC, DIT, and WMC | Not mentioned |
[S12] | McCabe’s Complexity: MLOC (Method Lines of Code), TLOC and Nested Block DepthCK Metrics: WMC, LCOM, DIT AND NOCR.C.Martin’s: Ca (Afferent Coupling), Ce (Efferent Coupling), I (Instability), A (Abstractness), and Dn (Normalized Distance from Main Sequence) | Not mentioned |
[S13] | WMC, CBO, RFC, LCOM, and LOC | NOC and DIT |
[S14] | CBO, RFC, WMC, CTM, and NOO | LCOM, DIT, NOC, CTA, NOAM, NOOM, and NOA |
[S15] | LCOM, DIT, coupling | Not mentioned |
[S16] | LSCC, LCOM3, LCOM4, Coh, TCC, LCC, DCD, DCI, LCOM1, LCOM2, LCOM5, CC, SCOM, CAMC, and NHD. | Not mentioned |
[S17] | DIT, NOC, RFC, WMC, LCOM, Co, CBO, NOA, NOOM, NOAM, PuF, EncF, WMC | DIT, NOC, LCOM, Co, NOOM, NOAM and PuF |
[S18] | NOA, NOM, FAN-OUT, RFC and WMC | DIT and Dn |
[S19] | WMC, DIT, NOC, CBO, RFC | LCOM |
[S20] | LCOM | Not mentioned |
[S21] | Not mentioned | Not mentioned |
[S22] | Not mentioned | Not mentioned |
[S23] | AVG_CC (Average CC), MAX_CC (Maximum CC), LOC, WMC, CBO, CE, NPM, RFC, LCOM, AMC | Not mentioned |
[S24] | Not mentioned | Not mentioned |
[S25] | Not mentioned | Not mentioned |
[S26] | NOC, WMC, NOM, NOV, SLOC | CBO, RFC |
[S27] | WMC, RFC, CBO, LCOM, DIT, NOC | None |
[S28] | Not mentioned | Not mentioned |
[S29] | LOC, CBO, WMC, NCR | Not mentioned |
[S30] | NOM, LOC, FAN-OUT, RFC, WMC, PUBA/NOA, LCOM | Not mentioned |
[S31] | CBO, NOA, NIV (Number of Instance Method), NLM (Number of Local Methods), NPRM (Number of Private Methods), LOC, LCOM, WMC | NOC |
[S32] | NOC, NOM, NOF (Number of Fields), NORM, PAR (Number of parameters), NSM, NSF, MLOC, SIX (specialization index), VG, NBD, MC), DIT, NSC (Number of Children), LCOM), Ca/Ce | Not mentioned |
[S33] | NOM, RFC, CBO, NOC, DIT | Not mentioned |
[S34] | LOC, CBO, WMC, NCR | Not mentioned |
[S35] | CBO, WMC, LCOM, DIT, LOC | None |
[S36] | CBO, RFC, WMC, LOC | LCOM, DIT, NOC |
[S37] | CK Metrics, MOOD Metrics | Not mentioned |
[S38] | LOC, CC, number of comment lines, CBO, cohesion, DIT, number of external method calls, fan-in, fan-out, RFC, LCOM, Halstead volume, Halstead length, number of interfaces, number of attributes, number of local method calls, Message Passing Coupling | Not mentioned |
[S39] | WMC, CBO, RFC, LCOM | NOC, DIT |
[S40] | CK Metrics, SLOC (Source Lines of Code) | Not mentioned |
[S41] | LOC, physical executable source lines of code, logical source lines of code, blank lines of code, the total number of Java statements in class, maximum cyclomatic complexity of any method in the class, total cyclomatic complexity of all the methods in the class, cumulative Halstead length of all the components in the class | DIT |
[S42] | NOM, WMC, CBO, RFC, LCOM | Not mentioned |
[S43] | LOC, WMC, NCR (Number of Constant Refinements) | Coupling between Objects classes (CBO), |
[S44] | LOC, CC, Unique Operator (UOp), Unique Operand (UOpnd), Total Operator (TOp), Total Operand (TOpnd) | Not mentioned |
[S45] | CK object-oriented metrics | Not mentioned |
References
- Arar, Ö.F.; Ayan, K. Deriving thresholds of software metrics to predict faults on open source software: Replicated case studies. Expert Syst. Appl. 2016, 61, 106–121. [Google Scholar] [CrossRef]
- Ferreira, K.A.M.; Mariza, A.S.; Bigonha, R.S.; Bigonha, L.F.O.M.; Heitor, C.A. Identifying thresholds for object-oriented software metrics. J. Syst. Softw. 2012, 85, 244–257. [Google Scholar] [CrossRef]
- Beranic, T.; Hericko, M. Approaches for Software Metrics Threshold Derivation: A Preliminary Review. In Proceedings of the Sixth Workshop on Software Quality Analysis, Monitoring, Improvement, and Applications, Belgrade, Serbia, 11–13 September 2017; pp. 1–8. [Google Scholar]
- Lorenz, M.; Kidd, J. Object-Oriented Software Metrics; Prentice-Hall: Englewood Cliffs, NJ, USA, 1994. [Google Scholar]
- Nagappan, N.; Ball, T.; Zeller, A. Mining metrics to predict component failures. In Proceedings of the 28th International Conference on Software Engineering (ICSE’06), Shanghai, China, 20–28 May 2006; pp. 452–461. [Google Scholar]
- Kitchenham, B.; Brereton, O.P.; Budgen, D.; Turner, M.; Bailey, J.; Linkman, S. Systematic literature reviews in software engineering–a systematic literature review. Inf. Softw. Technol. 2009, 51, 7–15. [Google Scholar] [CrossRef]
- Alves, T.L.; Christiaan, Y.; Joost, V. Deriving Metric Thresholds from Benchmark data. In Proceedings of the IEEE International Conference on Software Maintenance (ICSM), Timisoara, Romania, 12–18 September 2010; pp. 1–10. [Google Scholar]
- Sanchez-Gonzalez, G.F.; Ruiz, F.; Mendling, J. A study of the effectiveness of two threshold definition techniques. In Proceedings of the 16th International Conference on Evaluation Assessment in Software Engineering (EASE 2012), Ciudad Real, Spain, 14–15 May 2012; pp. 197–205. [Google Scholar]
- Lanza, M.; Marinescu, R. Object-Oriented Metrics in Practice: Using Software Metrics to Characterize, Evaluate, and Improve the Design of Object-Oriented Systems; Springer Science & Business Media: Berlin/Heidelberg, Germany, 2007. [Google Scholar]
- Chidamber, S.R.; Kemerer, C.F. A metrics suite for object oriented design. IEEE Trans. Softw. Eng. 1994, 20, 476–493. [Google Scholar] [CrossRef] [Green Version]
- Herbold, S.; Jens Grabowski, S.W. Calculation and optimization of thresholds for sets of software metrics. Int. J. Empir. Softw. Eng. 2011, 16, 812–841. [Google Scholar] [CrossRef] [Green Version]
- Keele, S. Guidelines for Performing Systematic Literature Reviews in Software Engineering; Version 2.3 EBSE Technical Report EBSE-2007-01; Keele University: Keele, UK, 2007. [Google Scholar]
- Catal, C.; Sevim, U.; Diri, B. Clustering and metrics thresholds based software fault prediction of unlabeled program modules. In Proceedings of the ITNG 2009—6th International Conference on Information Technology: New Generations, Las Vegas, NV, USA, 27–29 April 2009; pp. 199–204. [Google Scholar]
- Fontana, F.A.V.F.; Marco, Z.; Aiko, Y. Automatic metric thresholds derivation for code smell detection. In Proceedings of the 6th International Workshop on Emerging Trends in Software Metrics, Florence, Italy, 17 May 2015. [Google Scholar]
- Malhotra, R.; Chug, A.; Khosla, P. Prioritization of classes for refactoring: A step towards improvement in software quality. In Proceedings of the Third International Symposium on Women in Computing and Informatics, Kochi, India, 10–13 August 2015; pp. 228–234. [Google Scholar]
- Marino, M.; Goran, M.; Tihana, G.G. Using Threshold Derivation of Software Metrics for Building Classifiers in Defect Prediction. In Proceedings of the Seventh Workshop on Software Quality Analysis, Monitoring, Improvement, and Applications, SQAMIA, Novi Sad, Serbia, 27–30 August 2018. [Google Scholar]
- Shatnawi, R.; Wei, L.; James, S.; Tim, N. Finding software metrics threshold values using ROC curves. J. Softw. Maint. Evol. Res. Pract. 2009, 22, 1–16. [Google Scholar] [CrossRef]
- Boucher, A.; Badri, M. Software metrics thresholds calculation techniques to predict fault-proneness: An empirical comparison. Inf. Softw. Technol. 2018, 96, 38–67. [Google Scholar] [CrossRef]
- Fenton, N.; Neil, M. Software metrics: Successes, failures, and new directions. J. Syst. Softw. 1999, 47, 149–157. [Google Scholar] [CrossRef] [Green Version]
- Li, W. Another Metric Suite for Object Oriented Programming. J. Syst. Softw. 1998, 44, 155–162. [Google Scholar] [CrossRef]
- Li, W.; Henry, S. Object-oriented metrics that predict maintainability. J. Syst. Softw. 1993, 23, 111–122. [Google Scholar] [CrossRef]
- Oliveira, P.; Valente, M.T.; Lima, F.P. Extracting relative thresholds for source code metrics. In Proceedings of the Software Maintenance, Reengineering and Reverse Engineering (CSMR-WCRE), Antwerp, Belgium, 3–6 February 2014; pp. 254–263. [Google Scholar]
- Stojkovski, M. Thresholds for Software Quality Metrics in Open Source Android Projects. Master’s Thesis, Department of Computer Science, Norwegian University of Science and Technology, Trondheim, Norway, December 2017. [Google Scholar]
- Al Dallal, J.; Briand, L.C. An object-oriented high-level design-based class cohesion metric. Inf. Softw. Technol. 2010, 52, 1346–1361. [Google Scholar] [CrossRef]
- Shatnawi, R. Deriving metrics thresholds using log transformation. J. Softw. Evol. Process. 2015, 27, 95–113. [Google Scholar] [CrossRef]
- Malhotra, R.; Jain Bansal, A. Fault prediction considering threshold effects of object oriented metrics. J. Expert Syst. 2014, 32, 203–219. [Google Scholar] [CrossRef]
- Ronchieri, E.; Canaparo, M. A preliminary mapping study of software metrics thresholds. In Proceedings of the 11th International Joint Conference on Software Technologies, ICSOFT-EA, Bologna, Italy, 24–26 July 2016; pp. 232–240. [Google Scholar]
- Kitchenham, B. What’s up with software metrics?—A preliminary mapping study. J. Syst. Softw. 2010, 83, 37–51. [Google Scholar] [CrossRef]
- Tahir, A.; MacDonell, S.G. A systematic mapping study on dynamic metrics and software quality. In Proceedings of the 2012 28th IEEE International Conference on Software Maintenance (ICSM), Trento, Italy, 23–28 September 2012; pp. 326–335. [Google Scholar]
- Vanitha, N.; Thirumalaiselvi, R. A Report on the Analysis of Metrics and Measures on Software Quality Factors—A Literature Study. Int. J. Comput. Sci. Inf. Technol. 2014, 5. [Google Scholar]
- Petersen, K.; Vakkalanka, S.; Kuzniarz, L. Guidelines for conducting systematic mapping studies in software engineering: An update. Inf. Softw. Technol. 2015, 64, 1–18. [Google Scholar] [CrossRef]
- Tummers, J.; Kassahun, A.; Tekinerdogan, B. Obstacles and features of Farm Management Information Systems: A systematic literature review. Comput. Electron. Agric. 2019, 157, 189–204. [Google Scholar] [CrossRef]
- Sodiya, A.S.; Aborisade, D.O.; Ikuomola, A.J. A Survivability Model for Object-Oriented Software Systems. In Proceedings of the Fourth International Conference on Computational Aspects of Social Networks (CASoN), Sao Carlos, Brazil, 21–23 November 2012; pp. 283–290. [Google Scholar]
- Li, W.; Shatnawi, R. An empirical study of the bad smells and class error probability in the post-release object-oriented system evolution. J. Syst. Softw. 2007, 80, 1120–1128. [Google Scholar] [CrossRef]
- Alan, O.; Catal, C. An Outlier Detection Algorithm Based on Object-Oriented. In Proceedings of the 24th International Symposium on Computer and Information Sciences, Guzelyurt, Northern Cyprus, 14–16 September 2009; pp. 567–570. [Google Scholar]
- Suresh, Y.J.P.; Santanu, K.R. Effectiveness of software metrics for object-oriented system. In Proceedings of the 2nd International Conference on Communication, Computing & Security, Rourkela, India, 6–8 October 2012; Volume 6, pp. 420–427. [Google Scholar]
- Rosenberg, L.H.; Stapko, R. Applying Object Oriented Metrics. In Proceedings of the Sixth International Symposium on Software Metrics-Measurement for Object-Oriented Software Projects Workshop, Boca Raton, FL, USA, 4–6 November 1999. [Google Scholar]
- Vale, G.; Albuquerque, D.; Figueiredo, E.; Garcia, A. Defining metric thresholds for software product lines: A comparative study. In Proceedings of the 19th International Conference on Software Product Line, New York, NY, USA, 20–24 July 2015; pp. 176–185. [Google Scholar]
- Oliveira, P.F.P.; Lima, M.T.V.; Alexander, S. RTTOOL: A Tool for Extracting Relative Thresholds for Source Code Metrics. In Proceedings of the IEEE International Conference on Software Maintenance and Evolution (ICSME), Victoria, BC, Canada, 29 September–3 October 2014; pp. 629–632. [Google Scholar]
- Malhotra, R.; Bansal, A. Identifying threshold values of an open source software using Receiver Operating Characteristics curve (ROC). J. Inf. Optim. Sci. 2017, 38, 39–69. [Google Scholar] [CrossRef]
- Singh, S.; Kahlon, K.S. Object oriented software metrics threshold values at quantitative acceptable risk level. J. CSI Trans. ICT 2014, 2, 191–205. [Google Scholar] [CrossRef] [Green Version]
- Benlarbi, S.; Khaled, E.E.; Nishith, G.; Shesh, R. Thresholds for Object-Oriented Measures. In Proceedings of the 11th International Symposium on Software Reliability Engineering, San Jose, CA, USA, 8–11 October 2000; pp. 24–38. [Google Scholar]
- Lavazza, L.; Morasca, S. An empirical evaluation of distribution-based thresholds for internal software measures. In Proceedings of the 12th International Conference on Predictive Models and Data Analytics in Software Engineering, Ciudad Real, Spain, 9 September 2016; p. 6. [Google Scholar]
- Catal, C.; Alan, O.; Balkan, K. Class noise detection based on software metrics and ROC curves. Inf. Sci. 2011, 181, 4867–4877. [Google Scholar] [CrossRef]
- Bansiya, J.; Davis, C.G. A hierarchical model for object-oriented design quality assessment. IEEE Trans. Softw. Eng. 2002, 28, 4–17. [Google Scholar] [CrossRef]
- Martin, R. OO design quality metrics. Anal. Depend. 1994, 12, 151–170. [Google Scholar]
- Tang, M.H.; Kao, M.H.; Chen, M.H. An empirical study on object-oriented metrics. In Proceedings of the Sixth International Software Metrics Symposium (Cat. No.PR00403), Boca Raton, FL, USA, 4–6 November 1999; pp. 242–249. [Google Scholar]
- Henderson-Sellers, B. Object-Oriented Metrics: Measures of Complexity; Prentice-Hall, Inc.: Hoboken, NJ, USA, 1996. [Google Scholar]
- Lochmann, K. A benchmarking-inspired approach to determine threshold values for metrics. ACM SIGSOFT Softw. Eng. Notes 2012, 37, 1–8. [Google Scholar] [CrossRef]
- Veado, L.; Vale, G.; Fernandes, E.; Figueiredo, E. TDTool: Threshold derivation tool. In Proceedings of the 20th International Conference on Evaluation and Assessment in Software Engineering, Limerick, Ireland, 1–3 June 2016; p. 24. [Google Scholar]
- Gronback, R.C. Software Remodeling: Improving Design and Implementation Quality, Using Audits, Metrics and Refactoring in Borland Together Control Center, A Borland White Paper, January. 2003. Available online: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.87.9155&rep=rep1&type=pdf (accessed on 15 July 2020).
- Al Dallal, J. Constructing models for predicting extract subclass refactoring opportunities using object-oriented quality metrics. J. Inf. Softw. Technol. 2012, 54, 1125–1141. [Google Scholar] [CrossRef]
- Al Dallal, J. Improving the applicability of object-oriented class cohesion metrics. Inf. Softw. Technol. 2011, 53, 914–928. [Google Scholar] [CrossRef]
- Bender, R. Quantitative risk assessment in epidemiological studies investigating threshold effects. Biom. J. 1999, 41, 305–319. [Google Scholar] [CrossRef]
- Hussain, S.; Keung, J.; Khan, A.A.; Bennin, K.E. Detection of fault-prone classes using logistic regression based object-oriented metrics thresholds. In Proceedings of the 2016 IEEE International Conference on Software Quality, Reliability and Security Companion (QRS-C), Vienna, Austria, 1–3 August 2016; pp. 93–100. [Google Scholar]
- Shatnawi, R.; Althebyan, Q. An empirical study of the effect of power law distribution on the interpretation of OO metrics. ISRN Softw. Eng. 2013, 2013, 198937. [Google Scholar] [CrossRef] [Green Version]
- Aniche, M.; Treude, C.; Zaidman, A.; van Deursen, A.; Gerosa, M.A. SATT: Tailoring Code Metric Thresholds for Different Software Architectures. In Proceedings of the 2016 IEEE 16th International Working Conference on Source Code Analysis and Manipulation (SCAM), Raleigh, NC, USA, 2–3 October 2016; pp. 41–50. [Google Scholar]
- Filó, T.G.; Bigonha, M.; Ferreira, K. A catalogue of thresholds for object-oriented software metrics. In Proceedings of the SOFTENG 2015: The First International Conference on Advances and Trends in Software Engineering, Barcelona, Spain, 19–24 April 2015; pp. 48–55. [Google Scholar]
- Gustavo, V.; Eduardo, F.A. Method to Derive Metric Thresholds for software product line. In Proceedings of the 29th Brazilian Symposium on Software Engineering, Belo Horizonte, Brazil, 21–26 September 2015. [Google Scholar]
- Mori, A.; Vale, G.; Viggiato, M.; Oliveira, J.; Figueiredo, E.; Cirilo, E.; Jamshidi, P.; Kastner, C. Evaluating domain-specific metric thresholds: An empirical study. In Proceedings of the International Conference on Technical Debt (TechDebt), Gothenburg, Sweden, 27 March–3 June 2018. [Google Scholar]
- Padhy, N.; Panigrahi, R.; Neeraja, K. Threshold estimation from software metrics by using evolutionary techniques and its proposed algorithms, models. Evol. Intell. 2019, 14, 315–329. [Google Scholar] [CrossRef]
- Shatnawi, R. A Quantitative Investigation of the Acceptable Risk Levels of Object-Oriented Metrics in Open-Source Systems. IEEE J. Trans. Softw. Eng. 2010, 36, 216–225. [Google Scholar] [CrossRef]
- Vale, G.; Fernandes, E.; Figueiredo, E. On the proposal and evaluation of a benchmark-based threshold derivation method. Softw. Qual. J. 2018, 27, 1–32. [Google Scholar] [CrossRef]
- Boucher, A.; Badri, M. Using Software Metrics Thresholds to Predict Fault-Prone Classes in Object-Oriented Software. In Proceedings of the 2016 4th International Conference on Applied Computing and Information Technology/3rd International Conference on Computational Science/Intelligence and Applied Informatics/1st International Conference on Big Data, Cloud Computing, Data Science & Engineering (ACIT-CSII-BCD), Las Vegas, NV, USA, 12–14 December 2016; pp. 169–176. [Google Scholar]
- Mauša, G.; Grbac, T.G. The stability of threshold values for software metrics in software defect prediction. In Proceedings of the International Conference on Model and Data Engineering, Barcelona, Spain, 4–6 October 2017; Springer: Cham, Switzerland, 2017; pp. 81–95. [Google Scholar]
- Shatnawi, R. The application of ROC analysis in threshold identification, data imbalance and metrics selection for software fault prediction. Innov. Syst. Softw. Eng. 2017, 13, 201. [Google Scholar] [CrossRef]
- Aman, H.; Mochiduki, N.; Yamada, H.; Noda, M.-T. A simple predictive method for discriminating costly classes using class size metric. IEICE Trans. Inf. Syst. 2005, E88-D, 1284–1288. [Google Scholar] [CrossRef]
- Barkmann, H.; Lincke, R.; Love, W. Quantitative evaluation of software quality metrics in open source projects. In Proceedings of the International Conference on Advanced Information Networking and Applications Workshops, Bradford, UK, 26–29 May 2009; pp. 1067–1072. [Google Scholar]
- Mihancea, P.; Marinescu, R. Towards the optimization of automatic detection of design flaws in A Preliminary Mapping Study of Software Metrics Thresholds object-oriented software systems. In Proceedings of the Ninth European Conference on Software Maintenance and Reengineering, Manchester, UK, 21–23 March 2005; pp. 92–101. [Google Scholar]
- Rodriguez, D.; Ruiz, R.; Riquelme, J.; Harrison, R. A study of subgroup discovery approach for defect prediction. Inf. Softw. Technol. 2013, 55, 1810–1822. [Google Scholar] [CrossRef] [Green Version]
- Ampatzoglou, A.; Frantzeskou, G.; Stamelos, I. A methodology to assess the impact of design patterns on software quality. Inf. Softw. Technol. 2011, 54, 331–346. [Google Scholar] [CrossRef]
- El Emam, K.; Benlarbi, S.; Goel, N.; Melo, W.; Lounis, H.; Rai, S. The optimal class size for object oriented software. IEEE Trans. Softw. Eng. 2002, 28, 494–509. [Google Scholar] [CrossRef]
- Seliya, N.; Khoshgoftaar, T.M.; Zhong, S. Analyzing software quality with limited fault-proneness defect data. In Proceedings of the Ninth IEEE International Symposium on High-Assurance Systems Engineering (HASE’05), Heidelberg, Germany, 12–14 October 2005; pp. 89–98. [Google Scholar]
- Hall, T.; Beecham, S.; Bowes, D.; Gray, D.; Counsell, S. A systematic review of fault prediction performance in software engineering. IEEE Trans. Softw. Eng. 2012, 38, 1276–1304. [Google Scholar] [CrossRef]
- Rathore, S.; Kumar, S. A study on software fault prediction techniques. Artif. Intell. Rev. 2019, 51, 255–327. [Google Scholar] [CrossRef]
- Radjenovic, D.; Hericko, M.; Torkar, R.; Zivkovic, 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, EASE’16, ACM, New York, NY, USA, 1–3 June 2016; pp. 18:1–18:12. [Google Scholar]
- Zhang, M.; Hall, T.; Baddoo, N. Code bad smells: A review of current knowledge. J. Softw. Maint. Evol. 2011, 23, 179–202. [Google Scholar] [CrossRef]
- Rasool, G.; Arshad, Z. A review of code smell mining techniques. J. Softw. Evol. Process. 2015, 27, 867–895. [Google Scholar] [CrossRef]
- Nuñez-Varela, A.; Pérez-Gonzalez, H.; Martínez-Perez, F.; Soubervielle-Montalvo, C. Source code metrics: A systematic mapping study. J. Syst. Softw. 2017, 128, 164–197. [Google Scholar] [CrossRef]
- Srinivasan, K.; Devi, T. A comprehensive review and analysis on object-oriented software metrics in software measurement. Int. J. Comput. Sci. Eng. 2014, 6, 247–261. [Google Scholar]
Research Questions | Main Motivation |
---|---|
Q1. What kinds of threshold calculation methods exist in the literature? | Analyze directions and a good fit for threshold calculation methods. |
Q2. What are the quality attributes of the derived thresholds? | Identify which quality attributes exist in threshold calculation methods. |
Q3. What are the combinations of metrics found in literature? | Support metrics threshold calculation studies. |
Q4. What are the methodologies used in studies to derive thresholds? | Understand the different research methodologies of threshold calculation methods and their implications. |
Q5. Which metrics thresholds are found correlated with software quality attributes? | Identify relevant and irrelevant metrics for threshold calculation methods. |
Database | Total Results | Initial Results | Final Selection |
---|---|---|---|
IEEE Xplore | 52 | 24 | 16 |
Science Direct | 64 | 28 | 11 |
Springer | 46 | 16 | 7 |
Wiley | 39 | 18 | 2 |
ACM | 26 | 10 | 7 |
Others | 11 | 7 | 2 |
Total | 238 | 103 | 45 |
Sources | Criteria | Category |
---|---|---|
Source 1 | Articles that have been registered are database indexed. | Relevant |
Source 2 | Articles that are selected are relevant to Software Engineering. | Relevant |
Source 3 | Articles that describe various thresholds in software quality. | Relevant |
Source 4 | Articles that discuss different case studies about various metric thresholds. | Relevant |
Source 5 | Articles that do not focus on quality issues of software systems. | Irrelevant |
Source 6 | Articles that are not related to various metrics values and calculation strategies. | Irrelevant |
Source 7 | Articles that are written in languages other than English. | Irrelevant |
Phases | Scope | Criteria for Selection |
---|---|---|
First Phase | Title | 1, 2, 3, 4, 5, 6, and 7 |
Second Phase | Abstract and Conclusion | 1, 2, 4, 5, and 6 |
Third Phase | Entire article | 3, 4, 5, 6, and 7 |
Technique | Papers | # |
---|---|---|
Programmer experience | [3,33,34,35,36] | 5 |
Statistical properties from a corpus | [2,7,11,13,15,22,23,25,38,41,42,44,49,50,56,57,58,59,60,61,62,63] | 23 |
Quality related | [1,14,16,17,18,24,26,38,39,40,52,53,55,64,65,66] | 16 |
Review study | [27] | 1 |
Quality Attributes | Papers | # |
---|---|---|
Fault detection | [1,16,17,18,25,26,35,38,39,43,55,60,62,64,65,66] | 16 |
Bad Smells detection | [14,34,52,58,59,63] | 6 |
Design problems | [2,11,15,24,33,40,42,53,56] | 10 |
Reuse-proneness | [61] | 1 |
Metric Suits | Papers |
---|---|
CK only | [15,25,35,42,57,61,62,66] |
CK combined with size metrics only | [18,23,26,50,59,60,63,64] |
CK and other metrics | [1,2,11,13,17,22,33,34,38,39,40,41,43,55,56,58,65] |
No CK metrics | [3,7,14,24,44,52,53] |
Category | Studies/Papers |
---|---|
Empirical | Alves et al. [7], Aman et al. [67], Arar and Ayan [1], Boucher and Badri [18], Barkmann et al. [68], Ferreira et al. [2], Malhotra and Bansal [40], Mihancea and Marinescu [69], Rodriguez et al. [70], Shatnawi et al. [17] |
Empirical and Theoretical | Ampatzoglu et al. [71], Al Dallal [52], El Emam et al. [72], Sodiya et al. [33], Shatnawi [62] |
Theoretical and Review | Beranic and Hericko [3], Ronchieri and Canaparo [27] |
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations. |
© 2021 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 (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Mishra, A.; Shatnawi, R.; Catal, C.; Akbulut, A. Techniques for Calculating Software Product Metrics Threshold Values: A Systematic Mapping Study. Appl. Sci. 2021, 11, 11377. https://doi.org/10.3390/app112311377
Mishra A, Shatnawi R, Catal C, Akbulut A. Techniques for Calculating Software Product Metrics Threshold Values: A Systematic Mapping Study. Applied Sciences. 2021; 11(23):11377. https://doi.org/10.3390/app112311377
Chicago/Turabian StyleMishra, Alok, Raed Shatnawi, Cagatay Catal, and Akhan Akbulut. 2021. "Techniques for Calculating Software Product Metrics Threshold Values: A Systematic Mapping Study" Applied Sciences 11, no. 23: 11377. https://doi.org/10.3390/app112311377