일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 요구사항 확인
- 기능 모델링
- 동적 모델링
- 정보 은닉
- DBMS
- 언리얼엔진5
- 파이프 필터 패턴
- 언리얼엔진 함수
- C++
- 메타 데이터
- baekjoon
- 알고리즘 문제
- 데이터베이스
- Unreal Engint4
- 마스터 슬레이브 패턴
- 정보처리기사
- 아키텍처 패턴
- 백준
- 브로커 패턴
- 클라이언트 서버 패턴
- UnrealEngine5
- 데이터 입출력
- 팬아웃
- UML
- 요구사항 분석
- 정처기
- UML 다이어그램
- UnrealEngine
- 단계적 분해
- 정보처리기사 실기
- Today
- Total
게임 개발자를 향해
비용 산정 기법 본문
1. 소프트웨어 비용 산정
소프트웨어의 비용 산정은 개발에 소요되는 인원, 자원, 기간 등으로 소프트웨어의 규모를 확인하여 개발 계획 수립에 필요한 비용을 산정하는 것이다.
<소프트웨어 비용 결정 요소>
- 프로젝트 요소: 제품 복잡도, 시스템 크기, 요구되는 신뢰도
- 자원 요소: 인적 자원, 하드웨어 자원, 스포트웨어 자원
- 생산성 요소: 개발자 능력, 개발 기간
<여기서 Tip!>
비용 산정 기법은 "중요도 C" 로 크게 중요한 개념은 아닌 것 같지만 이후 비용산정기법의 종류 특히 자주 나오는 상향식 산정기법의 종류인 LOC, 수학적 산정기법의 COCOMO 등이포함되어있어서 기본적인 것은 숙지하는게 좋다.
아래 이 챕터에서 배울것을 한눈에 알아볼 수 있게 정리했다.
1. 비용 산정 기법(하향식)
- 전문가 감정 기법
- 델파이
2. 비용 산정 기법(상향식)
- LOC
- 개발단계별 인원수
- 수학적 산정기법
1) COCOMO 모형
2) Putnam 모형
3) 기능 점수 모형
2. 비용 산정 기법(하향식)
- 하향식 비용 산정 기법은 과거의 유사한 경험을 바탕으로 전문 지식이 많은 개발자들이 참여한 회의를 통해 비용을 산정하는 비과학적인 방법이다.
- 전체 비용을 산정 후 각 작업별로 비용을 세분화한다.
<하향식 비용 산정 기법>
- 전문가 감정 기법
- 델파이 기법
기법 종류 | 설명 |
전문가 감정 기법 | - 조직 내에 있는 경험이 많은 두 명 이상의 전문가에게 비용 산정을 의뢰하는 기법이다. - 가장 편리하고 신속하게 비용을 산정할 수 있다. - 의뢰자로부터 믿음을 얻을 수있지만 개인적이고 주관적일 수 있다. |
델파이 기법 | - 델파이 기법은 전문가 감정 기법의 주관적인 편견을 보완하기 위해 많은 전문가의 의견을 종합하여 산정하는 기법이다. - 전문가들의 편견이나 분위기에 지배되지 않도록 한명의 조정자와 여러 전문가로 구성된다. |
<간단 정리!>
하향식이란 전체적인 비용을 먼저 산정하고 작업별 비용으로 세분화 하는 것이다.
<전문가 감정 기법>
전문가의 주관적인 감정을 통해 비용을 산정하는것으로 정확하지 않을 수 있다.
<델파이 기법>
위 전문가 감정기법의 문제점을 보완한 기법이다.
더 많은 전문가의 의견을 종합후 통계를 내려 산정하는 기법이다.
3. 비용 산정 기법(상향식)
- 상향식 비용 산정 기법은 프로젝트의 세부적인 잡업 단위별로 비용을 산정 후 집계하여 전체 비용을 산정하는 방법이다.
<주요 상향식 비용 산정 기법>
- LOC(원시 코드 라인 수) 기법
- 개발 단계별 인월수 기법
- 수학적 산정 기법
4. LOC(원시 코드 라인 수, source Line Of Code) 기법
- LOC란 원시 코드 라인 수 라는 뜻이다.
- LOC 기법은 소프트웨어 각 기능의 원시 코드 라인 수의 비관치, 낙관치, 기대치를 측정하여 예측
치를 구하고 이를 이용하여 비용을 산정하는 기법이다.
- 측정이 용이하고 이해하기 쉬워 가장 많이 사용된다.
- 예측치를 이용하여 생산성, 노력, 개발기간 등의 비용을 산정한다.

