Analysis of Object-Oriented Metrics to Predict Software Reliability

소프트웨어 신뢰성 예측을 위한 객체지향 척도 분석

  • Lee, Yangkyu (Department of Distribution & Management Information Systems Seowon University)
  • 이양규 (서원대학교 글로벌경영대학 유통경영정보학과)
  • Received : 2016.03.02
  • Accepted : 2016.03.16
  • Published : 2016.03.25

Abstract

Purpose: The purpose of this study is to identify the object-oriented metrics which have strong impact on the reliability and fault-proneness of software products. The reliability and fault-proneness of software product is closely related to the design properties of class diagrams such as coupling between objects and depth of inheritance tree. Methods: This study has empirically validated the object-oriented metrics to determine which metrics are the best to predict fault-proneness. We have tested the metrics using logistic regressions and artificial neural networks. The results are then compared and validated by ROC curves. Results: The artificial neural network models show better results in sensitivity, specificity and correctness than logistic regression models. Among object-oriented metrics, several metrics can estimate the fault-proneness better. The metrics are CBO (coupling between objects), DIT (depth of inheritance), LCOM (lack of cohesive methods), RFC (response for class). In addition to the object-oriented metrics, LOC (lines of code) metric has also proven to be a good factor for determining fault-proneness of software products. Conclusion: In order to develop fault-free and reliable software products on time and within budget, assuring quality of initial phases of software development processes is crucial. Since object-oriented metrics can be measured in the early phases, it is important to make sure the key metrics of software design as good as possible.

Keywords

References

  1. Boehm, B. W. (1981). "Software engineering economics". Prentice-Hall.
  2. Chidamber, S. R. and Kemerer, C. F. (1994). "A metrics suite for object oriented design". Software Engineering, IEEE Transactions on, Vol. 20, No. 6, pp. 476-493. https://doi.org/10.1109/32.295895
  3. Daly, J., Brooks, A., Miller, J., Roper, M. and Wood, M. (1995). "An empirical study evaluating depth of inheritance on the maintainability of object-oriented software". Empirical Software Engineering: An International Journal. Vol. 1, No. 2, pp. 109-132. https://doi.org/10.1007/BF00368701
  4. Briand, L. C., Morasca, S. and Basili, V. R. (1996). "Property-based software engineering measurement". Software Engineering, IEEE Transactions on, Vol. 22, No. 1, pp. 68-86. https://doi.org/10.1109/32.481535
  5. Cartwright, M. (1998). "An empirical view of inheritance". Information and Software Technology, Vol. 40, No. 14, pp. 795-799. https://doi.org/10.1016/S0950-5849(98)00105-0
  6. Li, W. and Henry, S. (1993). "Object-oriented metrics that predict maintainability". Journal of systems and software, Vol. 23, No. 2, pp. 111-122. https://doi.org/10.1016/0164-1212(93)90077-B
  7. Melo, W. (1996). "Evaluating the impact of object-oriented design on software quality". In Software Metrics Symposium, 1996, Proceedings of the 3rd International, pp. 90-99.
  8. Briand, L., Devanbu, P. and Melo, W. (1997). "An investigation into coupling measures for C++". In Proceedings of the 19th international conference on Software engineering, pp. 412-421.
  9. Lorenz, M. and Kidd, J. (1994). "Object-oriented software metrics: a practical guide". Prentice-Hall.
  10. Bansiya, J. and Davis, C. G. (2002). "A hierarchical model for object-oriented design quality assessment". Software Engineering, IEEE Transactions on, Vol. 28, No. 1, pp. 4-17. https://doi.org/10.1109/32.979986
  11. Malhotra, R., Kaur, A. and Singh, Y. (2010). "Empirical Validation of Object-Oriented Metrics to Predict Fault Proneness Using Open Source Software". Software Quality Professional Magazine, Vol. 13, No. 1.
  12. Shirabad, J. S. and Menzies, T. J. (2005). "The PROMISE repository of software engineering databases". School of Information Technology and Engineering, University of Ottawa, Canada, 24.