Specialist in Software

SW개발비 산출내역서 작성(간이법 FP산정) 본문

Smart Factory

SW개발비 산출내역서 작성(간이법 FP산정)

SISW 2024. 4. 18. 21:53

SW개발비 산출내역서를 ‘FP산정(간이법 기능점수)’시트로 작성하는 방법입니다.

 

FP산정 컬럼정의 및 산정방법

- FP산정 시트는 기능명, 데이터 및 트랜잭션 기능, FP산출 등의 컬럼으로 구성되어 있으며 FP산정 시트를 작성하기 위해 각 컬럼이 뜻하는 정의를 이해해야 합니다.

) 기능명

- 어플리케이션명, 세부 업무명, 단위프로세스명, 단위프로세스 설명으로 구성되어 있으며 사업계획서의 ‘Applicaion 시스템 기능 설명을 참조하여 작성합니다. 여기서 주의하여야 할 점은 단위프로세스(단위프로세스 설명)용자에게 의미를 주는 최소 단위의 활동으로 작성되어야 합니다. 예를들어 거래처 관리하기 위해 사용자(도입기업 담당자)는 거래처정보를 등록, 수정, 삭제하고 추후 관리목록을 언제든지 조회하고 싶어 합니다. 이 때 단위프로세스는 거래처정보 등록, 거래처정보 수정, 거래처정보 삭제, 거래처정보 조회로 총 4개의 단위프로세스를 작성해야 합니다. 단위 프로세스가 아닌 업무모듈로 작성했을 때 거래처 관리로 단위프로세스를 과소식별하거나, 거래처 정보 등록, 거래처 담당자 정보 등록, 거래처 주소 정보 등록 등 자기 완결적(Self-Contained)인 기능을 수행하지 못하는 기능들로 과대산출하지 않도록 주의하여야 합니다.

) 데이터 및 트랜잭션 기능

- 기능점수는 데이터(Data)와 트랜잭션(Transaction)으로 구분되며 세부적으로 데이터는 데이터요소유형(DET)와 레코드요소유형(RET), 트랜잭션은 데이터요소유형(DET)와 파일참조유형(FTR)로 구분됩니다.

[데이터 유형]
유형 설명
내부논리파일
(ILF)
내부논리파일(ILF)은 사용자가 식별할 수 있는 논리적으로 연관된 데이터 그룹 또는 제어정보로 측정 대상 어플리케이션 경계 내부에서 유지된다. 내부논리파 일(ILF)의 주요 의도는 측정 대상 어플리케이션의 하나 이상의 단위 프로세스를 통하여 유지되는 데이터를 보관하는데 있다.
외부연계파일
(EIF)
외부연계파일(EIF)은 사용자가 식별할 수 있는 논리적으로 연관된 데이터 그룹 또는 제어정보로, 다른 어플리케이션의 경계 내부에서 유지되고 측정 대상 어플리케이션이 참조한다.
외부연계파일(EIF)의 주요 의도는 측정 대상 어플리케이션 경계 내의 하나 이상의 단위 프로세스를 통하여 참조된 데이터를 보관하는데 있다. 특정 어플리케이션에서 외부연계파일(EIF)로 측정된 것은 반드시 다른 어플리케이션의 내부논리파일이어야 함을 의미한다.
[트랜잭션 유형]
유형 설명
외부입력
(EI)
주요 의도는 아래의 둘 중 적어도 하나를 갖는다.
- 하나 이상의 ILF를 유지하거나.
- 어플리케이션의 동작을 변경한다.
- 그리고 경계 안으로 들어오는 데이터나 제어 정보를 받아들이는 처리로직을 포함한다.
외부출력
(EO)
주요 의도는 사용자에게 정보를 제공하는것, 그리고 아래의 처리로직중 적어도 하나를 포함한다.
- 수학 계산을 수행한다.
- 하나 이상의 ILF를 갱신한다.
- 파생 데이터를 생성한다.
- 어플리케이션의 동작을 변경한다.
외부조회
(EQ)
주요 의도는 사용자에게 정보를 제공하는것, 그리고
데이터나 제어 정보를 검색하기 위해 데이터 기능을 참조한다.
EO로 분류되는 기준을 만족하지 않는다.
[트랜잭션 복잡도 결정 유형]
유형 설명
데이터요소유형
(DET)
데이터 요소 유형은 사용자가 인식할 수 있는 유일하고 반복되지 않는 속성이다.
파일참조유형
(FTR)
참조 파일 유형은 트랜잭션 기능으로 읽혀지거나 유지되는 데이터 기능이다.

 

) FP 산출(가중치)

