핵심 인사이트 (3줄 요약)

  • 사용자 중심 규모 산정: 소스코드 라인수(LOC)가 아닌 사용자에게 제공되는 '기능'의 양을 기준으로 소프트웨어 규모를 정량적으로 측정한다.
  • 표준화된 측정 방식: 국제 표준(IFPUG)에 따라 데이터 기능과 트랜잭션 기능을 분류하고 복잡도를 적용하여 산출한다.
  • 예산 및 대가 산정 근거: 공공 소프트웨어 사업 등에서 개발 대가 산정의 핵심 근거로 활용되며, 객관성과 투명성을 제공한다.

Ⅰ. 개요 (Context & Background)

기능 점수(Function Point)는 소프트웨어의 복잡도와 기능을 정량적으로 측정하기 위해 1979년 IBM의 알랭 알브레히트(Alan Albrecht)가 제안한 방식이다. 개발 기술이나 언어에 독립적으로 소프트웨어의 규모를 파악할 수 있어, 사업 기획 단계부터 유지보수 단계까지 널리 사용된다.

Ⅱ. 아키텍처 및 핵심 원리 (Deep Dive)

기능 점수는 크게 데이터 기능트랜잭션 기능 두 가지 범주로 분류하여 측정한다.

[ Architecture of Function Point Counting ]

       +-------------------------------------------------------+
       |             Application Boundary (어플리케이션 경계)     |
       |                                                       |
       |     [Transaction Functions]       [Data Functions]    |
       |                                                       |
       |  User --(EI)--> [Process] <--(ILF)--> [Internal DB]   |
       |                                                       |
       |  User <--(EO)-- [Process] <--(EIF)--> [External Sys]  |
       |                                                       |
       |  User <--(EQ)-- [Process]                             |
       |                                                       |
       +-------------------------------------------------------+

1. EI (External Input): 외부 입력 (데이터 등록, 수정, 삭제)
2. EO (External Output): 외부 출력 (수식/계산이 포함된 데이터 출력)
3. EQ (External Inquiry): 외부 조회 (단순 데이터 검색 및 출력)
4. ILF (Internal Logical File): 내부 논리 파일 (시스템 내 유지되는 데이터)
5. EIF (External Interface File): 외부 연계 파일 (타 시스템에서 참조하는 데이터)

산출 프로세스:

  1. 측정 유형 결정: 신규 개발, 개선, 애플리케이션 측정 중 선택한다.
  2. 측정 범위 및 경계 설정: 대상 시스템의 업무 범위를 확정한다.
  3. 데이터 기능 측정: ILF와 EIF의 개수와 복잡도를 파악한다.
  4. 트랜잭션 기능 측정: EI, EO, EQ의 개수와 복잡도를 파악한다.
  5. 미조정 기능점수(UFP) 산출: 기능별 가중치를 합산한다.
  6. 보정 계수 적용: 규모, 복잡도, 성능 등을 반영하여 최종 기능점수(FP)를 도출한다.

Ⅲ. 융합 비교 및 다각도 분석 (Comparison & Synergy)

비교 항목기능 점수 (Function Point)소스코드 라인수 (LOC)
측정 기준사용자 기능 요구사항 (Logical)물리적 코드 라인 (Physical)
측정 시점분석/설계 단계부터 가능 (조기 산정)구현 완료 후에나 정확한 측정 가능
객관성개발 언어/기술에 독립적언어마다 코딩 스타일에 따라 가변적
주요 용도대가 산정, 생산성 분석개발 일정 관리, 결함 밀도 측정

Ⅳ. 실무 적용 및 기술사적 판단 (Strategy & Decision)

실무 적용 사례:

  • 공공 소프트웨어 사업: '소프트웨어 사업 대가 산정 가이드'에 따라 FP 단가를 적용하여 예산을 편성한다.
  • 생산성 벤치마킹: 개발 단계별 투입 공수 대비 FP를 분석하여 조직의 개발 생산성을 관리한다.

기술사적 판단: "기능 점수는 완벽하지 않지만(알고리즘 위주 시스템 측정의 한계 등), 현존하는 가장 객관적인 소프트웨어 자산 가치 평가 도구이다. 특히 상세 기능점수법간이 기능점수법을 프로젝트의 생명주기에 맞춰 적절히 선택하여 정확도를 높여야 한다."

Ⅴ. 기대효과 및 결론 (Future & Standard)

기능 점수는 단순히 예산 산정을 넘어 소프트웨어 공학의 정량적 관리 체계를 확립하는 기반이 된다. 향후 클라우드 기반의 API 위주 개발 환경에 맞춘 확장 기능 점수(EFP) 등의 논의가 지속되고 있으며, ISO/IEC 국제 표준 준수가 더욱 강조될 전망이다.

📌 관련 개념 맵 (Knowledge Graph)

  • COCOMO: 개발 공수(M/M) 예측 모델
  • IFPUG: 국제 기능점수 사용자 그룹 (표준 제정)
  • Function Point Unit Price: 매년 공지되는 FP당 단가

👶 어린이를 위한 3줄 비유 설명

  1. 레고 성을 지을 때 '브릭 개수'가 아니라 '방 몇 개, 문 몇 개'를 만들지로 가격을 정하는 거예요.
  2. 방이 크고 화려할수록(복잡할수록) 점수를 더 많이 줘서 공평하게 계산한답니다.
  3. 이렇게 하면 성을 만드는 재료가 찰흙이든 나무든 상관없이 성의 가치를 알 수 있어요!