본문 바로가기
CS/SW공학

[SW공학] 기능점수(Function Points)의 개념과 산정방식, 예시

by jangThang 2023. 8. 4.
반응형

 SW 개발단가를 주로 LoC(Line of Code) 기준으로 산정하곤 합니다. 단순히 코드량을 기준으로 보수를 측정하는 방식으로, 하청을 받는 중소기업 개발자를 '단순 코더'로 만든 주범이기도 합니다. 그래서 간혹 클린코드와는 전혀 거리가 먼 '복붙 코드'나 '하드 코딩'을 보기도 합니다.

 반면 기능점수는 '기능별 난이도'를 고려해서 개발단가를 산정하는 방식입니다. 이에 대한 설명과 산정 방식을 알아보도록 하겠습니다.

 

[ Contents ]

     

     

    1. 기능점수 (Function Points)

    소프트웨어의 각 기능별로 가중치를 부여한 산출방식

     

     기능별로 구현 난이도는 다르므로, 가중치를 두어 개발단가(개발 규모)를 산정하는 방식입니다.

     지금도 단순 명료한 LoC 방식을 많이 사용하지만, 최근에는 기능점수(FP)를 이용하는 경우가 늘고 있다고 합니다. 정부나 국제협회도 FP를 밀어주고 있습니다.

     

     

     

    2. 기능점수 산출방법

    1) 기능 유형

    유형 기능 예시
    EI (External Input) 외부 입력 데이터 입력
    EO (External Output) 외부 출력 데이터 출력
    EQ (External Inquiries) 외부 조회 외부에서 SQL문 실행
    ILF (Internal Logical Files) 내부 논리 파일 설정, 제어 정보 보관
    ELF (Enternal Interface Files) 외부 연계 파일 타 시스템 연계 (DB, API 등)

     

     기능유형은 총 5가지로 나눕니다.

     단순 분류라서 애매하게 걸치는 경우도 꽤 나옵니다. 그럴 때에는 조금이라도 더 연관있는 유형으로 분류합니다.

     

    반응형

     

    3. 기능점수 산출예시

    단위 업무 데이터 기능 처리 기능
    내부논리파일
    (ILF)
    외부
    인터페이스파일
    (EIF)
    외부입력(EI) 외부출력
    (EO)
    외부조회
    (EQ)
    입력 수정 삭제
    P1 2 0 1 0 1 0 1
    P2 1 0 1 0 0 1 0

     

    1) 간이법

    평균 복잡도 가중치를 이용하는 방식

     

     평균 복잡도 가중치가 ILF 7.5 / EIF 5.4 / EI 4.0 / EO 5.2 / EQ 3.9 일 때, P1의 기능 점수는 아래와 같습니다.

     ILF*2 + EI*(1+1) + EQ*1 = 7.5 * 2 + 4 * 2 + 3.9 = 15 + 8 + 3.9 = 26.9

     

     

    2) 정통법

    각 작업별로 기능별 가중치를 적용하는 방식

     

     P1: ILF 7.5 / EIF 5.4 / EI 4.0 / EO 5.2 / EQ 3.9, P2: ILF 6.5 / EIF 4.4 / EI 3.0 / EO 4.2 / EQ 3.5

     이런 식으로 작업마다 기능별 가중치를 다르게 두는 방식입니다. 더 세분화해서 프로젝트 규모를 추정할 수는 있겠지만, 기준을 잡기도 어려울 뿐더러 너무 복잡해지는 단점이 있습니다.

     

    star가 되고나서 Tistory

    반응형

    댓글