본문 바로가기
CS

소프트웨어 비용 산정 기법

by memeseo 2022. 7. 6.

✍️ 소프트웨어 비용 산정

- 개발에 소요되는 인원, 자원, 기간 등으로 소프트웨어의 규모를 확인하여 개발 계획 수립에 필요한 비용을 산정하는 것.

- 소프트웨어 비용을 너무 높게 산정할 경우 예산 낭비와 일의 효율성 저하를 초래할 수 있고, 너무 낮게 산정한 경우 개발자의 부담이 가중되고 품질 문제가 발생할 수 있음.

 

✍️ 소프트웨어 비용 결정 요소

방법 내용
프로젝트 요소 제품 복잡도, 시스템 크기, 요구되는 신뢰도
자원 요소 인적 자원, 하드웨어 자원, 소프트웨어 자원
생산성 요소 개발자 능력, 개발 기간

 

✍️ 비용 산정 기법

1.하향식 비용 산정 기법 - 전문가 감정 기법, 델파이 기법
2.상향식 비용 산정 기법 - LOC 기법, 개발 단계별 인월수 기법, 수학적 산정 기법

1. 하향식 비용 산정 기법?

  • 과거의 유사한 경험을 바탕으로 전문 지식이 많은 개발자들이 참여한 회의를 통해 비용을 산정하는 방법
  • 프로젝트의 전체 비용을 산정한 후 각 작업별로 비용을 세분화

 

2. 하향식 비용 산정 기법 종류

(1) 전문가 감정 기법
(2) 델파이 기법

 

(1) 전문가 감정 기법

  • 경험이 많은 두 명 이상의 전문가에게 비용 산정을 의뢰하는 기법
  • 가장 편리하고 신속하게 비용 산정 가능
  • 개인적이고 주관적이나 의뢰자로부터 믿음을 얻을 수 있음

(2) 델파이 기법 **

  • 전문가 감정 기법의 주관적인 편견을 보완하기 위해 많은 전문가들의 의견을 종합하여 산정하는 기법
  • 전문가들의 편견이나 분위기에 지배되지 않도록 한 명의 조정자와 여러 전문가로 구성

1. 상향식 비용 산정 기법?

  • 세부적인 작업 단위별로 비용을 산정한 후 집계하여 전체 비용을 산정하는 방법

 

2. 상향식 비용 산정 기법 종류

(1) LOC (원시 코드 라인 수, Source Line of Code) 기법
(2) 개발 단계별 인월수 (Effort per Task) 기법
(3) 수학적 산정 기법 - COCOMO 모형, Putnam 모형, 기능점수(FP) 모형

(1) LOC 기법

  • 각 기능의 원시 코드 라인 수의 비관치, 낙관치, 기대치를 측정하여 예측치를 구하고 이를 이용하여 비용을 산정하는 기법
  • 예측치 = (낙관치 + 4 * 기대치 + 비관치) / 6
  • 측정이 용이하고 이해하기 쉬워 가장 많이 사용되며 예측치를 이용하여 생산성, 노력, 개발 기간 등의 비용을 산정한다


(2) 개발 단계별 인월수 기법 **

  • 기능을 구현시키는 데 필요한 노력을 생명 주기의 각 단계별로 산정
  • LOC 기법보다 더 정확
1. LOC 기법에 의하여 예측된 총 라인 수가 30,000라인, 개발에 참여할 프로그래머가 5명, 프로그래머들의 평균 생산성이 월간 300라인 일 때 개발에 소요되는 시간을 계산식과 함께 쓰시오. **20년 5월 정처기 문제


20

풀이
(30,000 / 300) / 5 = 20
(라인수 / 라인) / 프로그래머 

 

(3) 수학적 산정 기법

  • 경험적 추정 모형, 실험적 추정 모형이라고도 함
  • 개발 비용 산정의 자동화를 목표로 함
  •  비용의 자동산정을 위해 사용되는 공식은 과거의 유사한 프로젝트를 기반으로 유도된 것

 

(3-1) 수학적 산정 기법의 주요 산정 기법

(3-1-1) COCOMO 모형
(3-1-2) Putnam 모형
(3-1-3) 기능점수 (FP) 모형

(3-1-1) COCOMO (COnstructive COst MOdel) 모형

  • LOC에 의한 비용 산정 기법
  • 개발할 소프트웨어의 규모(LOC)를 예측한 후 이를 소프트웨어 종류에 따라 다르게 책정되는 비용 산정 방정식에 대입하여 비용을 산정
  • 비용 산정 결과는 프로젝트를 완성하는 데 필요한 노력(Man - Month) 로 나타남
  • 보헴이 제안

  COCOMO의 소프트웨어 개발 유형

유형 특징
조직형 5만 라인 이하의 소프트웨어를 개발하는 유형. 사무 처리용, 업무용 과학용 응용 소프트웨어에 적합.
반분리형 30만 라인 이하의 소프트웨어를 개발하는 유형. 조직형과 내장형의 중간이며 트랜잭션 처리 시스템이나 운영체제, 데이터베이스 관리 시스템 개발에 적합.
내장형 30만 라인 이상의 소프트웨어를 개발하는 유형. 신호기 제어 시스템, 미사일 유도 시스템, 실시간 처리 시스템 등의 시스템 프로그램 개발에 적합.

  COCOMO 모형의 종류

종류 특징
기본형 소프트웨어 크기와 개발 유형만을 이용하여 비용 산정
중간형 기본형의 공식을 기반으로 하나 제품/컴퓨터/개발 요원/ 프로젝트 특성에 의해 비용을 산정
발전형 중간형 COCOMO를 보완하여 만들어진 모형, 개발 공정별로 보다 자세하고 정확하게 노력을 산출하여 비용 산정, 소프트웨어 호나경과 구성 요소가 사전에 정의되어 있어야 하며 개발 과정의 후반부에 주로 작용함

 

(3-1-2) Putnam 모형 **

  • 소프트웨어 생명 주기의 전 과정 동안에 사용될 노력의 분포를 예상하는 모형
  • 푸트남이 제안한 것으로 생명 주기 예측 모형이라고도 함
  • 시간에 따른 함수로 표현되는 Rayleigh-Norden 곡선의 노력 분포도를 기초로 함
  • 대형 프로젝트의 노력 분포 산정에 이용
  • 개발 기간이 늘수록 프로젝트 적용 인원의 노력 감소

(3-1-3) 기능 점수 모형

  • 소프트웨어의 기능을 증대시키는 요인별로 기능 점수(FP)를 구한 후, 비용을 산정하는 기법
  • 알브레히트가 제안

🔎 소프트웨어 기능 증대 요인?

- 자료 입력 (입력 양식)
- 정보 출력 (출력 보고서)
- 명령어 (사용자 질의수)
- 데이터 파일
- 필요한 외부 루틴과의 인터페이스

 

* 비용 산정 자동화 추정 도구

유형 특징
SLIM Rayleigh-Nordan 곡선과 Putnam 예측 모델을 기초로 하여 개발된 자동화 추정 도구
ESTTIMACS 다양한 프로젝트와 개인별 요소를 수용하도록 FP 모형을 기초로 하여 개발된 자동화 추정 도구