<산정공식>
- 노력 (인월) = 개발기간 x 투입인원 = LOC / 1인당 월평균 생산 코드 라인 수
- 개발비용 = 노력(인월) x 단위비용(1인당 월평균 인건비)
- 개발기간 = 노력(인월) / 투입인원
- 생산성 = LOC / 노력 (인월)
<여기서 Tip!>
상향식이란 세부적인 것들을 산정하고 종합하여 전체 비용을 예측하는 것이다.
예측치는 나올지는 모르겠다.
하지만 간단히 생각해라.
낙관치 : 비용이 적게 나오면 좋겠다.
비관치 : 비용이 진짜 많이 들면 어떡해?
기대치 : 그래도 객관적으로 이정도 나오지않을까?
비용은 객관성이 제일 근사할 확률이 높으며 하지만 최선과 최악을 무시할 수 없으니 비율을 아래와 같이 주고 평균을 구한 것이다.
낙관치(a) x 1/6
비관치(b) x 1/6
기대치(m) x 4/6
이를다 더한식이 아래 식이다.

★LOC 산정공식
공식을 외우지 않아도 된다. 정말 간단히 생각해라.
개발자가 한달간 일할 양 = 코드 1000줄개발자가 한달간 받는 돈 = 300만개발자 5명이서 소프트웨어를 개발할 때 3달이 걸린다면개발비용과 총 일한 양은 다음과 같다.
5(인원) x 300만(월급) x 3(일한 개월 수) = 4500만
5(인원) x 1000(코드) x 3(일한 개월 수) = 코드 15000줄
정말 간단하다. 누구나 쉽게 계산 가능한 것들이다.
이제 우리는 노력이라는 단위 개념만 제대로 알고있으면 된다.노력(인월)은 PM(Programmer - Month) 이라는 단위를 쓴다.
아래 예시를 보자.
두 사람이 4개월동안 일하면 노력은 8PM이다.
한 사람이 8개월동안 일하면 노력은 8PM이다.
소프트웨어 개발에 필요한 총 LOC는 30000라인이고 1인당 월마다 생산되는 라인이 3000라인이라면 몇개월이 걸리는가?
이건 즉 노력이 몇이냐고 묻는 것과 똑같다. 답은 10개월, 즉 10PM이다.
즉 노력이란 필요한 인력을 개월 수로 따진것이다.
그럼 이들을 단위로 나타내 보겠다.
노력 = 총 필요한 인력을 개월 수로 따진 것
개발 비용 = 소프트웨어를 개발 시 필요한 프로그래머 총 인건비
개발 기간 = 일의 양을 분배해서 끝낼 수 있는 시간 (월 기준)
생산성 = 월마다 개발자가 일하는 양
이렇게만 알고있으면 공식? 때려쳐라.
외우지않고도 풀 수 있다. 예제를 준비했다.
1. 한 소프트웨어를 만들기 위해 5명의 개발자가 8개월을 일한다면, 이 소프트웨어에 들어간 노력은?
답: 40PM(드래그!)
2. 개발할 소프트웨어의 예측 LOC(코드 라인 수)가 50000라인이고, 개발 인원은 5명이며, 월마다 5000라인이 작성된다면 노력은?
답: 50PM(드래그!)
5. 개발 단계별 인월수(Effort Per Task) 기법
- 개발 단계별 인월수 기법은 LOC 기법을 보완하기 위한 기법으로, 각 기능을 구현시키는 데 필요한 노력을 생명주기의 각 단계별로 산정한다.
- LOC 기법보다 더 정확하다.
<여기서 Tip!>
하향식 산정기법에서 전문가 분석기법을 보완한 기법은 델파이 기법!
상향식 산정기법에서 LOC 기법을 보완한 기법은 개발 단계별 인월수 기법!
6. 수학적 산정 기법
- 수학적 산정 기법은 상향식 비용 산정 기법으로, 경험적 추정 모델, 실험적 추정모델이라고도 한다.
- 수학적 산정 기법은 개발 비용 산정의 자동화를 목표로 한다.
- 비용의 자동산정을 위해 사용되는 공식은 과거의 유사한 프로젝트를 기반으로 유도된 것이다.
<주요 수학적 산정 기법>
- COCOMO 모형
- Putnam 모형
- 기능 점수(FP) 모형
1) COCOMO(COnstructive COst MOdel)
- COCOMO 모형은 보헴(boehm)이 제안한 것으로 원시 프로그램의 규모인 LOC에 의한 비용산정 기법이다.
- 개발할 소프트웨어의 규모를 예측한 후 이를 소프트웨어 종류에 따라 다르게 책정되는 비용 산정 방정식에 대입하여 비용을 산정한다.
<여기서 Tip!>
COCOMO 산정 과정
1. LOC로 소프트웨어의 규모를 예측한다.
2. 비용산정에 적합한 개발유형과 모형을 선택하고 이에 따라 비용을 산정한다.
<COCOMO의 소프트웨어 개발 유형>
유형 | 특징 |
조직형 (Organic Mode) |
- 기관 내부에서 개발된 중, 소 규모의 소프트웨어 - 일괄 자료 처리나 과학기술 계산용 비즈니스 자료 처리용 등의 소프트웨어를 개발하는 유형 - 5만(50KDSI) 라인 이하의 코드 - 사무 처리용 업무용 과학용 응용 소프트웨어 개발에 적합 |
반분리형 (Semi-Detached Mode) |
- 조직형과 내장형의 중간형 소프트웨어 - 트랜잭션 처리 시스템이나 운영체제, 데이터베이스 관리시스템 등의 소프트웨어를 개발하는 유형 - 30만(300KDSI) 라인 이하의 코드 - 컴파일러 인터프리터와 같은 유틸리티 개발에 적합 |
내장형 (Embedded Mode) |
- 초대형 규모의 소프트웨어 - 트랜잭션 처리 시스템이나 운영체제 등의 소프트웨어를 개발하는 유형 - 30만(300KDIS) 라인 이상의 코드 - 신호기 제어 시스템, 미사일 유도 시스템, 실시간 처리 시스템 등의 시스템 프로그램 개발에 적합 |
<COCOMO 모형의 종류>
종류 | 특징 |
기본형 COCOMO (Basic) |
- 소프트웨어의 크기와 개발 유형만을 이용하여 비용 산정 |
중간형 COCOMO (Intermediate) |
- 기본형 COCOMO의 공식을 토대로 사용하거나, 다음 4가지 특성에 의해 비용 산정 1. 제품의 특성 2. 컴퓨터의 특성 3. 개발 요원의 특성 4. 프로젝트 특성 |
발전형 COCOMO (Detailed) |
- 중간형 COCOMO를 보완하여 만들어진 모형 - 개발 공정별로 보다 자세하고 정확하게 노력을 산출하여 비용 산정 - 소프트웨어 환경과 구성 요소가 사전에 정의되어 있어야 하며, 개발 과정 후반부에 주로 적용함. |
<여기서 Tip!>
개발 유형 암기법
조직형 : 5만(50KDSI)라인 이하의 소프트웨어니까 소규모
반분리형 : 30만(300KDSI)라인 이하의 소프트웨어이고, 조직형과 내장형 중간 규모
내장형 : 30만(300KDSI)라인 이상의 소프트웨어니까 초대형 규모
COCOMO 모형 암기법
기본형 : 소프트웨어 크기와 개발 유형만을 이용하여 비용을 산정
중간형 : 기본형의 공식을 토대로 4가지 특성을 이용해 비용을 산정
발전형 : 중간형을 보완하여 보다 자세하고 정확한 비용을 산정
2) Putnam 모형
- Putnam 모형은 소프트웨어 생명 주기 전 과정 동안에 사용될 노력의 분포를 예상하는 모형이다.
- 푸트남이 제안한 것으로 생명 주기 예측 모형이라고도 한다.
- 시간에 따른 함수로 표현되는 Rayleigh - Nordan 곡선의 노력 분포도를 기초로 한다.
- 대형 프로젝트의 노력 분포 산정에 이용된다.
- 추가 설명으로 Putnam 모형도 LOC를 중심으로 비용을 산정한다.
Rayleigh - Nordan : Nordan이 소프트웨어 개발에 관한 경험적 자료를 수집하여 이를 근거로 그린 곡선이다.
<여기서 Tip!>
LOC 기법을 이용하여 소프트웨어 생명주기 과정 개념을 도입한 것이다.
LOC 기법을 이용하여 생명주기 동안 사용되는 노력의 분포를 예상하는것.
Rayleigh - Nordan 곡선을 사용함.
3) 기능 점수 모형
기능 점수 모형은 알브레히트(Albrecht)가 제안했으며, 소프트웨어의 기능을 증대시키는 요인별로 가중치를 부여하고 요인별 가중치를 합산하여 총 기능 점수를 산출하며 총 기능 점수와 영향도를 이용하여 기능 점수(FB)를 구한 후 이를 이용해 비용을 산정하는 기법이다.
<기능 증대 요인>
- 자료입력(입력 양식)
- 정보출력(출력 보고서)
- 명령어(사용자 질의 수)
- 데이터파일
- 필요한 외부 루틴과의 인터페이스
<여기서 Tip!>
기능이 많아질 것 같은 요인들을 뽑아서 요인들이 있으면 가중치를 부여해서 계산하는 기법이다.
알브레히트(Albrecht) 가 제안한것이다.
이름에 있듯이 기능점수(FB)라는 개념을 이용한다.
6. 비용 산정 자동화 추정 도구
도구 종류 | 설명 |
SLIM | Rayleigh - Nordan 곡선과 Putnam 예측 모델을 기초로 하여 개발된 자동화 추정 도구 |
ESTIMACS | 다양한 프로젝트와 개인별 요소를 수용하도록 기능점수(FP) 모형을 기초로 하여 개발된 자동화 추정 도구 |
<여기서 Tip!>
위 도구는 수학적 산정기법을 이용하여 만든 자동화 추정 도구이다.
SLIM : Putnam 모델을 기반으로 만든 도구
ESTIMACS : 기능점수(FB) 모형을 기반으로 만든 도구
요구사항 확인이 거의 끝나갑니다! (헥헥)
좀더 이해하기 쉽게 올리기 위해 더 노력하겠습니다!

읽어주셔서 감사합니다!
정처기 화이팅!
'정보처리기사 > 1. 요구사항 확인' 카테고리의 다른 글
소프트웨어 개발 표준 (0) | 2022.09.02 |
---|---|
프로젝트 일정 계획 (0) | 2022.09.02 |
S/W 공학의 발전적 추세 (0) | 2022.08.31 |
소프트웨어 개발 방법론 (2) | 2022.08.31 |
패키지 다이어그램(Package Diagram) (2) | 2022.08.28 |