COCOMO
태그 :
- 개념
- COCOMO (Constructive Cost Model)의 정의 - 시스템의 비용을 산정하기 위해 시스템을 구성하고 있는 모듈과 서브 시스템의 비용 합계를 계산하는 방식 - 소프트웨어 유형을 모듈별(Organic, Semi-Detached, Embedded)로 구분하고 각 유형에 대한 총 인월(man/month)수와 개발 기간을 계산하는 방식 - 소프트웨어 개발비, 유지보수 비용의 견적, 개발 단계 및 업무 활동과 산출물을 정의하여 포함한 비용 산정
Ⅰ. COCOMO (Constructive Cost Model)의 개요
가. COCOMO (Constructive Cost Model)의 정의
-시스템의 비용을 산정하기 위해 시스템을 구성하고 있는 모듈과 서브 시스템의 비용 합계를 계산하는 방식
-소프트웨어 유형을 모듈별(Organic, Semi-Detached, Embedded)로 구분하고 각 유형에 대한 총 인월(man/month)수와 개발 기간을 계산하는 방식
-소프트웨어 개발비, 유지보수 비용의 견적, 개발 단계 및 업무 활동과 산출물을 정의하여 포함한 비용 산정
나. COCOMO (Constructive Cost Model)의 특징
비용 예측 |
예상된 시스템의 크기(SLOC - Source Lines of Code, DSI - Deliverd Source Instruction)로부터 예측 |
의존성 |
소프트웨어의 속성(Organic, Semi-Detached, Embedded)에 의존 |
유연성 |
진행 예정된 프로젝트의 여러 특성(제품 특성, 컴퓨터 특성, 개발요원 특성, 프로젝트 성격에 영향)을 고려할 수 있도록 융통성 부여 |
이용성 |
현재까지 공표된 소프트웨어의 측정 중에서 가장 이해하기 쉬운 실험적 모델 |
Ⅱ. COCOMO 모델의 분류 및 프로젝트 유형
가. COCOMO 모델의 유형
- KDSI(Kilo Delivered Source Instruction) :전체 라인 수를 1,000라인 단위로 묶은 것으로 KLOC(Kilo LOC)와 같은 의미
구분 |
내용 |
산정공식 |
기본형 (Basic) COCOMO |
SW 개발 노력과 비용을 LOC 형태로 추정한 후 비용을 산정하는 고정 단일값 모형 (Static Single-valued mode) -산정공식 |
|
중간형 (Intermediate) COCOMO |
Basic의 확장, 프로젝트 형태, 개발환경, 개발인력 요소에 따라 15개의 특성치를 적용한 방식 1)제품속성(product:3개) : SW 신뢰도, DB크기, 제품의 복잡성 2)HW속성(computer:4개) : 응답시간, 실행시간 성능제약, 기억장치 제약, 가상기계 환경의 휘발성 3)인적속성(personnel:5개) : 분석가의 자질, 프로그래머의 자질, 응용분야의 경험, 컴퓨터와의 친숙성, 프로그래밍 언어의 경험 4)프로젝트속성(project:3개) : 개발 기간의 산정, 개발도구 사용, 방법론 응용 - 산정공식 |
|
발전형 (Detailed) COCOMO |
대형 시스템의 경우 서브시스템이 서로 상이한 특성을 가지며 각 모듈별, 서브 시스템별로 비용을 별도 산정하여 합산하는 방식 적용 .3계층 비용 산정이 가능(모듈, 서브시스템, 시스템 레벨) .개발단계별(생명주기)로 비용 산정방식을 달리 할 수 있음 -산정공식 중간형 COCOMO 산정 공식을 그대로 사용하되, 노력 승수를 다음과 같이 적용하여 산정한다 노력승수 = 개발공정별노력승수 * 개발공정별가중치 |
나. COCOMO 모델의 프로젝트 유형
구분 |
내용 |
산정공식 |
Organic Mode (유기적 모드) |
-50,000 소스라인(50KDSI) 이하의 비교적 작은 크기의 제품(Scientific, Business 등의 SW) -비교적 작은 소규모 개발팀 -훌륭한 현장 경험을 갖고 있는 개발팀 -기능 및 성능의 요구사항과 인수 테스트 및 인터페이스 등의 명세가 비교적 덜 엄격함 -통신을 위한 부가비용이 적음 -안정적인 개발 환경, 일정에 대한 강제성이 적음 -현존하며, 증명된 기술을 사용함 |
노력(MM) = 2.4 * (KDSI)1.05 개발기간(TDEV) = 2.5 * (MM)0.38 |
Semidetached Mode (반 결합 모드 프로젝트) |
-300,000 소스라인(300KDSI) 정도의 중간 크기 제품(컴파일러, 워드프로세서와 같은 개발 지원도구 개발용 프로젝트) -개발대상과 개발환경에 대하여 경험자와 비 경험자가 섞여있는 개발팀 -엄격한 명세와 덜 엄격한 명세가 섞여있음 -크기와 복잡성 면에서 중간 정도 수준의 소프트웨어 프로젝트 |
노력(MM) = 3.0 * (KDSI)1.12 개발기간(TDEV) = 2.5 * (MM)0.35 |
Embedded Mode (내장모드 프로젝트) |
- OS, DBMS, 통신모니터와 같이 300KDSI이상의 대형 프로젝트로서 transaction processing system 등 기능이나 성능 등에 대한 엄격한 명세 -제품이 시간 제약사항 내에서 수행되어야만 함 -제품이 엄격하며 정형적인 품질 표준을 만족해야 함 -하드웨어, 소프트웨어, 운영 등의 제약에 깊은 상호연관성이 있음 -광범위한 시험평가가 요구됨 -선도적인 기술이 사용됨 -병행되어 개발되는 다른 시스템 컴포넌트들이 사용됨 -강한 일정에 대한 제약 |
노력(MM) = 3.6 * (KDSI)1.20 개발기간(TDEV) = 2.5 * (MM)0.32 |
Ⅲ. COCOMO 계산
문제)14,000 라인의 응용프로그램을 작성해야 되는 프로젝트의 비용을 COCOMO의 Basic 모델을 이용하여 개발노력, 개발기간, 개발인원을 계산하고, COCOMO를 설명하시오. 단) 계산에서 상수a = 2.4, b=1, c=0.5, d=1 로 가정한다. |
Basic COCOMO 모델의 계산
개발노력(E) = 2.4 * 141 = 2.4 * 14 = 33.6 MM
개발기간(D) = 0.5 * 33.61 = 16.8 Month
개발인원(N) = 33.6/16.8 = 2 명 ”