DOI QR코드

DOI QR Code

A Heuristic Metric for Measuring Complexity of Class Inheritance Structures

클래스 상속구조에 대한 경험적 복잡성 척도

  • Published : 2002.08.01

Abstract

The deeper the hierarchy of a inheritance structure is, the better the reusability of the structure is, but the more difficult the understandability and the maintainability of it is. On the contrary, the shallower the hierarchy is, the worse the abstraction of the inheritance structure is, but the better the understandability and modifiability of it is. Therefore, it is to be desired that a deep hierarchy of a inheritance structure should be split to be shallow for the maintainability of a system. This paper proposed a complexity metric that is based on DIT and NOC of Chidamber and Kemerer, and solved the ambiguity of the metrics of them, which was pointed out by Li. The metric is a simple and heuristic one for measuring the complexity of class inheritance structures by considering the number of ancestor classes and descendant classes and the depth of inheritance hierarchy. This provides a quantitative information for assessing the complexity of a inheritance structure in splitting it.

상속구조의 계층이 깊어질수록 재사용성은 좋으나 이해하기가 어려워지고 유지보수가 힘들어 진다. 반대로 계층이 얕을수록 추상성이 부족하나 이해성과 수정성이 좋아진다. 따라서 시스템의 유지보수성을 위해서는 깊은 상속구조를 분리하여 얕은 상속구조로 만드는 것이 바람직하다. 본 연구에서 제안한 복잡성 척도는 Chidamber and Kemerer의 상속구조에 관한 척도인 DIT(Depth of Inheritance Tree)와 NOC(Number Of Children)를 기초로 Li가 지적한 Chidamber and Kemerer 척도의 모호성을 해결한 통합적 척도로서, 클래스 상속구조의 복잡성 측정에 있어서 조상 클래스 수, 자손 클래스 수, 상속구조의 깊이를 고려한 간단하고 휴리스틱한 척도이다. 이는 상속구조의 분리에 있어서 복잡도를 정량적으로 평가할 수 있는 정보를 제공한다.

Keywords

References

  1. F. Abreu, "The MOOD Metrics Set," Proc. ECOOP'95 Workshop on Metrics, 1995
  2. N. Balasubramanian, "Object-oriented Metrics," 0-8186-7638-8/96/, IEEE, pp.30-34, 1996
  3. V. Basili, L. Briand, and W. Melo, "A Validation of Object-Oriented Design Metrics as Quality Indicator," Technical Report, Univ. of Maryland, Dept. of Computer Science, College Park, MD, 20742 USA, pp. 1-24, April 1995
  4. L. Briand and S. Morasca, "Defining and Validating Measures for Object-Based High-Level Design," IEEE Transactions on Software Engineering, Vol.25, No.5, 1999
  5. L. Briand, J. Wust, J. Daly, and V. Porter, "Exploring the relationships between design measures and software quality on object-oriented systems," The Journal of Systems and Software, Vol.51, pp. 245-273, 2000 https://doi.org/10.1016/S0164-1212(99)00102-8
  6. S. Chidamber and C. Kemerer, ""Towards a metric suite for object-oriented design," Proc. OOPSLA'91, Sigplan Notices, 26(11), pp. 197-211, 1991 https://doi.org/10.1145/118014.117970
  7. S. Chidamber and C. Kemerer, "A Metrics Suite for Object Oriented Design," IEEE Transactions on Software Engineering, Vol.20, No.6, pp. 476-493, 1994 https://doi.org/10.1109/32.295895
  8. R. Harrison, S. Counsell, and Nithi, "An Evaluation of the MOOD Set of Object-Oriented Software Metrics," IEEE Transactions on Software Engineering, Vol.24, No.6, pp. 491-496, 1998 https://doi.org/10.1109/32.689404
  9. B. Henderson-Sellers, Object-Oriented metrics: measures of complexity, Prentice Hall, 1996
  10. B. Kitchenham, S. Pfleeger, and N. Fenton, "Towards a Framework for Software Measurement Validation," IEEE Transactions on Software Engineering, Vol.21, No.12, 1995
  11. A. Lake and C. Cook, "Use of Factor Analysis to develop OOP software complexity metrics," Proc. Workshop on Software Metrics, Silver Falls, Oregon, 1994
  12. W. Li, "Another metric suite for object-oriented programming," The Journal of Systems and Software, Vol.44, pp. 155-162, 1998 https://doi.org/10.1016/S0164-1212(98)10052-3
  13. T. McCabe, L. Dreyer, A. Dunn and A. Waston, "Testing an object-oriented application," Quality Assurance Institute, pp. 21-27, 1994.
  14. J. Sherif and P. Sanderson, "Metrics for object-oriented software projects," The Journal of Systems and Software, Vol.44, pp. 147-154 , 1998 https://doi.org/10.1016/S0164-1212(98)10051-1
  15. L. Tahvildari and A. Singh, "Categorization of Object-Oriented Software Metrics," 0-7803-5957-7/00/, IEEE, pp. 235-239, 2000
  16. D. Tegarden, S. Sheetz, and D. Monarchi, "A software complexity model of object-oriented systems," Decision Support Systems 13(34), pp. 241-262, 1992
  17. C. Wang, T. Shih, and W. Pai, "An Automatic Approach to Object-Oriented Software Testing and Metrics for C++ Inheritance Hierarchies," International Conference on Information, Communication and Signal Processing, ICICS'97, Singapore, 9-12 Sep., 1997, pp. 934-938
  18. E. Weyuker, "Evaluating software complexity measures," IEEE Transactions on Software Engineering, Vol.14, pp.1357-1365, 1988 https://doi.org/10.1109/32.6178