728x90
반응형

FP(Function Point, ISO/IEC 14143-1): 소프트웨어 규모 측정을 위한 표준 방법론

소프트웨어 프로젝트의 성패는 정확한 규모 측정에서 시작된다. 기능점수(Function Point, FP)는 소프트웨어의 기능적 규모를 측정하는 표준화된 방법으로, 개발 비용과 일정을 예측하는 데 필수적인 도구이다. 본 글에서는 FP의 개념, 측정 방법, 활용 사례를 통해 실무에 적용할 수 있는 지식을 제공한다.

FP의 개념과 역사

  • 1979년 IBM의 앨런 알브레히트(Allan Albrecht)가 처음 제안
  • 사용자 관점에서 소프트웨어가 제공하는 기능의 양을 측정
  • LOC(Lines of Code)와 달리 프로그래밍 언어에 독립적인 측정 가능
  • ISO/IEC 14143-1로 국제 표준화되어 신뢰성 확보
  • 소프트웨어 기능 규모를 객관적으로 측정하는 방법론

FP 측정의 기본 원리

FP는 다음 두 가지 요소를 기반으로 측정:

  1. 데이터 기능(Data Function)

    • 내부 논리 파일(ILF: Internal Logical File)
    • 외부 연계 파일(EIF: External Interface File)
  2. 트랜잭션 기능(Transaction Function)

    • 외부 입력(EI: External Input)
    • 외부 출력(EO: External Output)
    • 외부 조회(EQ: External Inquiry)

각 구성요소는 복잡도(Low, Average, High)에 따라 가중치를 부여받는다.

graph LR
    A[Function Point] --> B[데이터 기능]
    A --> C[트랜잭션 기능]
    B --> D[내부 논리 파일(ILF)]
    B --> E[외부 연계 파일(EIF)]
    C --> F[외부 입력(EI)]
    C --> G[외부 출력(EO)]
    C --> H[외부 조회(EQ)]

FP 측정 프로세스

1. 측정 범위와 경계 설정

  • 측정할 애플리케이션의 경계 정의
  • 사용자 관점에서 식별 가능한 기능 단위로 분해

2. 데이터 기능 식별 및 측정

  • 내부 논리 파일(ILF): 애플리케이션 내에서 유지되는 논리적 데이터 그룹

    • 예: 고객 테이블, 상품 테이블, 주문 테이블
    • 복잡도에 따라 가중치 7~15 부여
  • 외부 연계 파일(EIF): 다른 애플리케이션에서 유지되지만 참조되는 파일

    • 예: 외부 API에서 가져오는 환율 정보, 우편번호 정보
    • 복잡도에 따라 가중치 5~10 부여

3. 트랜잭션 기능 식별 및 측정

  • 외부 입력(EI): 애플리케이션 경계 외부에서 데이터가 들어와 ILF를 변경

    • 예: 회원가입, 게시글 작성, 주문 입력
    • 복잡도에 따라 가중치 3~6 부여
  • 외부 출력(EO): 파생 데이터를 포함한 데이터를 외부로 출력

    • 예: 재무 보고서, 통계 리포트, 분석 결과
    • 복잡도에 따라 가중치 4~7 부여
  • 외부 조회(EQ): 단순 데이터 검색 및 표시

    • 예: 상품 목록 조회, 사용자 프로필 조회
    • 복잡도에 따라 가중치 3~4 부여

4. 복잡도 및 가중치 평가

  • 각 기능별로 복잡도(낮음, 보통, 높음) 평가
  • 복잡도는 DET(Data Element Type)과 RET(Record Element Type) 또는 FTR(File Type Referenced)의 수에 따라 결정
table
    thead
        tr
            th 기능 유형
            th 낮음
            th 보통
            th 높음
    tbody
        tr
            td ILF
            td 7
            td 10
            td 15
        tr
            td EIF
            td 5
            td 7
            td 10
        tr
            td EI
            td 3
            td 4
            td 6
        tr
            td EO
            td 4
            td 5
            td 7
        tr
            td EQ
            td 3
            td 4
            td 6

5. 미조정 기능점수(UFP) 계산

  • 각 기능별 가중치의 합계로 미조정 기능점수 산출
  • UFP = Σ(각 기능 유형별 개수 × 복잡도별 가중치)

6. 기술적/환경적 복잡도 반영

  • 14개의 일반 시스템 특성(GSC)을 평가하여 조정 계수(VAF) 산출
  • VAF = 0.65 + (Σ(14개 GSC 값) × 0.01)
  • 최종 FP = UFP × VAF

FP 측정의 실제 사례

사례 1: 온라인 쇼핑몰 시스템

식별된 데이터 기능:

  • ILF: 회원(중간), 상품(복잡), 주문(복잡), 장바구니(단순)
  • EIF: 결제정보(중간), 배송정보(단순)

식별된 트랜잭션 기능:

  • EI: 회원가입(중간), 상품등록(복잡), 주문접수(복잡)
  • EO: 매출보고서(복잡), 인기상품분석(복잡)
  • EQ: 상품검색(중간), 주문조회(중간), 회원정보조회(단순)

계산:

  • ILF: (1×10) + (2×15) + (1×7) = 47
  • EIF: (1×7) + (1×5) = 12
  • EI: (1×4) + (2×6) = 16
  • EO: (2×7) = 14
  • EQ: (2×4) + (1×3) = 11

