테마
비용·일정 산정
비용 산정은 소프트웨어를 만드는 데 사람이 얼마나, 몇 달 동안 필요한지 미리 계산하는 일이다. 예산과 인원을 정하려면 착수 전에 숫자가 있어야 하므로 여러 추정 모형이 만들어졌다. 시험에서는 LOC 공식 계산, COCOMO(COnstructive COst MOdel, 구성적 비용 모형)의 세 유형, Putnam·기능 점수(function point)의 특징, CPM 임계 경로(critical path)가 나온다.
LOC 기법
LOC(Lines Of Code, 원시 코드 라인 수) 기법은 만들 프로그램의 코드 줄 수를 먼저 추정하고, 그 값으로 노력(effort)과 기간을 계산한다. 노력의 단위는 인월(MM, Man-Month)로, 1인월은 한 사람이 한 달 동안 하는 일의 양이다. 줄 수를 한 번에 맞히기 어려우므로 낙관치·기대치·비관치 세 값을 받아 가중 평균을 낸다.
| 식 | 뜻 |
|---|---|
| 추정 LOC = (낙관 + 4×기대 + 비관) ÷ 6 | 기대치에 가중치 4 |
| 노력(MM) = LOC ÷ 1인당 월평균 생산 LOC | |
| 기간(월) = 노력 ÷ 투입 인원 |
개발 비용은 노력에 1인당 월평균 인건비를 곱하고, 생산성은 LOC를 노력으로 나눈다. 예를 들어 36,000줄을 개발자 6명이 만들고, 1인당 한 달에 400줄을 짠다면 노력은 36,000 ÷ 400 = 90MM이고 기간은 90 ÷ 6 = 15개월이다.
COCOMO
COCOMO(COnstructive COst MOdel, 구성적 비용 모형)는 보엠(Barry Boehm)이 1981년에 발표한 모형이다. 추정한 코드 규모(KDSI, Thousand Delivered Source Instructions, 천 단위 인도 소스 명령어 수)를 소프트웨어 유형별 공식에 넣어 노력을 계산한다. 유형을 나누는 이유는 같은 규모라도 제약이 많은 시스템일수록 훨씬 많은 노력이 들기 때문이다.
| 유형 | 성격 | 시험 기준 규모 |
|---|---|---|
| 조직형(organic) | 기관 내부의 중소 규모 업무·과학 처리 | 5만 라인 이하 |
| 반분리형(semi-detached) | 조직형과 내장형의 중간, 컴파일러·DBMS 등 | 30만 라인 이하 |
| 내장형(embedded) | 하드웨어에 묶인 실시간 제어, 미사일 유도 등 | 30만 라인 이상1 |
이 세 유형의 기본형 공식은 노력 E = a × (KDSI)^b, 기간 D = 2.5 × E^d이다. 계수는 보엠 원전 기준으로 조직형 a=2.4·b=1.05·d=0.38, 반분리형 3.0·1.12·0.35, 내장형 3.6·1.20·0.32다. 규모 30KDSI를 넣으면 조직형은 약 85MM, 내장형은 약 213MM가 나와, 같은 크기라도 내장형이 2.5배쯤 든다. COCOMO에는 규모만 쓰는 기본형(basic), 비용 요인 15개(개발자 경험, 신뢰성 요구 수준 등 노력에 영향을 주는 항목)를 곱하는 중간형(intermediate), 단계별로 보는 발전형(detailed)이 있다.
Putnam 모형과 기능 점수
Putnam 모형은 퍼트남(Lawrence Putnam)이 1978년에 만든 모형으로, 생명 주기 전 과정에 걸친 노력의 분포를 예측한다. 인력이 투입되는 모양이 레일리-노든 곡선(Rayleigh-Norden curve)을 따른다는 관찰에 기반한다. 이 곡선은 초반에 인력이 적다가 중반에 가장 많아지고 후반에 다시 줄어드는 종 모양이다. 생명 주기 예측 모형이라고도 한다.
기능 점수(FP, Function Point)는 코드 줄 수 대신 사용자가 받는 기능의 양으로 규모를 잰다. 입력, 출력, 조회, 내부 파일, 외부 인터페이스 수에 복잡도 가중치를 곱해 더한다. 언어가 달라도 같은 기능이면 점수가 같으므로, 코드를 짜기 전에도 셀 수 있다는 장점이 있다. COCOMO·Putnam·FP를 묶어 수학적 산정 기법이라 한다. 과거 프로젝트 자료로 만든 공식에 값을 넣어 계산하므로 경험적 추정 모형이라고도 하고, 시험에서는 각 기능을 하나씩 계산해 더하는 방식이라 상향식(bottom-up) 비용 산정 기법으로 분류한다.
CPM
CPM(Critical Path Method, 임계 경로 기법)은 작업들을 노드와 간선으로 된 네트워크로 그리고, 시작부터 끝까지 가는 경로 중 가장 긴 경로를 찾는다. 이 경로를 임계 경로(critical path)라 하고, 그 길이가 프로젝트 최소 완료 기간이다. 임계 경로 위 작업이 하루 늦으면 전체가 하루 늦으므로 관리를 집중할 대상이 된다.
예를 들어 A(4일)→C(3일)→E(2일) 경로는 9일, B(2일)→D(6일)→E(2일) 경로는 10일이면 임계 경로는 B-D-E이고 전체 기간은 10일이다. 짧은 경로가 아니라 긴 경로를 고르는 것이 핵심이다.
시험 포인트
- LOC: 추정치 = (낙관 + 4×기대 + 비관) ÷ 6, 노력 = LOC ÷ 월 생산량, 기간 = 노력 ÷ 인원.
- "원시 코드 라인 수 기반, 보엠 제안, 결과는 MM" → COCOMO. 유형 → 조직형·반분리형·내장형.
- "노력 분포 예측, 레일리-노든 곡선" → Putnam. "기능의 양으로 규모 측정" → FP.
- "가장 긴 경로가 전체 기간" → CPM 임계 경로.
참고
규모 기준은 시험 자료의 표기다. 보엠(1981)의 유형 비교표로 널리 인용되는 값은 조직형 50KDSI 미만, 반분리형 300KDSI 미만이고, 내장형은 규모 제한 없이 모든 크기다. 이 비교표는 규모만이 아니라 팀의 경험, 요구·인터페이스 제약이 얼마나 엄격한지를 함께 보고 유형을 정한다. ↩︎
