💡 핵심 인사이트
COCOMO는 소프트웨어의 규모(LOC, 코드 라인 수)를 바탕으로 비용을 산정하는 경험적/수학적 모델입니다.
배리 보엠(Barry Boehm)이 제안했으며, 프로젝트의 복잡도에 따라 소프트웨어를 **유기적(Organic), 준분리형(Semi-detached), 내장형(Embedded)**의 3가지 유형으로 분류하여 공식을 다르게 적용합니다.
Ⅰ. COCOMO 모델의 개요
COCOMO (COnstructive COst MOdel)는 하향식 비용 산정 기법의 한계를 극복하기 위해, 과거의 수많은 소프트웨어 프로젝트 데이터를 통계적으로 분석하여 만든 경험적 추정 모델입니다.
- 기본 산정 단위: 원시 코드 라인 수 (LOC, Lines of Code) - 주로 KDSI (Kilo Delivered Source Instructions, 1,000 라인 단위)를 사용.
- 출력물: MM (Man-Month, 노력), TDEV (개발 기간).
- 특징: 산정 공식이 유연하여, 프로젝트의 특성과 개발 환경에 따라 다양한 승수(Multiplier)를 곱해 비용을 조정합니다.
Ⅱ. 소프트웨어 개발 유형 3가지 (프로젝트 복잡도)
보엠은 개발하려는 소프트웨어의 성격과 규모에 따라 프로젝트를 3가지 모드로 나누었습니다. 복잡할수록 노력(MM)을 구하는 공식의 지수(제곱) 값이 커져 비용이 기하급수적으로 증가합니다.
1. 유기적 모드 (Organic Mode)
- 특징: 조직 내에서 익숙하게 개발해 오던, 요구사항이 명확하고 비교적 단순한 소프트웨어.
- 규모: 50 KDSI (5만 라인) 이하의 소규모 프로젝트.
- 예시: 사내 급여 계산 프로그램, 간단한 재고 관리 시스템, 일괄 처리 애플리케이션.
- 개발 환경: 소규모의 익숙한 팀, 덜 엄격한 요구사항.
2. 준분리형 모드 (Semi-detached Mode)
- 특징: 유기적 모드와 내장형 모드의 중간 형태. 트랜잭션 처리 시스템이나 새로운 운영체제, DBMS의 일부 요소를 개발하는 등 약간의 복잡성이 있는 경우.
- 규모: 300 KDSI (30만 라인) 이하의 중형 프로젝트.
- 예시: 컴파일러 개발, 펌웨어 일부, 통신 네트워크 제어 시스템 등.
- 개발 환경: 다양한 경험을 가진 팀원들로 구성, 부분적으로 엄격한 요구사항.
3. 내장형 모드 (Embedded Mode)
- 특징: 하드웨어와 밀접하게 결합되어 있거나, 극도로 엄격한 제약 조건(실시간 처리, 메모리 제한 등)이 있는 복잡한 소프트웨어.
- 규모: 300 KDSI 이상의 대규모, 혹은 규모와 무관하게 고도의 복잡성을 띤 프로젝트.
- 예시: 미사일 유도 시스템, 항공기 비행 제어 시스템, 원자력 발전소 제어 시스템.
- 개발 환경: 새로운 기술 적용, 고도의 혁신성 요구, 매우 엄격하고 변경 불가능한 요구사항.
[COCOMO 유형별 복잡도 비교]
단순함 ◀──────────────────────────────────────────────▶ 극도의 복잡함
유기적 (Organic) 준분리형 (Semi-detached) 내장형 (Embedded)
규모: < 50K LOC < 300K LOC > 300K LOC
요구사항: 유연함 보통 매우 엄격함
📢 섹션 요약 비유:
- 유기적: 늘 끓이던 김치찌개를 작은 냄비에 끓이는 것 (익숙하고 쉬움).
- 준분리형: 한 번도 해보지 않은 프랑스 요리를 10인분 준비하는 것 (조금 까다로움).
- 내장형: 무중력 상태의 우주선 안에서 정확히 1g의 오차도 없이 우주비행사 식단을 조제하는 것 (극도의 제약과 복잡성).
Ⅲ. COCOMO의 발전 형태
초기 COCOMO(기본형)는 단순한 공식만 제공했지만, 이를 보완하기 위해 3단계로 세분화되었습니다.
- 기본형 (Basic COCOMO): 소프트웨어 크기(LOC)와 3가지 개발 유형(유기/준분리/내장)만을 이용해 빠르고 개략적으로 산정.
- 중간형 (Intermediate COCOMO): 기본형 공식에 15가지 **비용 승수(Cost Drivers)**를 곱하여 정밀도를 높임. (예: 제품의 신뢰도 요구 수준, 개발자의 경험, 데이터베이스 크기 등).
- 상세형 (Detailed COCOMO): 중간형의 15가지 비용 승수를 프로젝트의 각 개발 단계별(계획, 설계, 코딩, 테스트)로 다르게 적용하여 가장 정밀하게 산정.
📢 섹션 요약 비유: 기본형이 "평수(규모)에 따른 기본 인테리어 견적"이라면, 중간형은 "대리석 바닥, 샹들리에 등 옵션(비용 승수)을 추가한 견적"이고, 상세형은 "거실, 안방, 화장실 등 각 방의 공정별로 옵션을 다르게 매긴 초정밀 견적서"입니다.