An Empirical Validation of Complexity Metrics for Java Programs

Java 프로그램에 대한 복잡도 척도들의 실험적 검증

  • 김재웅 (전북대학교 컴퓨터과학과) ;
  • 유철중 (전북대학교 컴퓨터과학과) ;
  • 장옥배 (전북대학교 컴퓨터과학과)
  • Published : 2000.12.01

Abstract

본 논문에서는 Java 프로그램의 복잡도를 측정하기 위해 필요한 인자들을 제안하였다. 이러한 인자들을 추출하기 위해 Java 프로그램을 분석하여 객체지향 설계 척도 값들을 계산하고 통계적 분석을 수행하였다. 그 결과 기존의 연구에서 발견되었던 클래스의 크기 인자 외에도 메소드 호출 빈도, 응집도, 자식 클래스의 수, 내부 클래스 및 상속 계층의 깊이가 주요 인자임이 파악되었다. 클래스의 크기 척도로 분류되었던 자식 클래스의 수는 다른 크기 척도들과 다른 성질을 가진다는 것을 발견하였다. 또한 프로그램의 크기가 커지고 결합도가 높아질수록 응집도가 떨어진다는 것을 입증하였다. 그리고 인자 분석을 바탕으로 인간의 인지 능력과 인자의 상관관계를 고려한 가중치를 적용하기 위해 인자별로 회귀분석을 수행하였다. 보다 적은 척도를 가지고 인자를 설명할 수 있는 회귀식을 도출하였다. 두 그룹에 대한 교차 검증 결과 회귀식이 높은 신뢰도를 가지는 것으로 나타났다. 따라서 본 논문에서 제안한 인자들을 이용하는 경우 Java 프로그램의 복잡도를 측정할 수 있는 새로운 척도로 사용할 수 있다.

Keywords

References

  1. Mohammad A., 'Putting Metrics into Software Perspectives,' http://www.cs.usask.ca/homepages/ grads/moa135/856/metrics/metrics.html, Oct. 1995
  2. Chidamber S. R. and Kemerer C. F., 'A Metrics Suite for Object-Oriented Design,' IEEE Trans. on Software Engineering, Vol. 20, No.6, pp. 476-493, Jun. 1994 https://doi.org/10.1109/32.295895
  3. Fenton N., Software Metrics - A Rigorous Approach, Chapman and Hall, 1991
  4. Hitz M., Montazeri B., 'Measuring Coupling and Cohesion in Object-Oriented Systems,' in Proc. Int. Symposium on Applied Corporate Computing, Monterey, Mexico, Oct. 1995
  5. Bieman J. M., Kang B. K., 'Cohesion and Reuse in an Object-Oriented System,' in Proc. ACM Symp. Software Reusability(SSR'94), pp. 259-262, 1995 https://doi.org/10.1145/211782.211856
  6. Henderson-sellers B., 'Object-Oriented Metrics: Measures of Complexity,' Prentice-Hall, Hemel Hempstead, UK, 1996
  7. Briand L., Morasca S., and Basili V., 'Property Based Software Engineering Measurement,' IEEE Trans. on Software Engineering, Vol. 22, No.1, pp, 68-86, Jan. 1996 https://doi.org/10.1109/32.481535
  8. Ramon A. Mata-Toledo, David A. Gustafson, 'A Factor Analysis of Software Complexity Measures,' Journal of Systems and Software, Vol. 17, pp, 267-273, 1992 https://doi.org/10.1016/0164-1212(92)90115-Z
  9. Daniel Coupal and Pierre N. Robillard, 'Factor Analysis of Source Code Metrics,' Journal of Systems and Software, Vol. 12, pp, 263-269, 1990 https://doi.org/10.1016/0164-1212(90)90048-Q
  10. Li Wei, Henry Sallie, 'Object-Oriented Metrics that Predict Maintainability,' Journal of Systems and Software, Vol. 23, pp. 111-122, 1993 https://doi.org/10.1016/0164-1212(93)90077-B
  11. Samuel B. Green, Neil Salkind, Teresa Akcy, and Neil J. Salkind, Using SPSS for Windows: Analyzing and Understanding Data, Upper Saddle River, NJ: Prentice Hall, 1997
  12. Lakshmanian K. B., Iavaprakasb S., and Sinha P. K, 'Properties of Control-Flow Complexity Measures,' IEEE Trans. on Software Engineering, Vol. 17, No. 12, pp. 1289-1295, Dec. 1991 https://doi.org/10.1109/32.106989
  13. Tian J. and Zelkowitz M. V., 'A Formal Program Complexity Model and Its Application,' Journal of Systems and Software, Vol. 17, pp, 253-266, 1992 https://doi.org/10.1016/0164-1212(92)90114-Y
  14. Weyuker E. J, 'Evaluating Software Complexity Measures,' IEEE Trans. on Software Engineering, Vol. 14, No.9, pp. 1357-1365, Sept. 1988 https://doi.org/10.1109/32.6178
  15. Roger S. Pressman, Software Engineering - A Practitioner's Approach, McGraw-Hill, 1998
  16. Briand L., Daly J., and Wust J., 'A Unified Framework for Cohesion Measurement in Object Oriented Systems,' Empirical Software Engineering Journal, 3(1), pp. 65-117, 1998 https://doi.org/10.1023/A:1009783721306
  17. McCabe, T. J., 'A Complexity Measure,' IEEE Trans. on Software Engineering, Vol. 2, No.4, pp. 308-320, April 1976
  18. Brian W. Bush, BANDA Java Packages, http:// www.siadon.com/java
  19. Andrew Cain, Rajcsh Vasa, Java Metric Analyser, http://www.csse.swin.edu.au/cotar/jmetric/ index.html