SW 규모 측정, 기능 점수(Function Point)

1. SW 규모 측정 및 예측, 기능 점수 (Function Point)

(1) 기능 점수(Function Point)의 개념

  • 사용자 관점(User View)에서 소프트웨어 개발 규모를 측정하기 위해 기능을 정량화하고 계수적 측정을 통해 나타낸 수치 또는 기법
  • LOC(Line of Code) 기반 COCOMO(Constructive Cost Model) 방식은 개발 소스의 라인을 카운트하여 SW 규모를 파악하는데 반하여, 기능 점수는 사용자의 요구 기능(데이터/트랜잭션 기능)을 논리적으로 식별하여 객관적인 SW 규모를 산정하는데 초점을 둠

(2) 기능 점수의 적용 범위 및 필요성

적용 범위필요성
– SW 구매 및 생산성 벤치마킹
– SW 개발/유지보수 비용 산정
– SW 및 IT아웃소싱 계약
– SW 엔지니어링 프로세스 개선
– SW응용 패키지의 정량적 규모 파악
– SW 품질 및 생산성 측정 도구로 활용
– SW 개발/유지보수 이용 및 자원 산정
– SW 간 규모 비교
  • 미국의 IFPUG(International Function Point User Group )에서 기능점수 분석 매뉴얼 제작 및 배포 등 기능점수 확산을 담당

 

2. 기능 점수의 측정 절차 및 측정 구조

(1) 기능 점수 측정 절차

#절차주요 활동
1가용 문서의 수집– 기능점수 측정을 위해 SW 제공 기능, 측정 대상 PJT에 의해 영향 받는 기능을 설명할 수 있는 문서 수집
2측정 범위 및 경계 식별– 어플리케이션의 측정범위와 경계 결정
– 사용자 기능 요구사항 식별
3데이터 기능 측정– 데이터 저장, 참조하는 사용자 요구사항 충족 기능 측정
– ILF, EIF, DET, RET
4트랜잭션 기능 측정– 데이터 처리의 사용자 요구사항 기능 측정
– EI, EO, EQ, FTR, DET
5기능 규모 계산– 측정의 목적과 범위 고려 계산
– 개발 및 개선 프로젝트의 기능 규모 계산
6기능 점수 문서화/보고– 측정 목적/유형/범위/경계 포함 문서
– 데이터/트랜잭션의 기능 리스트, 복잡도 측정 결과 보고

(2) 기능 점수 측정 구조 및 구성요소

기능구성요소상세 설명
데이터 기능내부 논리파일(ILF)– Internal Logical File
– 측정범위 내 유지되는 논리적 데이터 그룹/제어 정보
– 간이법 평균복잡도: 7.5
외부 연계파일(EIF)– External Interface File
– 측정범위 밖 타 APP 참조 논리적 데이터 그룹
– 간이법 평균복잡도: 5.4
트랜잭션 기능외부 입력(EI)– External Input
– APP 외부에서 데이터/제어 정보 수신하여 상태 변경 프로세스
– 간이법 평균복잡도: 4.0
외부 출력(EO)– External Output
– APP 내부에서 경계 밖으로 내보내는 프로세스
– 간이법 평균복잡도: 5.2
외부 조회(EQ)– External Inquiry
– APP 내부에서 데이터/제어 정보를 외부로 내보내는 프로세스
– 간이법 평균복잡도: 3.9

 

3. 기능 점수의 간이법과 정통법 비교

비교 항목간이법정통법
개념– 기능 유형별 복잡도 적용하여 산출– 기능 도출 후 복잡도 고려하여 정확한 기능점수 산정
측정 항목– 데이터/트랜잭션 기능– 데이터/트랜잭션 기능
복잡도– 평균 복잡도 적용– 기능별 복잡도 계산하여 적용
적용 시기– SW 기획 및 발주 단계– SW 설계 공정 이후
장점– 측정 간소화, 신속한 규모 측정– 정확한 규모 측정, 유사 사업 재활용
단점– 유사사업 재활용 제한, 낮은 정확도– 사업초기 적용 어려
  • 소규모 사업 또는 사업 전이나 초기에는 간이법을 이용한 기능점수를 산정하고, 설계 이후 요구사항 및 프로세스가 구체화되면 정통법을 사용하여 기능점수를 산정

 

4. 기능 점수 측정 사례

[참고]

  • 한국소프트웨어측정원(KOSMA), 기능점수 소개, 측정절차, 측정 구조
  • 정보통신산업진흥원, 소프트웨어사업 대가산정 가이드(2022)

콘텐츠 사용 시 출처 표기 부탁 드리고, 궁금한 점이나 의견은 댓글 남겨주세요^^

도리의 디지털라이프에서 더 알아보기

지금 구독하여 계속 읽고 전체 아카이브에 액세스하세요.

Continue reading