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의 값을 비교해 본 결과 제안된 복잡도 척도의 계산 결과 제안된 복잡도 척도의 계산 결과 값이 그 값들보다 좀 더 복잡도를 잘 표현하고 있었다. 이로써 소프트웨어 개발 주기의 초기에 클래스에 대한 복잡도를 평가해 보고, 나머지 단계에 필요한 시간과 노력을 예측함으로써 보다 비용-효과적인 객체지향 소프트웨어를 개발할 수 있는 가능성이 높아진다.