Complexity Metrics for Analysis Classes in the Unified Software Development Process

Unified Process의 분석 클래스에 대한 복잡도 척도

  • 김유경 (숙명여자대학교 대학원 컴퓨터과학과) ;
  • 박재년 (숙명여자대학교 컴퓨터과학과)
  • Published : 2001.02.01

Abstract

Object-Oriented (OO) methodology to use the concept like encapsulation, inheritance, polymorphism, and message passing demands metrics that are different from structured methodology. There are many studies for OO software metrics such as program complexity or design metrics. But the metrics for the analysis class need to decrease the complexity in the analysis phase so that greatly reduce the effort and the cost of system development. In this paper, we propose new metrics to measure the complexity of analysis classes which draw out in the analysis phase based on 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 detennine the potential complexity. And the interface complexity, is denoted by IC, shows the difficulty related to understand the interface of collaborators each other. We prove mathematically that the suggested metrics satisfy OO characteristics such as class size and inheritance. And we verify it theoretically for Weyuker' s nine properties. Moreover, we show the computation results for analysis classes of the system which automatically respond to questions of the it's user using the text mining technique. As we compared CC and IC to CBO and WMC, the complexity can be represented by CC and IC more than CBO and WMC. 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).

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

Keywords

References

  1. Clark A., Michael S., 'Object-Oriented Software Measures,' CMU/SEI 95-TR-002, April 1995
  2. D. H. Abbott, T. D. Korson, and J. D. McGregor, 'A Proposed Design Complexity Metric for Object-Oriented Development,' Technical Report TR-105, Clemson University, 1994
  3. G. Booch, J. Rumbaugh, and I. Jacobson, The Unified Modeling Language User Guide, Addison-Wesley Longman, 1998
  4. G. Booch, J. Rumbaugh, and I. Jacobson, The Unified Software Development Process, Addison-Wesley Longman, 1998
  5. Ivan P. Paltor, Johan L., 'Digital Sound Recorder : A case study on designing systems using the UML notation,' TUCS Technical Report No.234, January 1999
  6. Chidamber S. R., C.F. Kemerer, 'A Metrics Suite for Object-Oriented Design,' IEEE Trans. Software Engineering, Vol.20, No.6, pp.476-493, June 1994 https://doi.org/10.1109/32.295895
  7. Li, Wei and S. Henry, 'Maintenance Metrics for 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
  8. 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
  9. 김유경, 박재년, '객체지향 설계의 특성을 고려한 품질 평가 메트릭스', 한국정보과학회 논문지, 제7권, 제2호, 2000
  10. 이종석, 우치수, '객체지향 시스템에서의 클래스 응집도와 결합도 메트릭', 한국정보과학회 논문지, 제27권 제6호, pp.595-606, 2000
  11. 김은미, 전형수, 장옥배, S. KUSUMOTOD, T. KIKUNO, Y. TAKADA, 'C++ 프로그램의 복잡도 척도 및 평가 도구',정보과학회 논문지, 제3권 제6호, pp.656-665, 1997
  12. R. Wirfs-Brock, B. Wilkerson, and L. Weiner, 'Designing Object-Oriented Software,' Prentice-Hall, 1990
  13. E. J. Weyuker, 'Evaluating software complexity measures,' IEEE Tran. on SE, Vol.14 No.9, pp.1357-1365, 1988 https://doi.org/10.1109/32.6178
  14. J. C. Cherniavsky and C. H. Smith, 'On Weyuker's axioms for software complexity measures,' IEEE Tran. on SE, Vol.17 No.6, pp.636-638, June 1991 https://doi.org/10.1109/32.87287
  15. B. Henderson S., Object-Oriented Metrics: Measures of Complexity, Prentice-Hall, 1996
  16. 채홍석, 권용래, 배두환, '객체지향 시스템의 클래스에 대한 응집도', 정보과학회 논문지, 제26권 제9호, pp.1095-1104, 1999