Measurement of Classes Complexity in the Object-Oriented Analysis Phase

객체지향 분석 단계에서의 클래스 복잡도 측정

  • Kim, Yu-Kyung (Dept.of Information Science, Sookmyung Women's University) ;
  • Park, Jai-Nyun (Dept.of Information Science, Sookmyung Women's University)
  • 김유경 (숙명여자대학교 정보과학부) ;
  • 박재년 (숙명여자대학교 정보과학부)
  • Published : 2001.10.01

Abstract

Complexity metrics have been developed for the structured paradigm of software development are not suitable for use with the object-oriented(OO) paradigm, because they do not support key object-oriented concepts such as inheritance, polymorphism. message passing and encapsulation. There are many researches on OO software metrics such as program complexity or design metrics. But metrics measuring the complexity of classes at the OO analysis phase are needed because they provide earlier feedback to the development project. and earlier feedback means more effective developing and less costly maintenance. In this paper, we propose the new metrics to measure the complexity of analysis classes which draw out in the analysis based on RUP(Rational Unified Process). By the collaboration complexity, is denoted by CC, we mean the maximum number of the collaborations can be achieved with each of the collaborator and determine the potential complexity. And the interface complexity, is denoted by IC, shows the difficulty related to understand the interface of collaborators each other. We verify theoretically the suggested metrics for Weyuker's nine properties. Moreover, we show the computation results for analysis classes of the system which automatically respond to questions of the user using the text mining technique. As a result of the comparison of CC and CBO and WMC suggested by Chidamber and Kemerer, the class that have highly the proposed metric value maintain the high complexity at the design phase too. And the complexity can be represented by CC and IC more than CBO and WMC. We can expect that our metrics may provide us the earlier feedback and hence possible to predict the efforts, costs and time required to remainder processes. As a result, we expect to develop the cost-effective OO software by reviewing the complexity of analysis classes in the first stage of SDLC(Software Development Life Cycle).

구조적 개발 방법론에 적용하도록 만들어진 복잡도 척도들을 클래스의 상속성, 다형성, 메시지 전달 그리고 캡슐화와 같은 객체지향의 개념에 직접적으로 적용할 수 없다. 또한 기존의 객체지향 소프트웨어에 대한 척도의 연구는 프로그램의 복잡도나, 설계 단계의 척도가 대부분이었다. 실제로 분석단계 클래스의 복잡도를 낮춤으로서 시스템의 개발 노력이나 비용 및 유지보수 단계에서의 노력이 크게 줄어들게 되므로, 분석 클래스에 대한 복잡도를 측량하기 위한 척도가 필요하다. 본 논문에서는 객체지향 개발방법론인 RUP(Rational Unified Process)의 분석 단계에서 추출되는 분석 클래스에 대해서 복잡도를 측정할 수 있는 새로운 척도를 제안한다. 협력 복잡도CC(Collaboration Complexity)는 가능한 협력의 최대 수로서 클래스가 잠재적으로 얼마나 복잡할 수 있는지를 측정하기 위한 척도이며, 각 협력자들의 인터페이스를 이해하는 것과 관련된 총체적 어려움을 측정하는 인터페이스 복잡도 IC(Interface Complexity)를 정의하였다. 제안된 척도는 Weyuker의 9가지 공리적 성질에 대하여 이론적인 검증을 하였으며, 텍스트 마이닝 기법을 사용하여 사용자의 질문에 자동으로 응답하는 시스템의 분석 클래스에 대하여 제안된 척도를 적용하여 복잡도를 측정하였다. 제안된 CC와 IC의 값과 Chidamber와 Kemerer가 제안된 CBO와 WMC의 값을 비교해 본 결과, 제안된 복잡도 척도의 계산결과 값이 큰 클래스의 경우에는 설계 이후 단계에서도 역시 복잡도가 커지게 되는 것을 알 수 있었다. 이로써 소프트웨어개발 주기의 초기에 클래스에 대한 복잡도를 평가해 보고, 나머지 단계에 필요한 시간과 노력을 예측함으로써 보다 비용-효과적인 객체지향 소프트웨어를 개발할 수 있는 가능성이 높아질 것으로 기대된다.

Keywords

References

  1. T. J. McCabe, 'A Complexity Measure,' IEEE Transactions on Software Engineering, December 1976, Vol. SE-2, No.(4). pp.308-320 https://doi.org/10.1109/TSE.1976.233837
  2. Halstead, M., Elements of Software Science, New York: Elsevier North-Holland, 1977
  3. Basil, W. G., Zelkowitz, M. V., 'Program Complexity C sing Hierarchical Abstract Computers,' Computer Language, Vol. 13, No. 3, pp.109-123, 1988 https://doi.org/10.1016/0096-0551(88)90019-7
  4. Wilde N.. Huitt R, 'Maintenance Support for Object-Oriented Programs,' IEEE Transactions on Software Engineering, Vol.18, pp.1038-1044, 1992 https://doi.org/10.1109/TSE.1992.1263033
  5. E. M. Kim, O. B Chang, S. Kusumoto, and T. Kikuno. 'Analysis of Metrics for Object-Oriented Program Complexity,' Proceedings of COMPSAC '94, pp.201-207. 1994 https://doi.org/10.1109/CMPSAC.1994.342806
  6. Xiaowei Liu, 'Object-Oriented Software Metrics,' Ph. M Thesis. Department of Computer Science, University of Manitoba, Canada, 1999
  7. S. R. Chidamber and C. F. Kemerer, 'A Metric Suite for Object Oriented Design,' IEEE Transactions On Software Engineering, Vol. 17, No. 6, pp.636-638, June 1994 https://doi.org/10.1109/32.87287
  8. B. Henderson S., Objectr Oriented Metrics : Measures of Complexity, Prentice-Hall, 1996
  9. F. B Abreu and W. Melo, 'Evaluation the Impact of Object-Oriented Design on Software Quality,' Proceedings of the 3rd International Software Metrics Symposium, Berlin, Germany, pp.90-99, March 1996 https://doi.org/10.1109/METRIC.1996.492446
  10. Li, Wei and S Henry, 'Maintenance Metrics [or the Object-Oriented Paradigm,' Proceedings of First International Software Metrics Symposium, IEEE Computer Society Press, pp.52-60, 1993 https://doi.org/10.1109/METRIC.1993.263801
  11. R. Sharble, S. Cohen, 'The Object-Oriented Brewery : A Comparison of Two Object-Oriented Development Methods,' SIGSOFT Software Engineering Notes, Vol. 18, No. 4, pp. 60-73, 1993 https://doi.org/10.1145/159420.155839
  12. 김유경, 박재년, '클래스 기반 분석 모델에 대한 복잡도 메트릭', 제27회 한국 정보과학회 춘계학술발표대회 논문집, 제27권, 제1호, pp.516-518, 2000
  13. 김은미, 전형수, 장옥배, Shinji KUSUMOTOD, Tohru KIKUBO, and Yoshihiro TAKADA, 'C++프로그램의 복잡도 척도 및 평가 도구', 정보과학회 논문지(C), 제3권, 제6호, pp.656-665, 1997
  14. G. Booch, J. Rumbaugh, and I. Jacobson, The Unified Modeling Language User Guide, Addison-Wesley Longman, 1998
  15. G. Booch, J. Rumbaugh, and I. Jacobson, The Unified Software Development Process, Addison-Wesley Longman, 1998
  16. 채홍석, 권용래, 배두환, '객체지향 시스템의 클래스에 대한 응집도', 정보과학회 논문지, 제26권, 제9호, pp.1095-1104, 1999
  17. R. W. Brock, R. Wilkerson, and L. Weiner, Designing Object -Oriented Software, Prentice-Hall. 1990
  18. E. J. Weyuker, 'Evaluating software complexity measures,' IEEE Transactions on Software Engineering, Vol. 14 No. 9, pp.1357-1365, 1988 https://doi.org/10.1109/32.6178
  19. C. Cherniavsky and C. E. Smith, 'On Weyuker' s axioms for software complexity measures,' IEEE Transactions on Software Engineering, Vol. 17 No. 6, pp.636-638, June 1991 https://doi.org/10.1109/32.87287