소스코드의 다중 피처를 이용한 복잡도 분석 - 박준갑 (The Graduate School, Ajou University, 2017)
소프트웨어 복잡도에 대한 정량화는 개발, 유지보수, 테스팅 등 소프트웨어 공학의 많은 분야에서 사용되고 있다. 이러한 소프트웨어의 복잡한 정도를 정량화 할 수 있는 대표적인 메트릭(Metrics)으로 Lines of Code(LOC), Halstead Complexity Metrics(HCM), Cyclomatic Complexity Metrics(CCM) 등이 존재한다. 하지만 이들 메트릭은 특정 관점에 치우쳐 있는 경향이 강하며, 실제 프로그래머들이 생각하는 복잡도와는 차이가 있을 수 있다. 본 연구에서는 LOC, HCM, CCM과 같이 특정 관점에 치우친 복잡도 측정이 아닌, 소스코드의 여러 특성을 고려하여 이를 기반으로 한 복잡도를 정량화 할 수 있는 방법을 제시한다. 이를 위해 이들 메트릭을 포함한 소스코드 본연의 특성을 나타내는 피처(Features)를 이용한다. 그리고 소스코드의 피처와 프로그래머들이 생각하는 복잡도 레벨 사이의 관계를 분석하기 위해, 이들 사이의 일치율(Concordance rate), 승산비(Odds Ratio)를 도출해내어, 이를 이용한 소프트웨어 복잡도에 대한 정량화 모델을 제시하는 것을 목표로 한다. 이처럼 소스코드의 다중 피처를 이용하여 복잡도를 정량화 할 수 있는 모델을 제시할 수 있게 된다면, 보다 프로그래머들의 생각에 가까운, 보다 합리적이고 보편적인 복잡도의 측정이 가능할 것이라 기대된다.
학위논문(석사)--아주대학교 일반대학원 :소프트웨어특성화학과,2017. 2
Keywords: Software complexity; Source code features