게임 개발자를 향해

비용 산정 기법 본문

정보처리기사/1. 요구사항 확인

비용 산정 기법

뿌단이 2022. 9. 1. 18:23

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) 모형을 기반으로 만든 도구

 

 

요구사항 확인이 거의 끝나갑니다! (헥헥)

좀더 이해하기 쉽게 올리기 위해 더 노력하겠습니다!

 

읽어주셔서 감사합니다!

정처기 화이팅!