본문 바로가기

카테고리 없음

Function Point를 활용한 소프트웨어 비용산정

Function Point를 활용한 소프트웨어 비용산정

 

프로젝트 데이터베이스 축적해 효율성 확보가 목적



임호진|동양종합금융증권 과장


우리는 소프트웨어의 적절한 비용을 알기 위해 많은 노력을 해 오고 있다. 하지만 소프트웨어를 비용으로 추정하는 데에는 많은 어려움이 있다. 그것은 소프트웨어는 일반 하드웨어와는 다르게 비가시성, 변경, 비마모성, 복잡성 등의 특징을 가지고 있고 이러한 특징은 비용예측을 어렵게 만드는 요인이기도 하다.


기존에는 소프트웨어의 비용산정시에 간단하게 비용을 계산 할 수 있는 LOC(Line Of Code)방식이 사용됐다. 하지만 LOC는 소프트웨어의 비용을 산정할 때 ‘양’적인 측면만을 강조하고 ‘기능’적인 측면의 비용산정에는 문제가 발생한다.


이러한 LOC의 문제점을 해결하고 사용자 관점의 기능과 양을 고려한 비용산정 기법이 바로 Function Point이다. 지금부터 Function Point의 산정절차에 대해서 자세히 알아보자.


측정유형 결정


Function Point는 비용을 산정하기 전에 개발 프로젝트, 개선 프로젝트, 애플리케이션이라는 3가지 유형으로 분류한다. 즉, Function Point의 첫번째 단계는 이러한 세가지 유형 중 하나를 결정하는 단계이다.




측정범위와 애플리케이션 경계식별


측정범위와 애플리케이션 경계식별은 현재 개발하고 있는 혹은 변경할 소프트웨어에 대한 전체범위를 결정하고 각 어플리케이션의 경계를 분류하는 과정이다.


- ILF(Internal Logical File): 어플리케이션 경계 내에서 유지되는 데이터 및 제어정보
- EIF(External Interface File): 어플리케이션 경계 밖에서 유지되는 데이터 및 제어정보





데이터 기능점수 산정


데이터 기능점수 산정은 먼저 앞에서 나온 ILF와 EIF를 식별하는 것이다. ILF와 EIF를 식별하면 각각 복잡도와 기여도를 결정하여 데이터 기능점수를 도출한다. 먼저 복잡도 산정 방법은 DET(Data Element Type)과 RET(Record Element Type)을 통해서 이루어진다. DET는 ILF나 EIF에 유지되는 필드 중에서 사용자가 식별 가능하고 비반복적인 필드를 의미하고 RET는 DET의 서브 셋을 의미한다. 이 둘을 식별하고 개수를 파악하는 것이다.


DET와 RET를 계산 후에 이것을 기여도 테이블로 변환해서 최종 데이터 기능점수를 계산한다.


 1~19 DET20~50 DET51이상 DET
1 RET낮음낮음보통
2~5 RET낮음보통높음
6이상 RET보통높음높음

 ILF 미 조정 기능점수EIF 미 조정 기능점수
낮음75
보통107
높음1510

트랜잭션 기능점수


트랜잭션 기능점수는 사용자가 식별 할 수 있고 최소한의 업무를 처리 할 수 있는 단위 프로세스를 식별하고 각 단위 프로세스 별로 EI/EO/EQ로 분류한 다음 복잡도와 기여도를 계산하여 트랜잭션 기능 점수를 계산한다.


EI/EO/EQ의 단위 프로세스가 식별되면 DET와 FTR(File Transfer Reference)를 통하여 복잡도를 계산한다. DET는 앞에서 이야기 한 것 처럼 반복되지 않고 사용자가 식별 가능한 필드이고 FTR은 어플리케이션에서 참조하는 ILF나 EIF의 수를 의미한다.



EI/EO/EQ 별로 DET와 FTR이 계산 되었으면 복잡도와 기여도를 계산하면 된다.


EI의 FTR/DET1~4 DET5~15 DET16이상 DET
0~1 FTR낮음낮음보통
2 FTR낮음보통높음
3이상 FTR보통높음높음

EI(External Input)ㆍ 애플리케이션 경계 밖에서 경계 안으로 들어오는 데이터나 제어정보를 처리하는 단위 프로세스
EO(External Output)ㆍ 애플리케이션 경계 밖으로 조회되는 것으로 파생 데이터 생성과 같은 처리로직을 포함하는 단위 프로세스
EQ(External Inquiry)ㆍEO와 같으나 파생 데이터 생성과 같은 처리로직을 포함하지 않는 단위 프로세스

 EI/EQEO
낮음34
보통45
높음67


미조정 기능점수의 결정


미조정 기능점수는 데이터 기능점수와 트랜잭션 기능점수의 합으로 계산된다.


조정인자 결정


Function Point는 14개의 조정인자를 가지고 있다. 이러한 14개의 조정인가는 0~5까지의 영향도로 이루어지며 이것은 미조정 기능점수 값을 35% 조정 할 수가 있다.


[조정인자]
1. 데이터 통신 (Data Communication)
2. 분산 데이터 처리 (Distributed Data Processing)
3. 시스템 성능 (System Performance)
4. 자원 제약 정도 (Heavily Used Configuration)
5. 트랜잭션 비율 (Transaction Rate)
6. 온라인 데이터 비율 (On-Line Data Entry)
7. 최종 사용자 효율성 (End-User Efficiency)
8. 온라인 갱신 (On-Line Update)
9. 처리 복잡도 (Complex Processing)
10. 재사용성 (Reusability)
11. 설치용이성 (Installation Ease)
12. 운영용이성 (Operational Ease)
13. 다중 설치성 (Multiple Sites)
14. 변경 용이성 (Facilitate Change)

조정 기능점수 결정


조정인가 값이 결정되면 개발, 개선, 어플리케이션의 유형에 따라 조정인자를 반영하여 최종 Function Point 값을 계산하게 된다.


애플리케이션 기능점수 = 미조정 기능점수 * 조정값


이렇게 Function Point를 통해서 소프트웨어의 비용을 계산 할 수가 있다. 지금까지 알아본 방식은 이미 요구분석과 설계가 끝난 다음에 비용을 산정하는 상세법 이다. 하지만 소프트웨어 개발 제안단계에서는 이러한 방법을 통해서 소프트웨어의 비용을 추정 할 수가 없을 것이다. 이러한 경우는 통계적인 데이터를 활용하여(평균값) 소프트웨어 비용을 추정한다. 이러한 방법을 기안법이라고 한다.


지금까지 수학적 소프트웨어 비용산정인 Function Point에 대해서 알아보았다. 실제로 많이 쓰이고 있으므로 기본 개념과 경험을 확실히 알 필요가 있을 것이다. 또한 기안법을 활용하기 위해서는 과거 프로젝트에 대한 정보가 축척 되어 있어야 한다. 그러므로 프로젝트 종료 후에 프로젝트에 대한 경험적 교훈이 무엇보다 형식지로 표현된 데이터베이스에 축척 돼야 한다.


제공 : DB포탈사이트 DBguide.net

출처명 : 경영과컴퓨터 [2006년 1월]

-- 저작권 문제시  삭제하겠습니다.