기능점수(Function Point, FP)는 소프트웨어의 기능적 크기를 측정하는 방법으로, 개발 비용 및 노력을 예측하는 데 사용됩니다. 주로 IFPUG(International Function Point Users Group)에서 정의한 표준을 따르며, 소프트웨어 프로젝트의 복잡성과 규모를 객관적으로 평가하는 데 활용됩니다.
2. 기능점수 구성 요소
기능점수는 크게 데이터 기능과 트랜잭션 기능으로 나뉩니다.
1) 데이터 기능
ILF (Internal Logical File): 내부 논리 파일 (시스템 내부에서 유지되는 데이터 저장소)
EIF (External Interface File): 외부 인터페이스 파일 (다른 시스템과 공유되는 데이터 저장소)
2) 트랜잭션 기능
EI (External Input): 외부 입력 - 시스템이 데이터를 입력받아 처리하는 기능
EO (External Output): 외부 출력 - 시스템이 데이터를 가공하여 출력하는 기능
EQ (External Inquiry): 외부 조회 - 단순 데이터 조회 기능
3. EI (External Input) - 외부 입력
외부 입력(EI)은 사용자가 시스템에 데이터를 입력하는 기능을 의미합니다. 일반적으로 데이터베이스에 저장되거나 기존 데이터를 수정하는 작업을 포함합니다.
예시:
사용자 로그인
회원가입 정보 입력
상품 등록
게시글 작성
4. EO (External Output) - 외부 출력
외부 출력(EO)은 시스템이 데이터를 처리하여 사용자에게 제공하는 기능을 의미합니다. 이 기능은 데이터베이스에서 가져온 정보를 계산, 정렬, 필터링 등의 작업을 거쳐 출력하는 경우가 많습니다.
예시:
월별 매출 보고서 생성
사용자 주문 내역 출력
시스템 로그 파일 생성
PDF 또는 CSV 파일 다운로드
5. EQ (External Inquiry) - 외부 조회
외부 조회(EQ)는 사용자가 시스템에서 데이터를 검색하는 기능입니다. 외부 입력(EI)이나 외부 출력(EO)과 달리 데이터의 변경 없이 단순히 조회만 수행합니다.
예시:
상품 목록 조회
고객 정보 검색
날씨 데이터 API 호출
사용자 프로필 확인
6. 기능점수 계산 방법
기능점수를 계산할 때, EI, EO, EQ와 같은 트랜잭션 유형에 가중치를 적용하여 최종 FP를 산출합니다.