문제
FP = FC × TCF 공식을 기반으로 기능점수(FP: Function Point)에 관하여 설명하시오
답변
1. 기능점수(FP: Function Point)의 개념
- 기능점수(FP)는 소프트웨어의 규모와 복잡도를 측정하는 표준화된 방법론
- 사용자 관점에서 소프트웨어가 제공하는 기능을 기준으로 규모를 정량적으로 평가
- 1979년 IBM의 앨런 앨브레히트(Allan Albrecht)가 처음 제안한 소프트웨어 측정 기법
2. 기능점수의 산정 공식
2.1 기본 공식
FP = FC × TCF
여기서:
- FP(Function Point): 최종 기능점수
- FC(Function Count): 기능 수(미조정 기능점수)
- TCF(Technical Complexity Factor): 기술적 복잡도 조정계수
3. 기능점수 산정 구성요소
3.1 기능 유형(5가지 기능 구성요소)
| 기능 유형 | 설명 | 복잡도 가중치(낮음/보통/높음) |
|---|
| ILF(Internal Logical File) | 내부 논리 파일: 애플리케이션 내에서 유지관리되는 논리적 데이터 그룹 | 7/10/15 |
| EIF(External Interface File) | 외부 인터페이스 파일: 다른 애플리케이션에서 유지관리되지만 참조하는 논리적 데이터 그룹 | 5/7/10 |
| EI(External Input) | 외부 입력: 애플리케이션 외부에서 데이터가 들어와 내부 데이터를 갱신하는 처리 | 3/4/6 |
| EO(External Output) | 외부 출력: 애플리케이션 내부에서 데이터를 처리해 외부로 제공하는 처리 | 4/5/7 |
| EQ(External Inquiry) | 외부 조회: 애플리케이션 외부에서 데이터를 요청하여 단순 검색 결과를 제공하는 처리 | 3/4/6 |
3.2 미조정 기능점수(FC) 계산
- 각 기능 유형별로 개수를 파악
- 각 기능의 복잡도(낮음/보통/높음)를 평가
- 복잡도에 따른 가중치 적용
- 모든 기능 유형의 가중치 합계를 계산
FC = Σ(기능 유형별 개수 × 복잡도 가중치)
3.3 기술적 복잡도 조정계수(TCF) 계산
- 14개의 일반 시스템 특성(GSC: General System Characteristics)을 평가
- 각 특성에 대해 0(영향 없음)~5(매우 큰 영향)의 영향도(DI: Degree of Influence) 부여
- TCF는 이러한 특성 평가를 바탕으로 계산
TCF = 0.65 + (0.01 × Σ DI)
14가지 일반 시스템 특성(GSC)
- 데이터 통신
- 분산 데이터 처리
- 성능
- 사용 환경
- 트랜잭션 처리율
- 온라인 데이터 입력
- 최종 사용자 효율성
- 온라인 갱신
- 처리 복잡도
- 재사용성
- 설치 용이성
- 운영 용이성
- 다중 사이트
- 변경 용이성
4. 기능점수 산정 절차
- 범위 및 경계 정의: 측정 대상 애플리케이션의 범위 설정
- 데이터 기능 식별: ILF와 EIF 식별
- 트랜잭션 기능 식별: EI, EO, EQ 식별
- 복잡도 평가: 각 기능의 복잡도 결정
- 미조정 기능점수 계산: FC 산출
- 조정 계수 산출: 14가지 GSC 평가 및 TCF 계산
- 최종 기능점수 계산: FP = FC × TCF
5. 기능점수의 활용
5.1 소프트웨어 개발 비용 산정
- 기능점수를 기반으로 개발 규모 예측
- 소요 인력 및 개발 기간 예측
- 비용 추정 공식: 비용 = 기능점수 × 단가
5.2 소프트웨어 생산성 측정
- 개발자 생산성 = 기능점수 / 투입 인원월
- 프로젝트 간 생산성 비교 지표
5.3 품질 관리
- 결함 밀도 = 결함 수 / 기능점수
- 품질 지표로 활용
6. 기능점수의 장단점
6.1 장점
- 사용자 관점에서 소프트웨어 규모 측정 가능
- 개발 초기 단계에서 규모 예측에 활용 가능
- 구현 기술이나 언어에 독립적인 측정 방법
- 국제 표준화된 방법론(ISO/IEC 20926)
6.2 단점
- 측정자의 주관적 판단에 따라 결과가 달라질 수 있음
- 복잡한 알고리즘이나 내부 처리 로직의 복잡성 반영 부족
- 측정 과정이 복잡하고 전문성 필요
- 비즈니스 로직과 기술적 복잡성을 모두 반영하기 어려움
7. 기능점수 관련 주요 기관 및 방법론
- IFPUG(International Function Point Users Group): 가장 널리 사용되는 FP 방법론 관리
- NESMA(Netherlands Software Metrics Association): 네덜란드 표준 FP 방법론
- COSMIC(Common Software Measurement International Consortium): 새로운 세대의 기능 규모 측정 방법
- Mark-II: 영국에서 개발된 변형 FP 방법론
- FiSMA(Finnish Software Measurement Association): 핀란드 소프트웨어 측정 협회 방법론
8. 기능점수의 발전 및 최신 동향
- 애자일 환경에서의 기능점수 적용 방법론 개발
- 자동화된 기능점수 측정 도구 발전
- 마이크로서비스 아키텍처에 적합한 측정 방법 연구
- AI 기반 소프트웨어 측정 방법과의 통합
핵심 용어 정리
| 용어 | 설명 |
|---|
| FP(Function Point) | 소프트웨어 기능 규모를 측정하는 단위 |
| FC(Function Count) | 미조정 기능점수, 가중치가 적용된 기능 수의 합계 |
| TCF(Technical Complexity Factor) | 기술적 복잡도를 반영한 조정 계수 |
| ILF(Internal Logical File) | 내부 논리 파일, 시스템 내에서 유지관리되는 데이터 |
| EIF(External Interface File) | 외부 인터페이스 파일, 외부 시스템의 데이터 참조 |
| EI(External Input) | 외부 입력, 데이터를 시스템 내부로 가져오는 기능 |
| EO(External Output) | 외부 출력, 처리된 데이터를 외부로 전달하는 기능 |
| EQ(External Inquiry) | 외부 조회, 단순 검색 기능 |
| GSC(General System Characteristics) | 일반 시스템 특성, 기술적 복잡도를 평가하는 14가지 요소 |
어린이 버전 요약
기능점수(FP)는 컴퓨터 프로그램이 얼마나 크고 복잡한지 숫자로 표현하는 방법이에요. 프로그램이 할 수 있는 일들(기능)을 세어보고, 각 기능이 얼마나 복잡한지에 따라 점수를 매겨요. 그리고 프로그램을 만들 때 고려해야 할 여러 기술적인 요소들도 함께 계산해요. 이렇게 계산된 점수를 통해 프로그램을 만드는 데 얼마나 많은 시간과 비용이 필요한지 예측할 수 있답니다!