핵심 인사이트
- COCOMO(Constructive Cost Model)는 Barry Boehm이 1981년 제안한 소프트웨어 개발 비용 추정 모델 — 소스 코드 라인 수(KLOC)를 기반으로 개발 공수(Person-Month)와 일정(Duration)을 계산하며, 프로젝트 규모와 유형에 따라 Basic→Intermediate→Detailed 3단계로 구성된다.
- COCOMO II(1995)는 객체 지향과 재사용 기반 개발을 반영한 현대화 버전 — KLOC 대신 기능 점수(Function Point)와 객체 점수(Object Point)를 지원하고, 22개 비용 드라이버(Cost Driver)로 보정 계수를 계산하는 더 정교한 모델이다.
- COCOMO의 본질적 한계는 추정 정확도 — 동일 KLOC라도 언어, 팀 역량, 도메인 복잡도에 따라 실제 비용이 3~10배 차이날 수 있으며, COCOMO는 역사 데이터 없이는 ±50% 이상 오차가 일반적이다.
Ⅰ. COCOMO 기본 모델
COCOMO Basic 모델:
공수(Effort) = a × (KLOC)^b
기간(Duration) = c × (Effort)^d
프로젝트 유형:
Organic (소규모, 친숙한 환경):
팀 < 5명, KLOC < 50
a=2.4, b=1.05, c=2.5, d=0.38
예: 부서 내 단순 데이터 관리 시스템
Semi-Detached (중간 규모, 혼합 경험):
팀 5~15명, KLOC < 300
a=3.0, b=1.12, c=2.5, d=0.35
예: 중형 트랜잭션 처리 시스템
Embedded (엄격한 제약, 복잡한 하드웨어):
대규모, 실시간, 안전 필수
a=3.6, b=1.20, c=2.5, d=0.32
예: 항공 제어 시스템, 의료 기기
계산 예시 (Organic, 50 KLOC):
Effort = 2.4 × (50)^1.05
= 2.4 × 55.18
= 132.4 PM (Person-Month)
Duration = 2.5 × (132.4)^0.38
= 2.5 × 12.8
= 32개월
팀 크기 = 132.4 / 32 ≈ 4.1명
한계:
KLOC를 사전에 정확히 예측 어려움
모든 언어/팀에 동일 계수 적용의 부적절함
요구사항 변경 반영 어려움
📢 섹션 요약 비유: COCOMO는 건설 공사 적산 — "지을 평수(KLOC) × 공사 단가 = 공사비(공수)". 간단하지만 내부 마감재(언어, 팀)에 따라 단가가 크게 다를 수 있어요!
Ⅱ. COCOMO Intermediate와 비용 드라이버
COCOMO Intermediate:
공수 = a × (KLOC)^b × EAF
EAF (Effort Adjustment Factor):
15개 비용 드라이버의 곱
각 드라이버: 0.70 ~ 1.65 값
비용 드라이버 범주:
제품 속성:
RELY (신뢰성 요구): 1.0~1.40
DATA (DB 크기): 0.94~1.16
CPLX (복잡도): 0.70~1.65
하드웨어 속성:
TIME (실행 시간 제약): 1.0~1.66
STOR (메모리 제약): 1.0~1.56
VIRT (가상 기계 변동성): 0.87~1.30
인적 속성:
ACAP (분석가 역량): 1.46~0.71
AEXP (경험): 1.29~0.82
PCAP (프로그래머 역량): 1.42~0.70
LEXP (언어 경험): 1.14~0.95
프로젝트 속성:
MODP (현대 개발 방법): 1.24~0.82
TOOL (소프트웨어 도구): 1.24~0.83
SCED (일정 압박): 1.23~1.10
EAF 계산 예:
신뢰성 높음 (RELY=1.40) ×
분석가 매우 우수 (ACAP=0.71) ×
프로그래머 매우 우수 (PCAP=0.70) ×
현대 방법 (MODP=0.82) ×
좋은 도구 (TOOL=0.83)
= 1.40 × 0.71 × 0.70 × 0.82 × 0.83 ≈ 0.47
기본 공수의 47%만 필요
→ 팀 역량이 비용에 미치는 엄청난 영향!
📢 섹션 요약 비유: EAF는 공사 조건 보정 — 기본 공사비에 "특수 자재(신뢰성)×숙련 기술자(ACAP)×좋은 장비(도구)"를 곱해서 실제 비용 계산. 최고 팀은 절반 비용!
Ⅲ. COCOMO II
COCOMO II (1995, USC-CSE):
동기:
COCOMO I: 1970s-1980s 개발 환경 기반
1990s: 객체 지향, 재사용, COTS(상용 컴포넌트)
→ 새 추정 기법 필요
COCOMO II 모델 계층:
1. 응용 합성 모델 (Application Composition):
프로토타입 단계
Object Point 기반
COTS 재사용 고려
2. 초기 설계 모델 (Early Design):
기능 점수 또는 KLOC 기반
7개 비용 드라이버 (간략화)
3. 후기 아키텍처 모델 (Post-Architecture):
상세 설계 후
17개 비용 드라이버
지수(b) = B + 0.01 × Σ(5개 척도 인자)
COCOMO II 공수 공식:
Effort = A × Size^E × Πi(EMi)
A: 경험적 상수 (≈2.94)
Size: KLOC 또는 FP 변환값
E: 지수 (1.01 ~ 1.26)
EMi: 비용 드라이버들의 곱
지수(E) 결정 척도 인자:
선례성 (PREC): 유사 프로젝트 경험
개발 유연성 (FLEX): 요구사항 변경 가능성
아키텍처/위험 해결 (RESL)
팀 응집성 (TEAM)
프로세스 성숙도 (PMAT): CMMI 레벨
기능 점수 → KLOC 변환:
Java: 1 FP ≈ 46 LOC
C: 1 FP ≈ 128 LOC
Python: 1 FP ≈ 21 LOC
📢 섹션 요약 비유: COCOMO II는 업그레이드된 설계 소프트웨어 — 2D 도면(COCOMO I) 대신 3D BIM 모델링. 재사용 자재, 현대 공법, 팀 성숙도까지 반영한 정교한 적산!
Ⅳ. 다른 추정 기법과 비교
비용 추정 기법 비교:
1. COCOMO (매개변수 모델):
수식 기반, KLOC/FP 입력
장점: 객관적, 계산 빠름
단점: 초기 정확도 낮음, 역사 데이터 필요
2. 전문가 판단 (Expert Judgment):
델파이 기법: 복수 전문가 반복 합의
장점: 경험 반영, 도메인 지식
단점: 주관적, 편향 가능
3. 유추 추정 (Analogy-Based):
과거 유사 프로젝트와 비교
ISBSG 데이터베이스 활용
장점: 실제 경험 기반
단점: 유사 프로젝트 필요
4. 기능 점수 (Function Point):
기능의 복잡도 측정
IFPUG 표준
장점: 언어 독립적
단점: 측정 주관적 (약 12%)
5. 계획 포커 (Planning Poker):
애자일 스토리 포인트
팀 합의 방식
장점: 빠름, 팀 참여
단점: 상대적 측정 (절대값 아님)
추정 vs 실제 오차:
초기 요구사항 단계: ±50~200%
기능 명세 완료: ±20~50%
설계 완료: ±10~25%
콘 오브 언서틴티(Cone of Uncertainty):
프로젝트 진행 → 추정 정확도 향상
초기 추정 = 범위(Range), 아님 정확값
📢 섹션 요약 비유: 비용 추정 기법은 여행 경비 계산 — 가이드북(COCOMO), 경험자 물어보기(전문가), 지난 여행 비교(유추), 팀 토론(플래닝 포커). 초기엔 어느 방법도 정확도 낮아요!
Ⅴ. 실무 시나리오 — 공공 SI 프로젝트 견적
공공기관 ERP 구축 사업 비용 추정:
발주: 지방자치단체
사업: 행정정보시스템 재구축
규모: 10만 라인 (100 KLOC)
기간: 12개월 목표
COCOMO II (Post-Architecture) 적용:
비용 드라이버 분석:
RELY(신뢰성): 매우 높음 (1.26) - 공공 업무
CPLX(복잡도): 높음 (1.17) - 복잡한 행정 로직
ACAP(분석가): 높음 (0.85) - 경험 있는 분석가
PCAP(프로그래머): 보통 (1.00)
TOOL(도구): 높음 (0.90) - 현대 IDE/DevOps
SCED(일정): 높음 압박 (1.14) - 예산 주기
EAF ≈ 1.26 × 1.17 × 0.85 × 1.00 × 0.90 × 1.14 ≈ 1.28
COCOMO II 계산:
E = 1.01 + 0.01 × 15 = 1.16 (척도 인자 합=15)
Effort = 2.94 × (100)^1.16 × 1.28
= 2.94 × 184 × 1.28
≈ 692 PM
Duration = 3.67 × (692)^0.28 ≈ 30개월
12개월 목표 달성 방안:
팀 692/12 ≈ 58명 필요
현실적 재검토:
- 일정 14개월로 조정 → 팀 50명
- 또는 범위 축소 (70 KLOC) → 공수 450 PM
전문가 검증:
COCOMO II 결과 ± 30% 범위 내
유사 프로젝트 실적 비교
최종 견적 (3-Point Estimate):
낙관: 480 PM (팀 역량 우수, 요구사항 안정)
현실: 692 PM (COCOMO II 결과)
비관: 900 PM (요구사항 변경, 인력 이탈)
PERT 공수: (480+4×692+900)/6 = 692 PM
📢 섹션 요약 비유: 공공 ERP 견적 계산은 건물 공사 적산 — COCOMO II가 692 PM(약 58명×12개월) 산출. 발주처 요구(12개월)와 다르면? 범위 축소 또는 팀 증원으로 협상!
📌 관련 개념 맵
COCOMO 모델
+-- 버전
| +-- COCOMO I (1981): Basic/Intermediate/Detailed
| +-- COCOMO II (1995): 3단계 모델
+-- 입력
| +-- KLOC (소스 코드 라인)
| +-- 기능 점수 (FP)
| +-- 비용 드라이버 (EAF)
+-- 출력
| +-- 공수 (Person-Month)
| +-- 기간 (Duration)
| +-- 팀 크기
+-- 대안 기법
+-- 델파이, 유추, 기능 점수
+-- 플래닝 포커 (애자일)
📈 관련 키워드 및 발전 흐름도
[초기 비용 추정 (1960s)]
LOC 기반 단순 추정
경험 의존
|
v
[COCOMO I (1981)]
Barry Boehm
63개 프로젝트 데이터 기반
|
v
[기능 점수 (1979)]
IFPUG FPA 표준화
언어 독립적 측정
|
v
[COCOMO II (1995)]
객체 지향, 재사용 반영
USC-CSE 연구
|
v
[현재: 하이브리드 추정]
COCOMO + 전문가 + 애자일
ML 기반 추정 연구
👶 어린이를 위한 3줄 비유 설명
- COCOMO는 공사 견적서 — 지을 집 크기(KLOC)×공사 단가 = 공사비(공수). 간단하지만 숙련공(팀 역량)에 따라 단가가 달라요!
- EAF는 보정 계수 — 기본 공사비에 "어려운 현장(복잡도)×명장(ACAP)×현대 장비(도구)" 곱해서 실제 비용 산출. 명장 팀이면 절반 비용!
- 추정 오차는 콘 모양 — 프로젝트 초기엔 ±50%, 설계 완료 후 ±10%. 처음엔 범위로, 나중에 점으로 좁혀지는 불확실성!