미조정 기능점수(UFP): 47 + 12 + 16 + 14 + 11 = 100

조정계수(VAF): 0.65 + (0.56) = 1.21 (가정)

최종 FP: 100 × 1.21 = 121 FP

사례 2: 인사관리 시스템

식별된 데이터 기능:

  • ILF: 직원(복잡), 부서(단순), 급여(복잡), 평가(중간)
  • EIF: 법정수당정보(단순)

식별된 트랜잭션 기능:

  • EI: 직원등록(중간), 급여계산(복잡), 평가입력(중간)
  • EO: 급여명세서(복잡), 인사통계(복잡)
  • EQ: 직원검색(단순), 부서별인원조회(중간)

미조정 기능점수(UFP): 85 (계산 과정 생략)

최종 FP: 93.5 FP (VAF 적용 후)

FP의 주요 방법론 비교

1. IFPUG(International Function Point Users Group) 방식

  • 가장 널리 사용되는 표준 방법론
  • ISO/IEC 20926으로 표준화
  • 14개의 GSC를 사용하여 VAF 조정
  • 복잡도 매트릭스가 상세하게 정의됨

2. NESMA(Netherlands Software Metrics Association) 방식

  • IFPUG와 유사하나 일부 간소화된 방법 제공
  • 추정형, 글로벌형, 상세형 세 가지 방법론 제공
  • ISO/IEC 24570으로 표준화

3. COSMIC(Common Software Measurement International Consortium) 방식

  • 실시간 시스템, 임베디드 시스템에 더 적합
  • 데이터 이동(Data Movement)에 기반한 측정
  • 입력, 출력, 읽기, 쓰기 4가지 데이터 이동 고려
  • ISO/IEC 19761로 표준화

4. Mark II 방식

  • 영국에서 주로 사용
  • 논리적 트랜잭션에 중점
  • ISO/IEC 20968로 표준화

FP의 장점과 한계

장점

  • 기술 독립적: 프로그래밍 언어나 기술에 영향 받지 않음
  • 사용자 관점: 사용자가 인식하는 기능 기반으로 측정
  • 표준화: 국제 표준으로 인정받아 신뢰성 높음
  • 조기 측정: 요구사항 단계에서도 측정 가능
  • 비교 가능: 서로 다른 프로젝트 간 비교 가능

한계

  • 주관성: 측정자에 따라 결과 차이 발생 가능
  • 복잡성: 정확한 측정을 위해 전문 지식 필요
  • 시간 소요: 상세한 분석에 많은 시간 필요
  • 신기술 적용 어려움: AI, 빅데이터 등 신기술 특성 반영 제한적
  • UI 복잡도 미반영: 사용자 인터페이스의 복잡도 측정 어려움

FP의 실무 활용 방안

1. 프로젝트 견적 및 비용 산정

  • FP당 비용 계산으로 개발 비용 예측
  • 국내 SW사업 대가 산정 가이드에 FP 기반 방식 도입
  • 예: 120FP × 55만원/FP = 6,600만원

2. 프로젝트 일정 계획

  • FP를 기반으로 개발 기간 예측
  • 팀 생산성(FP/MM)을 고려한 인력 배치
  • 예: 150FP ÷ 팀 생산성(10FP/MM) = 15인월

3. 생산성 측정 및 벤치마킹

  • 팀/조직/프로젝트별 생산성 비교
  • 생산성 = 산출된 FP / 투입 공수
  • 동종 업계 벤치마킹을 통한 조직 역량 진단

4. 품질 관리

  • FP당 결함수(Defects/FP)로 품질 수준 측정
  • 프로젝트 결함 밀도의 목표 설정
  • 예: 목표 결함 밀도 0.05 결함/FP

5. 유지보수 규모 예측

  • 기존 시스템의 규모를 FP로 측정
  • 연간 유지보수 비용을 FP의 15~25%로 예측
  • 기능 변경/추가에 따른 영향도 분석

결론

FP(Function Point)는 소프트웨어의 기능적 규모를 객관적으로 측정할 수 있는 효과적인 방법론이다. ISO/IEC 14143-1 표준으로 인정받아 전 세계적으로 활용되고 있으며, 특히 비용 산정, 일정 계획, 생산성 측정 등 프로젝트 관리의 핵심 지표로 활용된다.

실무에서는 요구사항 명확화, 범위 관리, 견적 산출, 프로젝트 모니터링 등 다양한 측면에서 FP를 활용할 수 있다. 다만, 정확한 측정을 위해서는 전문 지식과 경험이 필요하며, 조직에 맞는 측정 가이드라인과 이력 관리가 중요하다.

향후에는 AI, 클라우드, 마이크로서비스 등 새로운 기술 환경에서도 FP 측정 방법론이 지속적으로 발전할 것으로 예상된다. 소프트웨어 개발 조직은 FP를 단순한 측정 도구가 아닌 프로젝트 성공을 위한 전략적 관리 도구로 활용해야 할 것이다.

Keywords

Function Point, 기능점수, ISO/IEC 14143, Software Metrics, 소프트웨어 측정, IFPUG, 프

728x90
반응형

+ Recent posts