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