국밥툴즈
뒤로

소프트웨어 비용 산정 계산기

LOC·COCOMO·기능점수·Putnam

라인

라인/월

명

원

넣으면 개발 비용까지 계산해요

노력

120인월

개발 기간

20개월

풀이

  1. 노력 = 36,000 ÷ 300 = 120인월
  2. 개발 기간 = 120 ÷ 6명 = 20개월

LOC 기법·COCOMO(기본형·중간형)·기능점수(간이법·IFPUG)·Putnam 곡선으로 소프트웨어 개발 노력(인월)·기간·인원·비용을 계산하고 풀이 과정을 보여 줍니다. 정보처리기사 필기·실기의 비용 산정 문제를 검산하는 무료 계산기입니다.

사용법

  1. 위쪽 탭에서 LOC·COCOMO·기능점수·Putnam 중 문제에 나온 기법을 고릅니다.
  2. LOC 탭은 총 라인 수와 1인당 월평균 생산 라인 수를 넣은 뒤 투입 인원을 넣으면 개발 기간이, 개발 기간을 넣으면 투입 인원이 나옵니다. 노력(인월)이 문제에 바로 주어졌다면 「노력(인월)이 주어짐」을 고르면 됩니다.
  3. COCOMO 탭은 예상 라인 수와 프로젝트 유형(조직형·반분리형·내장형)을 고르면 노력·개발 기간·평균 인원을 계산하고 같은 규모를 세 유형으로 바꿨을 때의 차이도 표로 보여 줍니다.
  4. 숫자와 함께 대입 과정이 적힌 풀이가 나옵니다. 「풀이 복사」로 옮겨 두고 손으로 푼 답과 맞춰 보세요.

자주 묻는 질문

Q. LOC 기법으로 개발 기간은 어떻게 구하나요?
A. 노력(인월) = 총 라인 수 ÷ 1인당 월평균 생산 라인 수이고 개발 기간 = 노력 ÷ 투입 인원입니다. 정보처리기사 기출처럼 36,000라인을 월 300라인씩 짜는 프로그래머 6명이 만든다면 노력은 120인월, 기간은 20개월입니다. 개발 비용은 노력 × 1인당 월평균 인건비로 구합니다.
Q. 3점 추정(낙관치·중간치·비관치)은 어떻게 계산하나요?
A. 예측 라인 수 = (낙관치 + 4 × 중간치 + 비관치) ÷ 6입니다. LOC 탭에서 「라인 수 3점 추정」을 켜면 세 값을 따로 넣을 수 있고 이렇게 구한 예측치로 노력과 기간을 이어서 계산합니다.
Q. COCOMO 조직형·반분리형·내장형은 어떻게 구분하나요?
A. 수험서 기준으로 조직형(organic)은 5만 라인 이하의 중소 규모 사무·과학 계산용, 반분리형(semi-detached)은 30만 라인 이하의 트랜잭션 처리 시스템·운영체제·DBMS, 내장형(embedded)은 30만 라인을 넘는 초대형 시스템이나 하드웨어에 묶인 실시간 시스템입니다. 계산기는 라인 수로 해당 유형을 알려 주지만 문제에 유형이 적혀 있으면 그 유형을 고르세요.
Q. COCOMO 공식과 계수는 무엇인가요?
A. 노력 = a × KDSI^b(인월), 개발 기간 = 2.5 × 노력^c(개월)이고 KDSI는 천 라인 단위 규모입니다. 기본형의 a는 조직형 2.4, 반분리형 3.0, 내장형 3.6이고 b는 1.05, 1.12, 1.20, c는 0.38, 0.35, 0.32입니다(Boehm, 1981). 중간형은 a가 3.2, 3.0, 2.8로 바뀌고 비용 요인 15개로 구한 노력 조정 승수(EAF)를 곱합니다.
Q. 기능점수 간이법과 IFPUG 방식은 무엇이 다른가요?
A. 둘 다 내부 논리 파일(ILF)·외부 연계 파일(EIF)·외부 입력(EI)·외부 출력(EO)·외부 조회(EQ)의 개수에 가중치를 곱해 더합니다. 간이법은 복잡도를 따지지 않고 평균 가중치(ILF 7.5, EIF 5.4, EI 4.0, EO 5.2, EQ 3.9)를 쓰며 한국소프트웨어산업협회 「SW사업 대가산정 가이드」에 실린 값입니다. IFPUG 방식은 기능마다 낮음·보통·높음을 매겨 각각 다른 가중치를 씁니다.
Q. Putnam 모형은 무엇을 계산하나요?
A. Putnam 모형은 개발 생명주기 동안 노력이 어떻게 분포하는지를 Rayleigh-Norden 곡선으로 나타냅니다. 전체 노력과 인력이 가장 많이 들어가는 시점(td)을 넣으면 달마다 필요한 인원을 막대그래프로 그립니다. 이 곡선에서는 td까지 전체 노력의 약 39.3%가 들어가고 그 시점의 인원이 가장 많습니다. 이 모형을 자동화한 도구가 SLIM입니다.

이 도구에 틀린 정보가 있나요? 알려주세요.