COCOMO 공수 추정 쉽게 이해하기 — 개념과 원리
기본 COCOMO(Constructive Cost Model)는 프로그램 규모를 천 줄 단위 코드 수(KLOC)로 추정한 값을 받아 개발 공수(인월), 표준 개발 기간(개월), 그에 따른 평균 투입 인원을 계산하는 모델입니다. 배리 보엠이 1981년 실제 완료된 여러 프로젝트 자료를 바탕으로 발표했으며, 오늘날에는 주로 교육용이나 초기 대략적 추정, 다른 추정치의 타당성 점검용으로 씁니다.
계산 방법
- 공수 E = a × KLOC^b (인월)
- 개발 기간 D = 2.5 × E^c (개월)
- 평균 인원 = E ÷ D (명)
프로젝트 유형별 계수는 다음과 같습니다.
- 조직형(Organic): 경험 많은 소규모 팀, 익숙한 문제 — a = 2.4, b = 1.05, c = 0.38
- 반분리형(Semi-detached): 경험이 섞인 팀, 중간 수준의 제약 — a = 3.0, b = 1.12, c = 0.35
- 내장형(Embedded): 하드웨어·실시간·규제 제약이 강함 — a = 3.6, b = 1.20, c = 0.32
원리
지수 b가 1보다 크므로 공수는 규모보다 빠르게 늘어납니다. 코드가 두 배가 되면 조율, 통합, 시험 부담이 커져 일은 두 배보다 많아집니다. 이를 규모의 비경제라고 하며 내장형에서 가장 뚜렷합니다. 반면 기간 지수 c는 1보다 훨씬 작아, 공수가 커져도 기간은 천천히 늘어납니다. 큰 프로젝트는 사람을 더 넣어 해결하지만 의사소통 부담 때문에 일을 무한정 나눌 수는 없기 때문입니다. 계수들은 과거 프로젝트 자료에 회귀 분석으로 맞춘 값입니다.
예제 풀이
- 입력값: 50 KLOC, 조직형(a = 2.4, b = 1.05, c = 0.38)입니다.
- 50^1.05 = 60.802이므로 E = 2.4 × 60.802 = 145.93인월입니다.
- 145.925^0.38 = 6.643이므로 D = 2.5 × 6.643 = 16.61개월입니다.
- 평균 인원은 145.925 ÷ 16.608 = 8.79명입니다.
같은 규모를 내장형으로 바꾸면 약 393.6인월, 16.9개월, 23.3명이 됩니다.
| 규모 (KLOC) | 공수 (인·월) |
|---|---|
| 12.5 | 34.03821329 |
| 25 | 70.47713659 |
| 37.5 | 107.8807788 |
| 50 | 145.9250149 |
| 62.5 | 184.4528033 |
| 75 | 223.3703724 |
| 100 | 302.1420988 |
결과 해석
결과는 자릿수 수준의 참고값으로 보아야 합니다. 보엠 스스로도 기본 모델의 오차가 크다고 밝혔고, 그래서 비용 동인을 더한 중간 COCOMO와 2000년의 COCOMO II가 나왔습니다. 기간을 D보다 크게 줄이려 하면 대개 공수가 불균형하게 늘어납니다.
흔한 실수
- 주석, 빈 줄, 자동 생성 코드까지 KLOC에 넣는 경우
- 실시간·안전 제약이 있는 과제를 조직형으로 고르는 경우
- 평균 인원을 고정 인원으로 오해하는 경우(실제로는 늘었다 줄어듭니다)
- 1981년 생산성을 현대 프레임워크 환경에 그대로 적용하는 경우
자주 묻는 질문
코드를 쓰기 전에 KLOC는 어떻게 추정하나요?
비슷한 과거 시스템과 비교하거나, 기능 점수를 센 뒤 자체 자료의 언어별 환산비로 바꿉니다.
기본 COCOMO와 COCOMO II는 무엇이 다른가요?
COCOMO II는 팀, 공정, 제품 특성을 반영하는 규모 인자와 노력 승수를 쓰며 최근 프로젝트로 다시 보정되었습니다.
평균 인원이 소수로 나오는 이유는 무엇인가요?
전체 기간 동안의 평균(공수 ÷ 개월)이기 때문이며, 채용 계획 인원이 아닙니다.
출처: Barry W. Boehm, Software Engineering Economics, Prentice Hall, 1981 · Barry W. Boehm et al., Software Cost Estimation with COCOMO II, Prentice Hall, 2000