앞에서 설명한 기능점수의 산출과 그에 따른 개발비 산정을 이용하여 실제 산출하는 방법을 알아보도록 한다. 실전에서는 대부분 엑셀양식을 미리 만들고 대부분의 계산을 스크립트로 처리하므로, 대부분의 작업은 기능의 도출과 기능의 유형을 결정하고, 보정계수를 입력하면 나머지는 자동으로 처리된다.
실제 본인이 사용하는 양식을 이용하여 개발비를 산정하는 방법을 실제 사례를 통하여 설명한다.
?
- 요구사항
앞에서 예로 들었던 간략한 전자결재 시스템에 대하여 작업한다. 요구사항이 이렇게 구체적으로 나올리는 없겠지만, 일단 예를 들어 아래와 같은 요구사항이 있다고 가정한다.
요구사항 |
-?????? 사용자는 새로운 전자결재 문서를 생성하여 작성할 수 있다. -?????? 결재시 결재선과 결재양식을 지정할 수 있으며, 결재선 지정시, 직원을 검색하여 지정할 수 있다.
-?????? 사용자는 본인에게 수신된 결재문서목록을 조회할 수 있다. -?????? 사용자는 결재문서목록을 선택하여 결재문서를 조회할 수 있다. -?????? 사용자는 본인에게 수신된 결재문서를 결재 또는 반려처리할 수 있다. -?????? 결재를 요청한 사용자는 본인이 작성한 문서의 결재상태를 조회하고 결재문서를 출력할 수 있다.
-?????? 시스템관리자는 결재에 사용될 사용자정보와 부서정보를 관리할 수 있다. -?????? 시스템관리자는 결재에 사용될 결재유형별 양식을 관리할 수 있다. -?????? 시스템관리자는 월별 결재처리 통계를 조회할 수 있다.
-?????? 웹환경에서 개발한다. ? |
?
- 기능도출 및 기능유형 결정
-?????? 요구사항을 분석하여 트랜잭션기능과 데이터기능을 도출한다.
-?????? 쉬운 도출을 위하여 아래와 같은 엑셀양식을 이용하여 요구사항을 만족하는 기능을 기입한다.
-?????? 기능명과 트랜잭션유형을 입력하고, 기능이 필요로하는 데이터명을 입력한다.
기능명 |
EI |
EO |
EQ |
ILF |
EIF | |||
입력 |
수정 |
삭제 | ||||||
결재요청 |
결재문서작성 |
1 |
결재문서 |
|||||
결재선입력 |
1 |
결재선 |
||||||
? |
결재양식선택 |
? |
? |
? |
? |
1 |
결재양식 |
? |
결재선검색 |
1 |
사용자 |
||||||
결재처리 |
결재문서목록조회 |
? |
? |
? |
? |
1 |
결재문서 |
? |
? |
결재문서조회 |
? |
? |
? |
? |
1 |
결재문서 |
? |
? |
결재처리 |
? |
1 |
? |
? |
? |
결재문서 |
? |
? |
결재상태조회 |
? |
? |
? |
? |
1 |
결재문서 |
? |
? |
결재문서출력 |
? |
? |
? |
? |
2 |
결재문서 |
? |
정보관리 |
사용자관리 |
1 |
1 |
1 |
? |
2 |
사용자 |
? |
? |
부서관리 |
1 |
1 |
1 |
? |
2 |
부서 |
? |
? |
결재양식관리 |
1 |
1 |
1 |
? |
2 |
결재양식 |
? |
? |
월별결재통계 |
? |
? |
? |
1 |
? |
결재문서 |
? |
?
-?????? 위 예에서 “입력”, “선택”도 기능으로 도출한다. 사용자 입장에서 무언가를 “선택”하는 행위도 하나의 기능으로 보아야 하기 때문이다. 실제 이 “선택”은 추후 개발시 콤보박스 하나로 구현될 지라도, 요구가 있다면 하나의 EQ로 도출되어야 한다.
-?????? 결재문서출력 기능은 “조회”와 “인쇄(출력)”을 모두 가지므로 EQ를 2로 잡는다.
?
- 기능점수 산출
-?????? 위의 표를 완성하였다면, 실제 기능점수 산출용 엑셀에 트랜잭션기능과 데이터 기능을 옮긴다.
-?????? 엑셀양식에서 보통 트랜잭션과 데이터는 다른 쉬트로 정리하게 되며, 데이터기능은 위 표에서 중복을 제거하고 옮긴다.
?
[트랜잭션기능 쉬트]
기능명 |
EI |
EO |
EQ | |
결재요청 |
결재문서작성 |
1 |
||
결재선입력 |
1 |
|||
? |
결재양식선택 |
? |
? |
1 |
결재선검색 |
1 | |||
결재처리 |
결재문서목록조회 |
? |
? |
1 |
? |
결재문서조회 |
? |
? |
1 |
? |
결재처리 |
1 |
? |
? |
? |
결재상태조회 |
? |
? |
1 |
? |
결재문서출력 |
? |
? |
2 |
정보관리 |
사용자관리 |
3 |
? |
2 |
? |
부서관리 |
3 |
? |
2 |
? |
결재양식관리 |
3 |
? |
2 |
? |
월별결재통계 |
? |
1 |
? |
합계 |
12 |
1 |
13 |
?
[데이터기능 쉬트]
데이터명 |
ILF |
EIF | |
전자결재 |
결재문서 |
1 |
|
? |
결재선 |
1 |
|
? |
결재양식 |
1 |
? |
? |
사용자 |
1 |
|
? |
부서 |
1 |
? |
합계 |
5 |
0 |
?
-?????? 위 표를 완성하면 트랜잭션과 데이터 기능의 유형별 합계가 산출되었으므로, 엑셀 스크립트에서 자동으로 기능점수를 산출하도록 할 수 있다.
-?????? 총 기능점수를 산출하기 위하여 아래의 테이블을 사용한다.
기능유형 |
평균복잡도 |
합 계 | ||
내부논리파일(ILF) |
5 |
× |
7.5 |
37.5 |
외부연계파일(EIF) |
0 |
× |
5.4 |
0.0 |
외부입력(EI) |
12 |
× |
4.0 |
48.0 |
외부출력(EO) |
1 |
× |
5.2 |
5.2 |
외부조회(EQ) |
13 |
× |
3.9 |
50.7 |
총 기능점수 |
141.4 |
?
?
- 보정계수 산출
-?????? 보정계수는 아래의 쉬트를 이용하여 계산한다. 쉬트에는 수식으로 값을 입력하면 각각의 보정계수값을 자동 계산하도록 할 수 있다.
-?????? 전체를 웹으로 개발하게 되므로 언어는 Java와 스크립트를 반씩 사용하는 것으로 설정하며, 어플리케이션 유형은 100% 업무처리용이다. 일반적인 C/S와 웹환경의 경우 분산처리는 1로 설정하면 되며, 나머지 품질특성은 요구가 없으면 모두 0이다.
- 개발원가 산출
-?????? 위의 작업까지 완료하였다면, 개발원가는 자동계산되며, 계산된 쉬트는 아래와 같다.
- 소프트웨어 개발비 산출
-?????? 개발원가에 이윤과 부가가치세를 더하여 최종 개발비를 산출한다.
-?????? 예에서는 이윤 10%를 책정하였다.
-?????? 계산에 의하여 위 전자결재 시스템의 총 개발비는 556,700,000원이다.