기능 점수: Difference between revisions
From CS Wiki
No edit summary |
No edit summary |
||
(9 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
[[분류:소프트웨어 공학]][[분류:프로젝트 관리]] | |||
;Function Point; FP 비용 산정 방식 | ;Function Point; FP 비용 산정 방식 | ||
Line 26: | Line 27: | ||
== 산정 방식 == | == 산정 방식 == | ||
=== 절차 === | |||
* 1. 측정 유형 결정 | |||
* 2. 측정 범위와 애플리케이션 경계 식별 | |||
* 3. 데이터 기능, 트랜잭션 기능 측정 | |||
* 4. 미조정 기능점수 결정 | |||
* 5. 조정인자 결정 | |||
** 측정 유형, 보정 계수 등 | |||
* 6. 조정 기능점수 결정 | |||
* 7. 단가 적용 => 개발비 | |||
=== 구성 요소 === | === 구성 요소 === | ||
Line 34: | Line 45: | ||
|- | |- | ||
| rowspan="3" | 트랜잭션 타입 | | rowspan="3" | 트랜잭션 타입 | ||
| | | [[외부입력]](EI) | ||
(External Input) | (External Input) | ||
| 외부에서 입력되는 값 | | 외부에서 입력되는 값 | ||
|- | |- | ||
| | | [[외부출력]](EO) | ||
(External Output) | (External Output) | ||
| 외부에 출력되는 값 | | 외부에 출력되는 값 | ||
(데이터 가공 수반) | (데이터 가공 수반) | ||
|- | |- | ||
| | | [[외부조회]](EQ) | ||
(External Query) | (External Query) | ||
| 외부 입출력 | | 외부 입출력 | ||
Line 49: | Line 60: | ||
|- | |- | ||
| rowspan="2" | 데이터 기능 타입 | | rowspan="2" | 데이터 기능 타입 | ||
| | | [[내부논리파일]](ILF) | ||
(Internal Logical File) | (Internal Logical File) | ||
| 산정 대상 시스템이 유지/관리하는 파일 | | 산정 대상 시스템이 유지/관리하는 파일 | ||
|- | |- | ||
| | | [[외부연계파일]](EIF) | ||
(External Interface File) | (External Interface File) | ||
| 산정 대상 시스템이 참조하는 파일 | | 산정 대상 시스템이 참조하는 파일 | ||
Line 60: | Line 71: | ||
{| class="wikitable" | {| class="wikitable" | ||
! rowspan="4" | 사용자 | ! rowspan="4" | 사용자 | ||
| | | [[외부입력]] ▶ | ||
! rowspan="4" | | ! rowspan="4" | 산정 대상 어플리케이션 | ||
* | * [[내부논리파일]] | ||
* | * [[외부연계파일]] | ||
| | | [[외부입력]] ▶ | ||
! rowspan="4" | 타 어플리케이션 | ! rowspan="4" | 타 어플리케이션 | ||
|- | |- | ||
| ◀ | | ◀ [[외부출력]] | ||
| ◀ | | ◀ [[외부출력]] | ||
|- | |- | ||
| ◀ | | ◀ [[외부조회]] ▶ | ||
| ◀ | | ◀ [[외부조회]] ▶ | ||
|- | |- | ||
| | | | ||
| ◀ | | ◀ [[외부연계파일]] | ||
|} | |} | ||
=== 측정 유형 === | |||
* 개발프로젝트(Development Project) | |||
** 신규 개발 소프트웨어에 대한 비용 산정 | |||
** DFP(Development Project Function Point) 계산 | |||
* 개선프로젝트(Enhancement Project) | |||
** 기존 소프트웨어 추가 개발에 대한 비용 산정 | |||
** EFP(Enhancement Project Function Point) 계산 | |||
* 애플리케이션(Application) | |||
** 현재 사용 중 소프트웨어에 대한 기능 점수 산정 | |||
** AFP(Application Function Point) 계산 | |||
=== 산정 범위 결정 및 경계 식별 === | |||
* 범위 결정 | |||
** 산정할 대상 소프트웨어에 대한 범위 결정 | |||
* 경계 식별 | |||
** 산정 대상 소프트웨어(ILF)와 외부 소프트웨어(EIF)의 경계 구분 | |||
=== 정규법과 간이법 === | |||
{| class="wikitable" | |||
! 구분 | |||
! 정규법 | |||
! 간이법 | |||
|- | |||
| 개념 | |||
| 논리적인 설계를 바탕으로 상세한 기능 점수 산정 | |||
| 개략적인 사용자 요구사항을 바탕으로 대략적 기능 점수 산정 | |||
|- | |||
| 사용 시기 | |||
| | |||
* 프로젝트 초기 설계 완료 시 | |||
* 프로젝트 수행 중 | |||
* 프로젝트 완료 후 | |||
| | |||
* 프로젝트 시작 전 | |||
* 프로젝트 초기 | |||
|- | |||
| 사용 목적 | |||
| | |||
* 소프트웨어 분석/설계 | |||
* 유지보수 개발 범위 설정 | |||
* 일정 및 원가 산정 | |||
| | |||
* 예산 수립 | |||
* 제안서 견적 산정 | |||
* 사업 수행여부 판단 | |||
|- | |||
| 측정 항목 | |||
| | |||
* 데이터 기능 | |||
* 데이터 RET, DET | |||
* 트랜잭션 기능 | |||
* 트랜잭션 FTR, DET | |||
| | |||
* 데이터 기능 | |||
* 트랜잭션 기능 | |||
|- | |||
| 기반 | |||
| 기능별 복잡도 매트릭 | |||
| 평균 복잡도 | |||
|} | |||
* RET(Record Element Type) ≒ 테이블 수 | |||
* DET(Data Element Type) ≒ 고유 필드 수 | |||
* FTR(File Type Reference) ≒ 연계되는 테이블 수 | |||
=== 기능 점수 계산 === | |||
* 영향도(0~5)에 14개의 기술적 복잡도 요소(TCF, Technical Complexity Factor) 적용 | |||
*# 데이터 통신 | |||
*# 분산 데이터 처리 | |||
*# 시스템 성능 | |||
*# 사용 환경 | |||
*# 처리율 | |||
*# 온라인 데이터 | |||
*# 사용자 효율성 | |||
*# 온라인 갱신 | |||
*# 처리 복잡도 | |||
*# 재사용성 | |||
*# 설치 용이성 | |||
*# 운영 용이성 | |||
*# 다중 사이트 | |||
*# 변경 용이성 | |||
* 총 영향도 = TCF(0~14) * 영향도(0~5) | |||
* 기술적 복잡도(TC, Technical Complexity) = 0.65 + 0.01 * 총 영향도 | |||
* '''기능 점수(Function Point) = 기능 수(FC) * 기술적 복잡도(TC)''' | |||
=== 조정인자 적용 === | |||
* '''개발 프로젝트 기능점수(DFP)''' | |||
** DFP = (UFP + CFP) * VAF | |||
** UFP: 데이터의 컨버전에 의해 포함되는 기능 점수 | |||
** CFP: 변환 기능에 대한 미조정 기능 점수 | |||
** VAF: 개발 프로젝트에 대한 조정인자 | |||
* '''개선 프로젝트 기능점수(EFP)''' | |||
** EFP = [(ADD + CHGA + CFP) * VAFA] + (DEL * VAFB) | |||
** ADD: 개선 프로젝트에 의해 추가된 기능들의 미조정된 기능 점수 | |||
** CHGA: 개선 프로젝트에 의해 수정된 기능들의 미조정된 기능 점수 | |||
** CFP: 데이터의 컨버전에 의해 포함된 기능 점수 | |||
** VAFA: 개선 프로젝트 이후의 애플리케이션의 값 조정 인자 | |||
** DEL: 개선 프로젝트에 의해 삭제된 기능의 미조정된 기능 점수 | |||
** VAFB: 개선 프로젝트 이전의 애플리케이션의 값 조정 인자 |
Latest revision as of 22:28, 26 January 2020
- 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: 개선 프로젝트 이전의 애플리케이션의 값 조정 인자