무기체계가 복잡하고 정밀해지면서 소프트웨어에 의한 기능구현 비중이 현저히 증가함에 따라 성공적인 무기체계 개발을 위해서는 사업 초기에 보다 정확한 소프트웨어 개발비용 추정이 요구된다. 소프트웨어 개발비는 기능점수법을 이용하여 소프트웨어 규모를 추정하고 이를 토대로 비용을 산정한다. 그러나 사용자 요구사항 분석이 구체화 되지 않은 사업 초기에 소프트웨어 규모를 추정하기 위해 기능을 식별하고, 기능의 복잡도 수준을 평가하는 것은 현실적으로 어려움이 많다. 이 중 기능 복잡도 수준 평가의 어려움을 해결하기 위해 기능점수법에서 기능의 복잡도 평가 절차를 생략하고 각 기법에서 제안하는 복잡도 가중치를 일괄적으로 적용하도록 하는 기능점수법이 다양하게 연구되어왔다. 각 기법에서는 복잡도 평가 절차를 생략하되, 과거 개발된 소프트웨어의 기능점수를 토대로 통계적인 분석을 통해 적정 수치를 복잡도 가중치로 설정하고 기능점수 산정시 복잡도 가중치를 일괄 적용함으로써 과적합 및 잡음, 이상치 등에 취약한 한계점이 있다.
이러한 기존기법에서의 기법적 한계를 극복하기 위한 대안으로 본 연구에서는 머신러닝의 한 방법인 랜덤 포레스트를 적용하여 소프트웨어 기능점수를 추정하는 방안을 제안하고자 한다. 이를 위해 10년간의 소프트웨어 개발 실적 자료를 수집하여 유효한 데이터를 정리하고, 기능점수 추정에 영향을 미치는 요인을 식별하여 랜덤 포레스트 기반 소프트웨어 기능점수 추정 모델을 구축한다. 그리고 모델 검증을 위하여 기존 기능점수법들과 비교하여 평가한다.
제안한 방법을 검증한 결과 랜덤 포레스트 기반 기능점수 추정 모델이 기존 기능점수법 보다 실제 개발된 소프트웨어의 기능점수와 더 유사한 추정값을 보인다. 제안한 기법을 통해 기능점수 전문가의 수작업에 의존하는 기능 복잡도 추정의 비효율성 문제를 해결하며, 사업초기 단계에 보다 정확한 기능점수 추정을 통해 소프트웨어 개발비용 추정의 정확성 향상을 기대할 수 있다.