엔트로피 기반 소프트웨어 메트릭 평가와 결함 예측
본 논문은 Chidamber‑Kemerer(CK) 메트릭을 실험적으로 검증하고, WMC(Weighted Methods per Class)를 셰넌 엔트로피로 표현한 새로운 복잡도 지표를 제안한다. 5개의 C++ 프로젝트를 대상으로 결함 발생과 설계 복잡도 간의 상관관계를 분석했으며, 엔트로피 기반 WMC가 클래스 수준의 결함 예측에 유의미한 정보를 제공함을 확인하였다.
저자: R.Selvarani, T.R.Gopalakrishnan Nair, Muthu Ramach
본 논문은 현대 소프트웨어 개발에서 설계 단계의 복잡도가 유지보수 비용과 결함 발생에 미치는 영향을 정량화하고자, 객체지향 설계 메트릭인 Chidamber‑Kemerer(CK) 집합을 실증적으로 검증한다. 서론에서는 객체지향 설계가 전통적인 절차형 개발보다 재사용성과 모듈성을 제공하지만, 설계 복잡도가 증가하면 유지보수 비용이 급증한다는 점을 강조한다. 이를 해결하기 위해 설계 단계에서 메트릭을 활용해 위험 요소를 조기에 식별하고, 설계 개선을 유도하는 것이 필요하다고 제시한다.
2절에서는 메트릭 평가 기준을 소개한다. 메트릭은 실제 세계의 속성을 수치화하는 과정이며, 좋은 메트릭은 비동일성, 비단조성, 설계 세부사항 반영, 단조성, 상호작용 비동등성, 상호작용 증가 등 6가지 속성을 만족해야 한다. 이러한 속성을 기반으로 CK 메트릭을 정의하고, 각 메트릭이 어떤 설계 특성을 측정하는지 상세히 설명한다.
3절에서는 기존 문헌에서 CK 메트릭이 결함 예측에 유효함을 입증한 여러 연구를 정리한다. 특히, Bouch와 Subramanyam·Krishnan의 연구가 설계 단계에서 클래스 식별, 의미 부여, 관계 파악, 구현 순서 등을 체계화한 절차를 제시한 점을 인용한다.
4절에서는 제안된 새로운 복잡도 지표를 소개한다. 기존 WMC는 클래스 내 메소드 수 혹은 메소드 복잡도의 단순 합계였으나, 저자는 이를 셰넌 엔트로피로 재정의한다. 구체적으로, 각 메소드의 복잡도 비율 p_i를 구하고, H = ‑∑p_i log₂ p_i 로 계산한다. 엔트로피가 높을수록 메소드 복잡도가 고르게 분포되어 설계가 복잡함을 의미한다. 이 접근은 “상호작용 증가” 속성을 수학적으로 증명하며, 두 클래스를 결합했을 때 엔트로피가 증가한다는 현상을 설명한다.
실험 설계는 인도 방갈로르의 대학생 팀이 만든 5개의 C++ 프로젝트(총 8,000 LOC 이상)를 대상으로 진행되었다. 각 프로젝트의 클래스에 대해 CK 메트릭(Weighted Methods per Class, Depth of Inheritance Tree, Number of Children, Coupling Between Object Classes, Response For a Class, Lack of Cohesion of Methods)과 엔트로피 기반 WMC를 자동 추출하였다. 이후 버그 트래킹 시스템에서 수집한 결함 데이터를 매핑해 클래스별 결함 발생 횟수를 획득했다.
통계 분석 결과, 전통적인 WMC와 결함 발생 사이의 상관계수는 0.31에 불과했으나, 엔트로피 기반 WMC는 0.49로 현저히 높았다. 로지스틱 회귀 모델에 모든 메트릭을 포함했을 때, 모델 설명력(R²)은 0.42였으며, 엔트로피 기반 WMC만을 추가했을 때 0.58로 상승했다. CBO와 RFC는 여전히 높은 결합도와 응답 복잡도를 나타내는 중요한 변수였으며, NOC와 DIT는 결함 예측에 상대적으로 낮은 기여도를 보였다.
논문은 또한 메트릭 속성 검증을 통해 제안된 엔트로피 기반 WMC가 비동일성(같은 클래스라도 엔트로피 값이 다름), 비단조성(복잡도가 증가해도 엔트로피가 감소하지 않음), 설계 세부사항 반영(메소드 복잡도 분포를 고려), 단조성(두 클래스를 합칠 때 엔트로피가 최소 두 클래스 엔트로피 이상), 상호작용 비동등성(결합 전후 엔트로피 차이) 등을 만족함을 증명한다.
결론에서는 엔트로피를 활용한 복잡도 측정이 기존 정적 메트릭의 한계를 보완하고, 설계 단계에서 결함 위험을 정량적으로 평가할 수 있는 실용적인 도구가 될 수 있음을 강조한다. 또한, 향후 연구에서는 엔트로피 기반 메트릭을 다른 프로그래밍 언어와 대규모 산업 프로젝트에 적용해 일반화 가능성을 검증하고, 자동화된 설계 리팩터링 도구와 연계하는 방안을 제시한다.
원본 논문
고화질 논문을 불러오는 중입니다...
댓글 및 학술 토론
Loading comments...
의견 남기기