- 데이터와 트랜잭션을 식별 후 유형별 평균복잡도(가중치)를 곱하여 기능점수를 계산합니다. 복잡도는 데이터의 DET, RET와 트랜잭션의 DET, FTR을 카운팅하여 개별복잡도를 산정하는 것이 원칙이나 복잡도를 판별하기 어려운 경우 평균복잡도를 적용하여 기능점수를 계산합니다.

[데이터 기능 평균복잡도]
유형 내부논리파일(ILF) 외부연계파일(EIF)
평균복잡도 가중치 7.5 5.4
[트래잭션 기능 평균복잡도]
유형 외부입력(EI) 외부출력(EO) 외부조회(EQ)
평균복잡도 가중치 4.0 5.2 3.9

 

) 재사용 유형

- 재사용 유형은 신규개발, 기능 변경(수정 후 재사용), 수정없이 재사용으로 구분됩니다.(기능 삭제는 개발비 산정에 영향을 미치는 항목이 아니므로 설명 대상에서 제외합니다.)

[재사용 유형]
유형 설명
신규개발 기존 소프트웨어에 존재하지 않아 새롭게 추가되는 기능을 의미한다.
기능 변경
(수정 후 재사용)
사용자가 보유하고 있는(도입기업 또는 공급기업이 보유하고 있는) 소프트웨어를 재사용하여 소프트웨어 일부 기능을 수정하는 것을 포함한다.
수정없이
재사용
기존 소프트웨어 기능에서 설계 및 코드 변경이 일어나지는 않으나 소프트웨어 통합 및 시험활동이 반드시 요구되는 기능을 말한다.

) FTR 변경(), DET변경(), 기능변경률

- 수정 후 재사용에 한정하여 기존 FTR 대비 수정 FTR의 변경률, 기존 DET대비 수정 DET의 변경률을 측정합니다.

· 데이터의 경우 DET 변경률을 적용

· 트랜잭션의 경우 (DET 변경률 + FTR 변경률) ÷ 2 적용

[트래잭션 기능 평균복잡도]
기능 변경률 33% 이하 33% 초과 66% 이하 66% 초과
기능변경
영향계수
0.25 0.5 0.75

 

) 영향계수 : 기능변경률을 3개 구간으로 나누어 영향계수를 산정합니다.

) 재사용 기능점수 : 기능 변경 유형에만 해당하며 데이터, 트랜잭션의 평균 복잡도 가중치와 영향 계수를 곱하여 산정합니다.

 

SW 재개발비 산정

- 앞서 ‘FP산정(간이법)’시트에서 산정한 신규 개발, 기능 변경(수정 후 재사용), 수정없이 재사용 기능별 기능점수를 산정하였고, ‘SW재개발비 산정에서는 기능점수를 활용하여 개발비 산정하는 과정을 거치게 됩니다.

) 신규 개발 : 신규 개발 기능 규모(FP)를 집계합니다.

) 수정없이 재사용 : 수정없이 재사용 대상 기능 규모와 시험단계 비율(0~25%)를 곱하여 수정없이 재사용 기능 규모를 산정합니다.

[시험단계 비율 범위 적용방법]
시험단계 비율 구간 설명
0% 재개발과 관련하여 통합이나 시험이 전혀 필요 없음을 의미한다.
0%~25% 신규 개발 소프트웨어에 필요한 통합 및 시험 노력에 대해 상대적으로 어느 정도의 통합 및 시험의 노력이 소요되는지에 따라 결정된다.
25% 해당 재개발 소프트웨어에 소요되는 통합 및 시험의 노력이 완전히 새로 개발하는 소프트웨어에 대해서 소요되는 것과 동일한 정도로 소요됨을 의미한다.

 

) 수정 후 재사용

- 기능변경 규모와 재사용 난이도를 곱하여 수정 후 재사용 기능 규모를 산정합니다. 여기서 재사용 난이도 수준은 재사용 소프트웨어의 난이도에 의해 산정되는데, 재사용 소프트웨어의 구조화 및 어플리케이션 명확화 정도 문서화 및 소스코드 서술화 정도에 의하여 산정됩니다.

