정보처리기사/실기

모델링 #2 (비용산정)

노랑꼬리 2024. 1. 15. 22:05

1. 비용산정

소프트웨어 개발에 필요한 기능과 규모를 기반으로 소요되는 인원, 기간, 자원 등으로 확인하여 필요한 비용을 예측.

 

1) 비용결정 요소

- 프로젝트 요소 : 개발 작품의 복잡도, 시스템 크기, 신뢰도

- 자원 요소 : 인적 자원(개발자들), 개발에 필요한 하드웨어/소프트웨어 자원

- 생산성 요소 : 개발자의 능력, 개발 기간

- 개발 기간 요소 : 개발 기간에 반비례하는 개발 비용

 

 

2. 비용 산정 기법

 

1) 하향식 산정 기법

프로그램의 규모를 예측하고 과거 경험을 바탕으로 예측한 규모에 대한 소요 인력과 기간을 추정

 

- 전문가 판단 기법 : 조직 내 경험이 많은 두 명 이상의 전문가에게 비용 산정을 의뢰

- 델파이 기법 : 전문가 판단기법의 주관적인 편견을 보완하기 위해 많은 전문가의 의견을 종합하여 비용 산정

 

 

2) 상향식 산정 기법

소요기간을 구하고 여기에 투입되야할 인력과 투입 인력의 참여도를 곱하여 최종 인건 비용을 계산

 

- LOC(Line of Code, 원시 코드 라인 수(총 코드 수)) 기법  : 예측치를 이용하여 노력, 개발 기간, 개발 비용, 생산성을 산정

 

 

※ LOC 산정 공식

- 노력(인월) : 개발 기간 * 투입 인원, LOC / 1인당 월 평균 생산 코드라인 수 

- 개발 기간 : 인월 / 투입 인원

- 개발 비용(총 개발 비용) : 인월 * 단위 비용(1인당 월 평균 인건비)

- 생산성(1개월당 생산라인 수) : LOC / 인월

 

※ 인월(PM, Person Month) : 개발에 소요되는 기간을 1개월로 고정했을 때 필요한 총 인원 수

ㄴ EX) 10인월 = 10명이 1개월 동안 작업해야하는 작업 량

 


 

3. 개발 단계별 노력 기법

LOC 기법을 보완하기 위하여 각 기능을 구현시키는데 필요한 노력을 생명 주기의 각 단계별로 산정하는 기법

 

1) 수학적 산정 기법

개발 비용 산정의 자동화를 목표로 하는 상향식 비용 산정기법 중 한가지로 경험적 추정 기법 또는 실험적 추정 기법이라고 한다.

 

 

 

4. COCOMO(COnstructive COst MOdel)

- 소프트웨어 종류에 따라 각 비용 산정 공식을 대입하여 총 비용을 산정한다.

- 단순한 LOC에 비해 좀 더 정확한 비용산정이 가능하다.

- 소프트웨어의 복잡도 또는 원시 프로그램의 규모에 따라 분류한다.

 

 

5. COCOMO 소프트웨어 개발 유형

1) 조직형(Organic Mode)

- 중소규모의 소프트웨어

- 일괄 자료 처리, 과학 기술 계산용, 비지니스 자리 처리용

- 5만(50KDSI)라인 이하의 소프트웨어

- 사무용, 업무용 등 응용 소프트웨어 개발

 

2) 반분리형(Semi-Detached Mode)

- 트랜잭션 처리 시스템, 운영체제, 데이터베이스 관리 시스템

- 30만(300KDSI)라인 이하의 소프트웨어

- 컴파일러, 인터프리터와 같은 유틸리티 개발에 적합

 

3) 내장형(Embedded Mode)

- 최대형 규모의 트랜잭션 처리 시스템, 운영체제

- 30만(300KDSI)라인 이상의 소프트웨어

- 신호기 제어 시스템, 미사일 유도 시스템, 실시간 처리 시스템 등의 시스템 프로그램 개발에 적합

 

※ KDSI(Kilo Delivered Source Instruction) : 전체 라인 수를 1,000 단위로 묶은 것

 

 

6. COCOMO 모형의 종류

비용 산정 단계 및 적용 변수의 구체화 정도에 따른 분류

 

1) 기본형

- 소프트웨어 크기(LOC)와 개발 유형만을 이용하여 비용 산정

 

2) 중간형

- 기본형을 토대로 하나 4가지 특성의 15가지 요인에 의해 비용을 산정

 

3) 발전형

- 중간형을 보완하여 개발 공정별로 더 자세하고 정확하게 노력을 산출하여 비용 산정

 

 

※ 4가지 특성과 15가지 요인

1) 제품의 특성 : 요구되는 신뢰도, DB의 크기, 제품의 복잡도

2) 컴퓨터의 특성 : 수행 시간의 제한, 기억장소의 제한, 가상 기계의 안정성, Turn Around Time(반환 시간 : 작업 제시된 시간부터 종료될 때 까지 걸린 시간)

3) 개발 요원의 특성 : 분석가의 능력, 개발 분야의 경험, 가상 기계의 경험, 프로그래머의 능력, 프로그래밍 언어의 경험

4) 프로젝트 특성 : SW 도구의 이용, 프로젝트 개발 일정, 최신 프로그래밍 기법의 이용

 

 

7. Putnam 모형

- 소프트웨어 생명 주기의 전 과정에 사용될 노력의 분포를 가정해 주는 모형.

- 생명 주기 예측 모형

 

 

8. 기능 점수법

- SW의 기능을 증대시키는 요인 별로 가중치(단순, 보통, 복잡)를 부여하고, 요인 별 가중치를 합산하여 총 기능 점수를 산출.

- 총 기능 점수와 영향도를 이용하여 기능 점수(FP)를 구한 후 비용 산정.

- 국제 표준 소프트웨어 규모 측정 방법