방식 |
하향식 |
상향식 |
° 전문가 측정
° 델파이식(중재자 필요, 감정배제) |
° LOC, 수학적 산정기법
° COCOMO, Putnam, FP |
직접측정 |
간접측정 |
° 비용, 속도, LOC, 노력
° 오류의 수, 메모리 크기 |
° 기능(FP), 효율성, 품질
° 신뢰성, 복잡성, 유지보수성 | ° Basili 자원모델 분류 - 정적 단일변수 모델(COCOMO), 정적 다변수 모델, 동적 다변수 모델(Putnam), 이론적모델 |
Doty |
° 인터뷰와 문헌에 바탕 |
Putnam |
° SW 개발 프로젝트의 생명주기 전 과정 동안에 노력의 특수한 분포(Rayleigh)를 가정해주는 동적 다변수 모델
° SLIM - Putnam 모형 기반의 자동화 추정도구 |
COCOMO |
° COCOMO 모델의 가정
- 절대적 생산성 산정(Implicit productivity estimate) : Organic[16LOC/day], Embedded[4LOC/day]
- 개발기간은 팀의 크기가 아니라 총 노력 성과의 함수이다(시스템의 성격과 관계없이 일정) - 사원효용성 모델을 어떻게 적용하는지 명확하지 않다
° 63종류의 Project data를 기초로 작성된 경험적 비용 산정 모델로 유연성이 높아 가장 널리 통용됨
° 3단계 모델
Basic |
° Static single value model
° 소프트웨어 개발 노력과 비용을 LOC형태로 추정한 후 비용을 산정하는 고정 단일 값 모형 |
Intermediate |
° Consider personnel, computer, project, product factor ← 비용승수요소
- personnel : 분석가 능력, 프로그래머 능력, 가상기계 경험, 프로그래밍 언어 경험
- computer : 실행시간 제약, 기억장치 제약, 가상기계 휘발성, Turnaround time
- product : 신뢰도, DB크기, 복잡도
- project : 최신 프로그래밍 실습, SW도구, 요구 일정, SW공학 활용도
° Basic의 확장된 모형으로 프로젝트 형태, 개발환경, 개발인력 요소에 따라 15개의 특성치를 적용 |
Detailed |
° Consider system component
° 대형 시스템의 경우 서브 시스템이 서로 상이한 특성을 갖고 있어 각 모듈별, 서브시스템별로 비용을 별도 산정한 후 합산하는 방식을 적용
° 모듈, 서브 시스템, 시스템 수준으로 3계층 비용 산정이 가능하며, 개발 단계별로 비용 산정 방식을 다르게 산정할 수 있음 |
° 모델별 프로젝트 유형
Organic
(유기적 모드) |
° 엄격하지 않은 요구사항 기반의 상대적으로 단순한 SW 프로젝트(응용 프로그램)
° 일괄자료처리, 과학계산용, 비즈니스 자료처리 등에 적합, 50KDSI 이하 규모 |
Semi detached
(반결합 모드) |
° 컴파일러, 워드 프로세서 등의 유틸리티 개발에 적합, 300KDSI 이하 규모에 적합
° 응용 프로그램에 비해 2배의 비용 |
Embedded
(내장 모드) |
° 엄격한 제약조건하에서 개발되는 SW 프로젝트에 적용(시스템 프로그램)
° 운영체제, 데이터베이스 관리시스템등의 300KDSI이상의 규모
° 응용 프로그램에 비해 3배의 비용 |
° 산정공식
MM(인월) |
° a*(KLOC)b |
TDEV(개발기간) |
° c*(MM)d |
FSP(인원) |
° MM/TDEV |
Cost(비용) |
° FSP * TDEV * 월평균임금 | |
COCOMOⅡ |
° COCOMO 모델과 Ada 언어 개발환경에 특화된 Ada COCOMO를 통합한 모델로 3개의 sub-model로 구성됨
Application composition model(응용합성) |
° 소프트웨어 개발을 위해 통합 CASE Tool을 사용하는 환경에 적용 가능
° 컴포넌트 개수, 복잡도, 객체점수/어플리케이션 점수라 부르는 규모척도로 이용 |
Early design model
(초기설계) |
° 소프트웨어 프로젝트 또는 Product data가 일부 밖에 없는 환경에서 적용 가능 |
Post-Architecture model
(설계이후) |
° 소프트웨어 프로젝트에 대한 상세한 자료가 존재하는 경우에 적용 가능
° 기능점수와 LOC를 규모척도로 이용
° COCOMO모델보다 상세한 cost driver 정보를 사용
° 17개의 multiplicative cost와 5개의 scaling cost driver를 사용하여 비용 산출
° cost driver의 값는 Very Low부터 Extra-High까지 6단계로 구성 |
※ 개발 초기단계에 LOC를 정확히 예측하는 것이 어려우므로 일의 단계별로 다른 값을 예측하고 소요되는 노력을 추정한다 |
LOC |
° 개발자 관점에서 크기 중심으로 SW 규모산정 |
Function Point,기능점수(ISO20926) |
° Albercht가 최초 제안했으며 최종 사용자 입장에서 SW 규모산정, 규모와 기술의 복잡도를 고려한 SW 비용 산정하는 간접척도
° 소프트웨어 정보영역의 가산적 척도들과 소프트웨어 복잡성에 대한 주관적 추정을 기초로 한 실험, 관찰에 의한 관계성을 이용하여 유도함
장점 |
단점 |
° 사용자에게 제공되는 기능측정
° 구현기술에 무관
° Prj 전체 생명주기에 걸쳐 적용
° 일관성, 추적성 관리 가능 |
° 전문가 필요
° 자동화가 용이하지 않음
° 품질, 기술 요구사항 측정 불가
° 가시적인 사용자 I/F가 없는 경우 효용성 부족 |
지표 |
° Productivity(생산성) = FP / Hours
° Development Time to Delivery Rate(생산속도) = FP / Active Time Period
° Protfolio Growth Rate = ((완료 FP - 초기 FP) / 초기 FP) × 100
° FP당 개발원가 = (인건비 + 용역비 + 직/간접경비) / FP
° FP당 이익금액 = (수주금액 - 직접원가) / FP
° Defect Density(결함밀도) = Total defect / FP |
데이터기능측정 |
° ILF, EIF의 복잡도와 가중치는 RET, DET의 개수에 따라 결정됨 |
트랜잭션기능측정 |
° EQ, EI, EO의 복잡도와 가중치는 FTR, DET의 개수에 따라 결정됨 |
조정기능점수
(14개 특성치 적용) |
° ±35% 조정됨
° TDI(Total Degree of Influence) - 각 특성에 대향 영향도 범위는 0~5까지 6등급, 최대 70점
° 미조정기능점수 × 조정인자[VAF=(TDI × 0.01) + 0.65] |
측정유형 |
° 개발 프로젝트(DFP) = (UFP + CFP) × VAF
° 개선 프로젝트(EFP) = [(ADD + CHGA + CFP) × VAFA] + (DEL × VAFB)
° 어플리케이션(AFP) = [(UFPB + ADD + CHGA) - (CHGB +DEL)] × VAF
※ UFPB의 측정이 불가능하면
- UFPB = AFPB / VAFB의 공식을 이용하여 측정 | |