문제
기능점수(Function Point)의 특징 및 요구분석 단계 이후의 기능점수를 이용한 소프트웨어 비용 산정 절차와 활성화 방안에 대해 기술하시오
답변
1. 기능점수(Function Point)의 특징
1.1 기능점수의 개념
- 소프트웨어의 기능적 규모를 사용자 관점에서 측정하는 정량적 방법론
- 1979년 IBM의 앨런 앨브레히트(Allan Albrecht)가 개발한 소프트웨어 규모 측정 기법
- 국제 표준(ISO/IEC 20926)으로 인정된 소프트웨어 규모 측정 방법
1.2 기능점수의 주요 특징
1) 사용자 관점의 측정
- 기술적 구현이 아닌 사용자에게 제공되는 기능 중심으로 측정
- 비즈니스 가치 중심의 소프트웨어 규모 평가 가능
- 사용자가 이해할 수 있는 단위로 소프트웨어 크기 표현
2) 개발 언어 독립성
- 구현 언어나 기술에 관계없이 동일한 기준으로 측정 가능
- 다양한 개발 환경과 플랫폼 간 비교 분석 용이
- 프로그래밍 패러다임 변화에도 일관된 측정 가능
3) 조기 측정 가능성
- 요구사항 분석 단계에서부터 규모 예측 가능
- 개발 초기 단계부터 프로젝트 비용과 일정 추정에 활용
- 프로젝트 진행에 따라 측정값 정교화 가능
4) 표준화된 방법론
- IFPUG(International Function Point Users Group) 등의 표준 방법론 제공
- 국제적으로 검증된 측정 절차와 가이드라인 존재
- 다양한 산업 분야에서 널리 채택되어 사용
1.3 기능점수 측정 구성요소
1) 데이터 기능(Data Functions)
- ILF(Internal Logical File): 내부 논리 파일
- 애플리케이션 내에서 유지관리되는 논리적 데이터 그룹
- 복잡도에 따라 7/10/15점 가중치 적용
- EIF(External Interface File): 외부 인터페이스 파일
- 다른 애플리케이션에서 유지관리되지만 참조되는 데이터 그룹
- 복잡도에 따라 5/7/10점 가중치 적용
2) 트랜잭션 기능(Transaction Functions)
- EI(External Input): 외부 입력
- 애플리케이션 경계 외부에서 데이터가 들어와 내부 파일을 변경하는 처리
- 복잡도에 따라 3/4/6점 가중치 적용
- EO(External Output): 외부 출력
- 애플리케이션 내부에서 파생된 데이터가 경계를 넘어 외부로 전달되는 처리
- 복잡도에 따라 4/5/7점 가중치 적용
- EQ(External Inquiry): 외부 조회
- 입력이 즉각적인 출력을 생성하지만 내부 파일을 변경하지 않는 처리
- 복잡도에 따라 3/4/6점 가중치 적용
2. 요구분석 단계 이후의 기능점수를 이용한 소프트웨어 비용 산정 절차
2.1 기능점수 측정 프로세스
1) 애플리케이션 경계 결정
- 측정 대상 애플리케이션의 범위와 경계 정의
- 사용자 관점에서의 시스템 기능 범위 설정
- 외부 인터페이스와 내부 기능의 경계 구분
2) 데이터 기능 식별 및 측정
- ILF와 EIF 식별
- 각 파일 유형의 복잡도 평가(DET, RET 기반)
- 가중치 적용 및 데이터 기능 점수 합산
3) 트랜잭션 기능 식별 및 측정
- EI, EO, EQ 식별
- 각 트랜잭션의 복잡도 평가(FTR, DET 기반)
- 가중치 적용 및 트랜잭션 기능 점수 합산
4) 미조정 기능점수(UFP) 계산
- 데이터 기능 점수와 트랜잭션 기능 점수 합계 산출
- 기본적인 소프트웨어 규모 산정값 도출
5) 조정 계수(VAF) 산정
- 14개 일반 시스템 특성(GSC)에 대한 영향도 평가
- 각 특성별 0~5점 척도로 평가
- VAF = 0.65 + (0.01 × Σ영향도) 계산
6) 조정된 기능점수(AFP) 산출
- AFP = UFP × VAF 계산
- 기술적 복잡도를 반영한 최종 기능점수 도출
2.2 기능점수 기반 비용 산정 절차
1) 생산성 지표 설정
- 기능점수 당 공수(Man-Hour/FP) 산출
- 조직의 과거 프로젝트 데이터 분석
- 산업 표준 생산성 지표 참조
2) 개발 공수 산정
- 개발 공수 = 기능점수(FP) × 단위 공수(MH/FP)
- 개발 단계별 공수 배분 비율 적용
- 요구사항 분석, 설계, 구현, 테스트 등 단계별 공수 산출
3) 개발 기간 산출
- 투입 인력 규모 결정
- 개발 기간 = 총 개발 공수 ÷ (투입 인력 × 일일 작업시간)
- 프로젝트 복잡도에 따른 일정 조정계수 적용
4) 비용 추정
- 인건비 산정: 개발 공수 × 인력 등급별 단가
- 하드웨어 및 소프트웨어 비용 추가
- 관리 및 지원 비용 추가
- 총 프로젝트 비용 산출
5) 리스크 분석 및 조정
- 프로젝트 리스크 요소 식별
- 비용 추정치에 리스크 대응 비용 추가
- 최종 비용 산정안 확정
2.3 기능점수 기반 비용 산정 사례
항목 | 계산식 | 예시 |
---|
총 기능점수 | UFP × VAF | 500 FP × 1.1 = 550 AFP |
생산성 지표 | 과거 데이터 기반 | 8 MH/FP (인시간/기능점수) |
총 개발 공수 | FP × 생산성 지표 | 550 FP × 8 MH/FP = 4,400 MH |
일일 작업시간 | 표준 작업시간 | 8시간/일 |
인력 규모 | 프로젝트 규모 기반 | 5명 |
개발 기간 | 총 공수 ÷ (인력 × 일 작업시간) | 4,400 ÷ (5 × 8) = 110일 |
인건비 | 공수 × 평균 단가 | 4,400 MH × 50,000원 = 2.2억원 |
총 프로젝트 비용 | 인건비 + 부대비용 | 2.2억원 + 0.8억원 = 3억원 |
3. 기능점수 활용 활성화 방안
3.1 조직 차원의 활성화 방안
1) 기능점수 전문 인력 양성
- 전문 교육 프로그램 운영
- CFPS(Certified Function Point Specialist) 등 공인 자격 취득 지원
- 내부 전문가 그룹 구성 및 운영
2) 표준화된 측정 프로세스 수립
- 조직 특성에 맞는 기능점수 측정 가이드라인 개발
- 프로젝트 유형별 측정 템플릿 제공
- 측정 품질 검증 절차 마련
3) 역사적 데이터 수집 및 분석
- 프로젝트 데이터베이스 구축
- 기능점수와 실제 투입 공수의 상관관계 분석
- 조직 맞춤형 생산성 지표 개발
3.2 제도적 활성화 방안
1) 정부 및 공공 프로젝트 의무 적용
- 일정 규모 이상 프로젝트의 기능점수 측정 의무화
- 기능점수 기반 예산 책정 체계 마련
- 제안요청서(RFP)에 기능점수 기반 규모 명시
2) 소프트웨어 대가 기준 고도화
- 기능점수와 연계된 표준 대가 기준 개발
- 다양한 개발 방법론에 적합한 산정 모델 제공
- 정기적인 대가 기준 갱신 및 현실화
3) 산학 협력 강화
- 기능점수 관련 연구 지원
- 대학 교육과정에 기능점수 방법론 포함
- 산업체 협력 연구를 통한 방법론 개선
3.3 기술적 활성화 방안
1) 자동화 도구 개발 및 보급
- 요구사항 문서에서 기능점수 자동 추출 도구
- 설계 모델과 연계된 기능점수 측정 도구
- 비용 산정 자동화 도구 개발
2) 애자일 방법론과의 통합
- 스토리 포인트와 기능점수 간 매핑 방법론 개발
- 반복 개발 방식에 적합한 점진적 기능점수 측정 방법
- DevOps 환경에서의 지속적 규모 측정 방안
3) 새로운 소프트웨어 패러다임 대응
- 클라우드 네이티브 애플리케이션 측정 방법 개발
- 마이크로서비스 아키텍처 기반 시스템 측정 지침
- AI/ML 기반 시스템을 위한 확장 방안 연구
3.4 활성화를 위한 실행 로드맵
단계 | 기간 | 핵심 활동 |
---|
도입기 | 1년차 | • 기본 교육 및 인식 제고 • 파일럿 프로젝트 적용 • 내부 가이드라인 초안 작성 |
정착기 | 2~3년차 | • 측정 프로세스 표준화 • 데이터 축적 및 분석 시작 • 조직 생산성 지표 초기 개발 |
성숙기 | 3~5년차 | • 자동화 도구 도입 및 활용 • 조직 맞춤형 생산성 지표 고도화 • 비용 산정 정확도 향상 |
혁신기 | 5년차~ | • 신기술 영역 확장 • 예측 모델 고도화 • 지속적인 방법론 개선 |
4. 기능점수 활용의 미래 전망
4.1 인공지능 기반 자동화
- AI를 활용한 요구사항 문서 분석 및 기능점수 자동 산출
- 기계학습을 통한 복잡도 평가 자동화
- 정확도 지속 향상을 위한 피드백 루프 구축
4.2 하이브리드 측정 모델
- 기능점수와 다른 측정 방법론의 융합
- 다양한 개발 패러다임에 적용 가능한 유연한 모델 개발
- 비즈니스 가치와 기술적 복잡성 모두 반영하는 통합 지표 개발
4.3 실시간 비용 예측 모델
- 프로젝트 진행에 따른 기능점수 변화 추적
- 실시간 비용 예측 및 조정 메커니즘
- 데이터 기반의 의사결정 지원 체계
어린이 버전 요약
기능점수는 컴퓨터 프로그램이 얼마나 많은 일을 할 수 있는지 측정하는 방법이에요. 마치 케이크를 만들 때 얼마나 많은 재료와 장식이 필요한지 계산하는 것과 비슷해요. 케이크의 크기와 복잡도를 알면 얼마나 많은 시간과 돈이 필요한지 미리 알 수 있죠. 기능점수도 마찬가지로, 프로그램이 해야 할 일들을 미리 세어보고 점수로 매기면 개발 비용과 시간을 예측할 수 있답니다!