기능 점수
From CS Wiki
- Function Point; FP 비용 산정 방식
개요[edit | edit source]
- 최종 사용자 입장에서의 기능적 복잡도를 고려하는 국제 표준(ISO/IEC 14143) 소프트웨어 규모 및 비용산정 방식
특징[edit | edit source]
- 소프트웨어의 양과 질을 동시에 고려
- 최종 사용자 입장에서 소프트웨어 규모 산정
- 개발환경과 기술에 무관하게 측정 가능
등장 배경[edit | edit source]
- 추정의 어려움
- SW 개발 초기에 프로그램 LOC 측정 어려움
- 환경의 영향 고려 어려움
- 기능은 동일하여도 CS방식, 웹 환경 등에 따라 비용의 편차 발생
FP의 역사[edit | edit source]
- 1975 IBM의Alan Albrecht에 의해 Guide/Share 컨퍼런스에서 개념 소개
- 1984 IBM CI/S&A Guideline 313 “AD/M Productivity Measurements & Estimate Validation”.
- 1986 국제 기능점수 사용자 그룹(IFPUG) 조직
- 1993 CFPS(Certification for FP Specialists) 인증시작. QAI/IFPUG 합동연구
- 1994 S/W 측정을 위한 지침인 CPM(Counting Practices Manual) 4.0 발표
- 1995 ISBSG 참여, ISO/IEC JTC1 WG12 Functional Size Measurement 연구 착수
- 1998 ISO/IEC 14143-1 출판
- 2003 ISO/IEC 14143-1~5 공식 표준으로 지정
산정 방식[edit | edit source]
절차[edit | edit source]
- 1. 측정 유형 결정
- 2. 측정 범위와 애플리케이션 경계 식별
- 3. 데이터 기능, 트랜잭션 기능 측정
- 4. 미조정 기능점수 결정
- 5. 조정인자 결정
- 측정 유형, 보정 계수 등
- 6. 조정 기능점수 결정
- 7. 단가 적용 => 개발비
구성 요소[edit | edit source]
유형 | 기능 | 내용 |
---|---|---|
트랜잭션 타입 | 외부입력(EI)
(External Input) |
외부에서 입력되는 값 |
외부출력(EO)
(External Output) |
외부에 출력되는 값
(데이터 가공 수반) | |
외부조회(EQ)
(External Query) |
외부 입출력
(데이터 가공 없음) | |
데이터 기능 타입 | 내부논리파일(ILF)
(Internal Logical File) |
산정 대상 시스템이 유지/관리하는 파일 |
외부연계파일(EIF)
(External Interface File) |
산정 대상 시스템이 참조하는 파일 |
사용자 | 외부입력 ▶ | 산정 대상 어플리케이션 | 외부입력 ▶ | 타 어플리케이션 |
---|---|---|---|---|
◀ 외부출력 | ◀ 외부출력 | |||
◀ 외부조회 ▶ | ◀ 외부조회 ▶ | |||
◀ 외부연계파일 |
측정 유형[edit | edit source]
- 개발프로젝트(Development Project)
- 신규 개발 소프트웨어에 대한 비용 산정
- DFP(Development Project Function Point) 계산
- 개선프로젝트(Enhancement Project)
- 기존 소프트웨어 추가 개발에 대한 비용 산정
- EFP(Enhancement Project Function Point) 계산
- 애플리케이션(Application)
- 현재 사용 중 소프트웨어에 대한 기능 점수 산정
- AFP(Application Function Point) 계산
산정 범위 결정 및 경계 식별[edit | edit source]
- 범위 결정
- 산정할 대상 소프트웨어에 대한 범위 결정
- 경계 식별
- 산정 대상 소프트웨어(ILF)와 외부 소프트웨어(EIF)의 경계 구분
정규법과 간이법[edit | edit source]
구분 | 정규법 | 간이법 |
---|---|---|
개념 | 논리적인 설계를 바탕으로 상세한 기능 점수 산정 | 개략적인 사용자 요구사항을 바탕으로 대략적 기능 점수 산정 |
사용 시기 |
|
|
사용 목적 |
|
|
측정 항목 |
|
|
기반 | 기능별 복잡도 매트릭 | 평균 복잡도 |
- RET(Record Element Type) ≒ 테이블 수
- DET(Data Element Type) ≒ 고유 필드 수
- FTR(File Type Reference) ≒ 연계되는 테이블 수
기능 점수 계산[edit | edit source]
- 영향도(0~5)에 14개의 기술적 복잡도 요소(TCF, Technical Complexity Factor) 적용
- 데이터 통신
- 분산 데이터 처리
- 시스템 성능
- 사용 환경
- 처리율
- 온라인 데이터
- 사용자 효율성
- 온라인 갱신
- 처리 복잡도
- 재사용성
- 설치 용이성
- 운영 용이성
- 다중 사이트
- 변경 용이성
- 총 영향도 = TCF(0~14) * 영향도(0~5)
- 기술적 복잡도(TC, Technical Complexity) = 0.65 + 0.01 * 총 영향도
- 기능 점수(Function Point) = 기능 수(FC) * 기술적 복잡도(TC)
조정인자 적용[edit | edit source]
- 개발 프로젝트 기능점수(DFP)
- DFP = (UFP + CFP) * VAF
- UFP: 데이터의 컨버전에 의해 포함되는 기능 점수
- CFP: 변환 기능에 대한 미조정 기능 점수
- VAF: 개발 프로젝트에 대한 조정인자
- 개선 프로젝트 기능점수(EFP)
- EFP = [(ADD + CHGA + CFP) * VAFA] + (DEL * VAFB)
- ADD: 개선 프로젝트에 의해 추가된 기능들의 미조정된 기능 점수
- CHGA: 개선 프로젝트에 의해 수정된 기능들의 미조정된 기능 점수
- CFP: 데이터의 컨버전에 의해 포함된 기능 점수
- VAFA: 개선 프로젝트 이후의 애플리케이션의 값 조정 인자
- DEL: 개선 프로젝트에 의해 삭제된 기능의 미조정된 기능 점수
- VAFB: 개선 프로젝트 이전의 애플리케이션의 값 조정 인자