재사용 난이도 수준 = 1 + {(+ ) ÷ 2} / 100 × 0.8

 

구조화 및 어플리케이션 명확화 정도는 대상 프로그램의 구조화 및 모듈화 정도 그리고 모듈과 어플리케이션의 대응정도에 따라 판단합니다.

문서화 및 소스코드의 서술화 정도는 요구사항 정의서, 설계서, 시스템 설명서, 사용자 설명서 등의 문서화 정도와 대상 프로그램 소스코드의 이해에 도움을 주는 주석부분의 서술화 정도로 판단합니다.

(예시) 재사용 난이도 산정의 예시
- 평가 예시 : 대상 프로그램의 구조화 및 어플리케이션 명확화 정도가 어려움(40), 문서화 및 소스코드의 서술화 정도가 보통(30)로 평가되었다면, 재사용 난이도는 다음과 같이 산정된다.
- 재사용 난이도 수준 = 1 + (40 + 30) ÷ 2 / 100 × 0.8 = 1.28

 

) 재개발 기능 규모 : 신규 개발 + 수정없이 재사용 + 수정 후 재사용 기능 규모의 합

[기능점수 당 단가]
단계 분석 설계 구현 시험
각 단계별
기능점수 가중치
0.19 0.24 0.32 0.25 1.00
가중치에 따른 단가 105,092 132,747 176,996 138,279 553,114

 

) 보정 전 개발원가 : 재개발 기능 규모와 기능점수당 단가를 곱하여 산정합니다.

) 보정계수

- 보정의 필요성 : 기능점수당 단가는 개발 프로젝트의 복잡도가 보통인 경우를 전제로 하여 산정합니다. 그러나 실제의 개발비용은 프로젝트 규모에 따른 생산성과 발주기관(도입기업)의 비기능적인 요구사항에 따른 프로젝트의 복잡도 수준에 의해 영향을 받게 되어, 이에 대한 보정이 필요합니다. 실제 개발비용에 영향을 미치는 요인 중에서 정량적으로 파악 가능한 요소들을 중심으로 보정계수를 정의하고, 이를 개발원가에 적용하여 보정후 개발원가를 산정합니다.

· 보정 후 개발비 계산 개요 : 보정전 개발원가에 규모, 연계복잡성 수준, 성능요구 수준, 운영환경 호환성, 보안성 수준의 5가지 보정계수를 곱하여 보정후 개발원가를 산정합니다.

· 보정계수 요소별 설명

(규모 보정계수) 소프트웨어 개발사업 규모가 커지면 생산성은 증가하고, 일정 규모 이상이 되면 생산성이 다시 감소하는 추세를 보이고 있습니다. 따라서 사업규모의 증가에 따른 생산성 변화에 대한 보정이 필요하며, 이를 감안하는 것이 규모 보정계수이며, 규모 보정계수는 다음과 같이 산정합니다. 만약 한 사업에서 여러 개의 애플리케이션을 통합 구축하는 경우에는 통합규모를 대상으로 규모보정계수를 적용합니다.

[규모 보정계수]
구분 산정방법
규모 보정계수 = 0.4057 x (loge(기능점수) - 7.1978)2 + 0.8878
(, 500FP 미만시 1.2800, 3,000FP 초과시 1.1530을 적용한다.)

(연계복잡성 수준 보정계수) 대상 애플리케이션의 연계 기관수가 증가함에 따른 프로젝트 관리의 복잡성을 의미하며, 연계 기관수가 많을수록 높은 값을 가집니다.

[연계복잡성 수준]
구분 난이도 수준 계수
연계복잡성
수준
타기관 연계 없음 0.88
1~2개의 타 기관 연계 0.94
3~5개의 타 기관 연계 1.00
6~10개의 타 기관 연계 1.06
10개를 초과하는 타 기관 연계 1.12

(성능 요구수준 보정계수) 응답시간 또는 처리율에 대한 사용자 요구수준의 잡성을 의미하며, 성능요구 수준이 복잡할수록 높은 값을 가집니다.

