기능 점수: Difference between revisions

From IT 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)
| [[외부입력]](EI)
(External Input)
(External Input)
| 외부에서 입력되는 값
| 외부에서 입력되는 값
|-
|-
| 외부 출력(EO)
| [[외부출력]](EO)
(External Output)
(External Output)
| 외부에 출력되는 값
| 외부에 출력되는 값
(데이터 가공 수반)
(데이터 가공 수반)
|-
|-
| 외부 조회(EQ)
| [[외부조회]](EQ)
(External Query)
(External Query)
| 외부 입출력
| 외부 입출력
Line 49: Line 60:
|-
|-
| rowspan="2" | 데이터 기능 타입
| rowspan="2" | 데이터 기능 타입
| 내부 논리 파일(ILF)
| [[내부논리파일]](ILF)
(Internal Logical File)
(Internal Logical File)
| 산정 대상 시스템이 유지/관리하는 파일
| 산정 대상 시스템이 유지/관리하는 파일
|-
|-
| 외부 연계 파일(EIF)
| [[외부연계파일]](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 12:28, 27 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, DET
  • 트랜잭션 기능
  • 트랜잭션 FTR, DET
  • 데이터 기능
  • 트랜잭션 기능
기반 기능별 복잡도 매트릭 평균 복잡도
  • RET(Record Element Type) ≒ 테이블 수
  • DET(Data Element Type) ≒ 고유 필드 수
  • FTR(File Type Reference) ≒ 연계되는 테이블 수

기능 점수 계산[edit | edit source]

  • 영향도(0~5)에 14개의 기술적 복잡도 요소(TCF, Technical Complexity Factor) 적용
    1. 데이터 통신
    2. 분산 데이터 처리
    3. 시스템 성능
    4. 사용 환경
    5. 처리율
    6. 온라인 데이터
    7. 사용자 효율성
    8. 온라인 갱신
    9. 처리 복잡도
    10. 재사용성
    11. 설치 용이성
    12. 운영 용이성
    13. 다중 사이트
    14. 변경 용이성
  • 총 영향도 = 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: 개선 프로젝트 이전의 애플리케이션의 값 조정 인자