핵심 인사이트
- COCOMO II(Constructive Cost Model II)는 소프트웨어 개발 규모(LOC 또는 기능 점수)와 복잡도 요인을 결합하여 공수(Person-Month)와 일정을 과학적으로 추정 — 1995년 Barry Boehm이 발전시킨 COCOMO I의 개선 모델로, 현대 소프트웨어 개발 환경(재사용, CBD)을 반영한다.
- 스케일 팩터(Scale Factor)와 비용 드라이버(Cost Driver)의 합성이 핵심 — 선형이 아닌 지수 스케일링으로 소규모 프로젝트(1만 LOC)와 초대형 프로젝트(100만 LOC) 사이의 비선형적 비용 증가를 모델링한다.
- 추정의 불확실성을 인식하는 것이 COCOMO II 활용의 전제 — 초기 추정(Application Composition)은 ±4배, 상세 추정(Post-Architecture)도 ±25% 오차가 존재하므로, 추정을 하나의 점이 아닌 범위로 제시하고 지속적으로 검보하는 것이 올바른 활용법이다.
Ⅰ. COCOMO II 모델 개요
COCOMO I vs COCOMO II:
COCOMO I (1981):
단순 LOC 기반
Organic / Semi-Detached / Embedded 3유형
현대 개발 환경 미반영 (재사용, 프로토타입)
COCOMO II (1995, 2000 개정):
3가지 하위 모델 포함:
1. Application Composition:
대상: 빠른 프로토타입, 4GL, CASE 도구
규모 단위: Object Point (OP)
PM = NOP / PROD
(NOP: Nominal Object Point, PROD: 생산성 비율)
2. Early Design:
대상: 설계 초기 단계, 제한된 정보
규모: 기능 점수 (Function Point)
PM = A × Size^SF × EM (초기 비용 드라이버)
3. Post-Architecture:
대상: 전체 아키텍처 정의 후
가장 정확한 추정
규모: KSLOC (1000라인 코드)
PM = A × Size^SF × ∏EMi
(17개 비용 드라이버 적용)
기본 방정식:
PM (공수) = A × (Size)^SF × ∏EMi
A: 상수 (COCOMO II = 2.94)
Size: 소프트웨어 규모 (KSLOC)
SF: 스케일 지수 (Scaling Factor)
EMi: i번째 비용 드라이버 곱
📢 섹션 요약 비유: COCOMO II = 건축 공사비 견적 — 건물 크기(LOC)만으로 안 되고, 지형 난이도(SF)와 자재 품질(비용 드라이버)까지 고려해야 정확한 견적. 프로토타입엔 간단 견적, 완성 설계엔 정밀 견적!
Ⅱ. 스케일 팩터 (Scale Factor)
SF (Scaling Factor):
프로젝트 규모 증가에 따른 비용 증가율 결정
SF = B + 0.01 × Σ SFj
B = 0.91 (COCOMO II 기본값)
5가지 SF 요인:
1. PREC (선례성, Precedentedness):
유사 프로젝트 경험 여부
Very Low: 전혀 새로운 영역 → 6.20
Very High: 유사 프로젝트 많음 → 1.24
2. FLEX (개발 유연성, Development Flexibility):
요구사항 유연성
Very Low: 엄격한 요구사항 → 5.07
Very High: 완전 자유 → 1.01
3. RESL (아키텍처/위험 해결, Architecture/Risk Resolution):
위험 분석 수준
Very Low: 낮은 위험 해결 → 7.07
Very High: 충분한 위험 대비 → 1.41
4. TEAM (팀 응집력, Team Cohesion):
팀 협력 수준
Very Low: 분산된 팀 → 5.48
Very High: 긴밀한 팀 → 1.10
5. PMAT (프로세스 성숙도, Process Maturity):
CMMI 수준 반영
Level 1 (초기): 7.80
Level 5 (최적화): 1.56
SF 계산 예:
5개 요인 각 평균(3점) = 5 × 3.0 = 15
SF = 0.91 + 0.01 × 15 = 1.06
SF > 1: 규모 증가 시 비선형 비용 증가
(예: 10KSLOC → 100KSLOC: 10배 증가 아닌 12~15배 비용)
📢 섹션 요약 비유: SF = 공사 난이도 지수 — 처음 짓는 유형(PREC: 낮음), 설계 변경 잦음(FLEX: 낮음), 위험 분석 미흡(RESL: 낮음) → 같은 크기 건물인데 비용이 2배! 팀워크와 경험이 핵심!
Ⅲ. 비용 드라이버 (Cost Driver)
EM (Effort Multiplier):
Post-Architecture 모델의 17개 요인
0.5~1.26 범위 값
1.0: 표준(Nominal)
< 1.0: 비용 감소 (좋은 요인)
> 1.0: 비용 증가 (어려운 요인)
제품 요인 (Product Factors):
RELY: 신뢰성 요구사항 (Critical = 1.26)
DATA: 데이터베이스 규모
CPLX: 소프트웨어 복잡도 (Very High = 1.30)
RUSE: 재사용 요구 수준
DOCU: 문서화 요구 수준
플랫폼 요인:
TIME: 실행 시간 제약 (95% CPU = 1.29)
STOR: 메인 스토리지 제약
PVOL: 플랫폼 변동성
인력 요인 (Personnel Factors):
ACAP: 분석가 역량 (Very High = 0.71)
PCAP: 프로그래머 역량 (Very High = 0.76)
PEXP: 경험 (Very Low = 1.22, Very High = 0.81)
AEXP: 애플리케이션 경험
LTEX: 언어/도구 경험
프로젝트 요인:
TOOL: 소프트웨어 도구 (Very High = 0.72)
SITE: 다지점 개발 (Very Low = 1.22)
SCED: 일정 단축 (Very High = 1.29 ← 압축할수록 증가!)
SCED 역설:
일정 단축 25% → 비용 1.29배
"빨리 하면 더 비싸다!" (잔업, 품질 비용 등)
📢 섹션 요약 비유: 비용 드라이버 = 건축 재료비 가중치 — 고급 재료(RELY=Critical: 1.26배), 최고 건축가(ACAP=Very High: 0.71배로 감소), 일정 단축(SCED: 1.29배!). 고수 팀이 실제로 비용 절감!
Ⅳ. 추정 프로세스
COCOMO II 추정 절차:
Step 1: 모델 선택
프로토타입/POC → Application Composition
초기 설계 단계 → Early Design
아키텍처 완료 후 → Post-Architecture
Step 2: 규모 추정
LOC 직접 산정 또는 기능 점수(FP) 사용
FP → SLOC 변환 (언어별 SLOC/FP):
Java: 53 SLOC/FP
Python: 29 SLOC/FP
C: 128 SLOC/FP
예: 500 FP × 53 = 26,500 SLOC = 26.5 KSLOC
Step 3: SF 및 EM 평가
팀 전체 워크숍으로 합의
(개인 추정 아닌 팀 합의 중요)
Wideband Delphi:
1. 각 요인 개별 평가
2. 차이 큰 항목 토론
3. 재평가 → 수렴
Step 4: 공수 계산
PM = 2.94 × (26.5)^1.06 × ∏EMi
예: SF=1.06, EM 곱=1.15
PM = 2.94 × 32.1 × 1.15 ≈ 108 PM
Step 5: 일정 계산
TDEV = C × (PM)^(D + 0.2 × (SF - B))
C = 3.67, D = 0.28, B = 0.91
예: PM=108
TDEV ≈ 14.2개월
Step 6: 팀 규모
Average Staff = PM / TDEV = 108 / 14.2 ≈ 8명
불확실성 범위:
Application Composition: ×0.25 ~ ×4
Early Design: ×0.5 ~ ×2
Post-Architecture: ×0.75 ~ ×1.25
📢 섹션 요약 비유: COCOMO II 추정 절차 = 여행 비용 계산 — 목적지(LOC), 이동 수단 난이도(SF), 예상치 못한 비용(EM) 합산. 결과는 범위로(±25%)! 하나의 숫자만 믿으면 위험!
Ⅴ. 실무 시나리오 — 금융 시스템 추정
금융 거래 처리 시스템 COCOMO II 추정:
배경:
새로운 온라인 뱅킹 시스템 개발
초기 아키텍처 완료
규모: 1,500 FP (기능 점수) 추정
규모 변환:
Java 기반: 1,500 FP × 53 SLOC/FP = 79,500 SLOC ≈ 80 KSLOC
SF 평가:
PREC: Nominal (경험 있음) = 3.72
FLEX: Low (규제 엄격) = 4.05
RESL: High (위험 분석 철저) = 2.83
TEAM: High (경험팀) = 2.19
PMAT: CMMI Level 3 = 3.12
Σ SFj = 15.91
SF = 0.91 + 0.01 × 15.91 = 1.07
비용 드라이버 (일부):
RELY: Very High (금융 시스템) = 1.26
CPLX: High (복잡한 거래 로직) = 1.17
ACAP: High (역량 있는 팀) = 0.85
PCAP: High = 0.88
TOOL: High (CI/CD, 자동화) = 0.86
EM 곱 = 1.26×1.17×0.85×0.88×0.86 = 0.93
공수 계산:
PM = 2.94 × (80)^1.07 × 0.93
PM = 2.94 × 104.4 × 0.93 ≈ 285 PM
일정:
TDEV = 3.67 × (285)^0.35 ≈ 19.5개월
팀 규모:
285 / 19.5 ≈ 15명 (평균)
추정 범위 (Post-Architecture ±25%):
낙관: 214 PM / 14.6개월
가능성 높음: 285 PM / 19.5개월
비관: 356 PM / 24.4개월
비용:
PM당 단가 1,000만원 가정
비관 시: 35.6억원
낙관 시: 21.4억원
📢 섹션 요약 비유: 금융 시스템 추정 — 80KSLOC × SF × EM = 285 PM. 금융 규제(RELY×1.26)가 높지만 역량팀(ACAP×0.85)으로 상쇄. 19.5개월, 15명, 비용 범위 21~36억. 범위가 경영진 리스크 관리의 기초!
📌 관련 개념 맵
COCOMO II
+-- 하위 모델
| +-- Application Composition (Object Point)
| +-- Early Design (FP)
| +-- Post-Architecture (KSLOC)
+-- 핵심 요소
| +-- SF (Scale Factor): 5개
| +-- EM (Effort Multiplier): 17개
+-- 산출물
| +-- PM (공수, Person-Month)
| +-- TDEV (일정)
| +-- 팀 규모
+-- 관련 기법
+-- 기능 점수 (FP)
+-- Wideband Delphi
+-- Planning Poker
📈 관련 키워드 및 발전 흐름도
[COCOMO I (Barry Boehm, 1981)]
단순 LOC 기반
Organic/Embedded 분류
|
v
[기능 점수법 (1979~)]
IFPUG FP 표준화
COCOMO I 한계 보완
|
v
[COCOMO II (1995)]
재사용, CBD 반영
SF + 17 EM 도입
|
v
[SLIM, Use Case Points (2000s)]
대안 추정 모델
|
v
[현재: AI 기반 추정]
ML로 과거 프로젝트 학습
COCOMO II + 데이터 보정
👶 어린이를 위한 3줄 비유 설명
- COCOMO II = 건물 공사비 견적 — 건물 크기(LOC)만으로 안 돼요. 땅 난이도(SF)와 자재 품질(EM)까지 고려해야 정확한 견적!
- SF = 공사 어려움 지수 — 처음 짓는 건물(PREC: 낮음), 규제 엄격(FLEX: 낮음) → SF 높아져 같은 크기인데 비용 2배. 경험이 돈!
- 추정 결과는 범위 — 285 PM 추정이지만 ±25%로 214~356 PM. 한 숫자만 믿으면 위험. 범위 제시가 올바른 추정!