[성능요구 수준]
구분 난이도 수준 계수
성능
요구
수준
응답성능에 대한 특별한 요구사항이 없다. 0.91
응답성능에 대한 요구사항이 있으나 특별한 조치가 필요하지는 않다. 0.95
응답시간이나 처리율이 피크(peak) 타임에 중요하며, 처리 시한이 명시되어 있다. 1.00
응답시간이나 처리율이 모든 업무 시간에 중요하며, 처리 시한이 명시되어 있다. 1.05
응답성능 요구사항이 엄격하여, 설계 단계에서부터 성능 분석이 요구되거나, 설계 및 구현단계에서 성능분석도구가 사용됨 1.09

(운영환경 호환성 보정계수) 응용SW의 설치 운영환경의 상이한 정도를 의미한다. 상이한 운영환경이 요구되거나, 상이한 하드웨어와 소프트웨어 운영환경을 지원하도록 개발되는 요구정도가 복잡할수록 높은 값을 가집니다. 사업계획서에 하나 또는 그 이상의 운영환경에 대한요구사항 또는 서버이중화 요구 여부 및 애플리케이션이 운영되는 하드웨어 및 소프트웨어 환경의 유사한 정도를 판단하여 측정할 수 있습니다.

[운영환경 호환성 수준]
구분 난이도 수준 계수
운영
환경
호환성
운영환경 호환성에 대한 요구사항이 없다. 0.94
운영환경 호환성에 대한 요구사항이 있으며, 동일 하드웨어 및 소프트웨어 환경에서 운영되도록 설계된다. 1.00
유사한 운영환경에 대한 요구사항이 있으며, 유사 하드웨어 및 소프트웨어 환경에서 운영되도록 설계된다. 1.06
상이한 운영환경에 대한 요구사항이 있으며, 이질적인 하드웨어 및 소프트웨어 환경에서 운영되도록 설계된다. 1.13
상기 항목에 더하여 일반적 산출물 이외에 여러 장소에서 원활한 운영을 보장하기 위한 운영 절차의 문서화와 사전 모의훈련이 요구된다. 1.19

(보안성 수준) 시큐어코딩, 웹취약점점검, 암호화점검, 개인정보보호 등 보안성에 대한 요구수준을 의미합니다. 보안성에 대한 요구정도가 복잡할수록 높은 값을 가진다. 4가지 보안 요구사항은 보안과 관련된 대표적인 요구사항을 나열한 것으로 4가지 외 보안요구 사항을 포함하여 보안요구사항의 총 개수로 복잡도 수준을 측정할 수 있습니다.

[보안성 수준]
구분 난이도 수준 계수
보안성 암호화, 웹취약점 점검, 시큐어코딩, 개인정보보호 등 1가지 보안 요구사항이 포함되어 있다. 0.97
2가지 보안 요구사항이 포함되어 있다. 1.00
3가지 보안 요구사항이 포함되어 있다. 1.03
4가지 보안 요구사항이 포함되어 있다. 1.06
5가지이상의 보안 요구사항이 포함되어 있다. 1.08

 

) 보정 후 개발원가 : 규모, 연계복잡성 수준, 성능요구 수준, 운영환경 호환성, 보안성 수준의 5가지 보정계수가 각각 산정되면, 보정전 개발원가에 보정계수 값을 모두 곱하여 보정후 개발원가를 산정합니다. 정후 개발원가의 산정식은 다음과 같습니다.

[보정 후 개발원가]
보정전 개발원가 × 규모 보정계수 × 연계복잡성수준 보정계수 × 성능요구수준 보정계수 × 운영환경 호환성 보정계수 × 보안성수준 보정계수

 

) 이윤 : 국가를 당사자로 하는 계약에 관한 법률 시행규칙 제8조 제22호에서는 제조·구매(소프트웨어진흥법46조제1항에 따라 소프트웨어 개발을 포함한다)의 이윤율은 100분의 25를 초과하지 못한다라고 규정하고 있습니다. 따라서, 개발원가의25%를 초과하지 않는 범위에서 이윤을 계상합니다.

 

) 직접경비 : 직접경비는 해당 소프트웨어 개발사업에 소요되는 직접적인 경비를 의미합니다. (추후 증빙 제출 필요)

발주자의 요구에 의한 특정기술 도입과 관련된 전문가 비용

당해 소프트웨어사업에 직접 필요한 여비

제출문서의 인쇄, 청사진비