펑션 포인트
펑션포인트
사양을 베이스로해서 계산방식이나 프로그래밍 언어에 의존하지않고 개발대상이 되는 시스템의 기능의 규모를 FP라는 단위로 계측하는 것 풀버전은 어렵지만 계산에 1~2시간 정도밖에 안걸리는 간이판도 존재하는데 이를 간이판의 이름을 FP시산법이라함 —
FP에서의 기능
데이터 구조에서 규모 예측을 함. 즉 기능의 규모는 데이터 요소( 파일수나 데이터의 요소수) 에서 측정 가능.
→ 대상 개발의 시스템이 사용하는 파일이나 DB의 종류가 많으면 개발 규모가 커짐이 기본
FP에서는 개발 대상이 되는 정보처리 시스템의 기능은 플랫폼이나 실현 방법이 바뀌어도 바뀌지않는 것이라는 관점을 갖고있음.
하지만 기능이라는 것은 변화하지않아도 실한하기 위해서 내부 사양, 공법, 품질요구가 변화하면 개발 공수, 개발기간, 코스트가 변해버림.
또한 경험이나 스킬의 차에따라서도 큰 차이가 발생함
FP는 이 불변의 기능을 계측하는 것을 목적으로함
—
FP의 장점과 단점 (SLOC과 비교)
장점
- 측정 방법이 확실하게 수순화 되어있음
- 평가자에 따른 편차가 적다
- FP에서 SLOC에 변환이 가능
단점
- 자동계산 툴이 없고 직접 계산하지않으면 안됨
- 내부 로직은 고려되지않음
FP 종류
IFPUG법
보통 FP라하면 이 풀 바리데이션을 나타냄 어렵다는 인상이 강함 소프트웨어의 개발 페이즈의 비교적 뒤, 외부 설계 단계에서 적용됨
FP개산법
IFPUG법의 간이판, 작성에 조금 시간이 걸림 적용 가능한 시기는 IFPUG보다 상류, 요건 사양정의, 설계 페이즈 이후
FP시산법
개발 대상시스템이 어떤 파일이나 데이터베이스를 사용하는가 만을 생각해서 FP를 예측하기 때문에 복잡한 기초지식이 불필요하고 계산도 1~2시간 있으면 가능 가장 간략화된 FP법, 요건정의 페이즈에서도 적용이 가능함 정확도는 IFPUG > FP개산법 > FP시산법 순, 용이도는 역순
FP개산법 개요
다음과 같은 수순을 취함 펑션은 FP법에 기초해서 추출한 기능을 의미
데이터 펑션(DF) 추출
데이터 펑션의 FP는 엔티티 및 파일을 바탕으로 산출됨.
FP법에서는 '유저가 인식하고 있는 시스템의 구성요소로 데이터를 보관하는 기능을 만드는 것'이되며
대상기능이 액세스하는 엔티티, 설정파일이나 로그파일이 해당함. 다만 유저 시점에서 보고 인식가능하기 때문에
프로그램 내부에서 사용하는 워크 테이블이나 워크 파일, 로그에는 해당하지않음
- ILF (Internal Logical File): 내부 논리 파일
대상기능(경계내)에서 유지관리(등록, 변경, 삭제) 하는 파일
- EIF(External Interface File): 외부 I/F 파일
대상기능(경계내)에서 참조되기만하는 파일 (유지관리는 경계내)
트랜잭션(TF) 추출
트랜젝션 펑션의 FP는 처리 요소를 바탕으로 산출됨.
처리요소로는 '유저에게 있어서 의미있는 최소 작업'이 되어 DFD(데이터 흐름도)에서의 최하층 프로세스를 대상으로 하는것이 일반적
처리요소
- EI(External Input: 외부입력) 외부기능(환경외)에서 입력、ILF가 유지관리됨
화면이나 다른 어플리케이션등에서의 데이터 입력에 따라 DF를 갱신하는 처리
배치등에 따른 데이터 갱신 처리도 여기에 포함됨
- EO(External Output: 외부출력) 외부기능에 데이터가 출력되는것 ※데이터 가공있음
화면, 장표 등 다른 어플리케이션 에 데이터를 출력하는 처리
다만 출력 데이터에 계산 이나 도출하는 데이터(합계치, 평균값등 가공데이터)가 포함됨
- EQ(External inQuiry: 외부조회) 외부기능에 데이터가 출력되는것 ※데이터 가공없음
ILF를 갱신하지 않고 화면 장표나 다른 어플리케이션에 데이터를 출력하는 처리
다만, 출력 데이터에 계산이나 도출하는 데이터(합계치, 평균값등 가공데이터)가 포함되지않을것
각 펑션의 복잡도판정을 채점
1. DF의 복잡도의 판정과 점수화
DF에 관해서는 ILF/EIF를 바탕으로 하여 다음과 같은 판정과 점수화를 하는 것으로 FP를 산출
- DET(Data Element Type: 데이터 항목수)
유저 인식가능한 데이터 항목수를 카운트함. RDB의 경우는 컬럼 수를 카운트
반복하는 항목에 대해서는 하나의 항목으로서 카운트
설계상 이유로 분할한 항목은 1개의 항목으로 카운트
- RET(Record Element Type: 레코드 종류수)
→ 1개의 파일안에 다른 레코드, 포맷이 혼재하고 있는 경우 그 레코드, 포맷의 종류를 센다
같은 1개의 DF내에서 서로 의미가 다른 데이터의 덩어리가 혼재된 경우 그 종류 수를 카운트
(예시) 고객 마스터에 개인과 법인이라는 의미가 다른 2개의 데이터가 혼재된경우 레코드 종류가 2
2. TF의 복잡도의 판정과 점수화
TF에 관해서는 EI/EO/EQ를 바탕으로 하여 다음과 같은 판정과 점수화를 하는 것으로 FP를 산출
- DET(Data Element Type: 데이터 항목수)
AP경계를 출입하는 데이터 항목수를 카운트
실행하는 계기(실행버튼)은 합쳐서 1개로 카운트
에러나 확인 메세지도 합쳐서 하나로 계산
! DET는 DF의 복잡도 판정에서도 등장했지만 TF에서는 다른 의미이기에 주의 필요
유저가 인식가능한 데이터 항목수와 프로세스를 기동하기 위한 트리거
- FTR(File Type Reference: 관련 파일수)
TF가 처리를 실행할때 데이터를 참조 갱신하는 DF의 개수
다음 2개의 조건중에 해당하는 어느쪽에 해당하는 것이 됨
→ 트랜잭셔널펑션이 추가, 조회, 갱신, 삭제를 하는 ILF
→ 트랜잭셔널펑션이 참도를 하는 EIF
조정계수 및 조정 완료 FP계산, 공수의 산출
1. 조정계수의 산출
3에서 계산한 FP를 미조정FP라 칭함
미조정FP를 65~135% 범위에서 조정하고 조정완료 FP를 산출
시스템 특성(GSC:General System Characteristics)를 0~5의 6단계로 평가
각항목을 DI(Degree of Influence),DI의 총합을 TDI(Total Degree of Influence)라함
TDI를 기준으로하여 VAF(Value Adjustment Factor)를 계산함
**VAF = ( TDI * 0.01 ) + 0.65**
2. 조정완료 FP의 산출
조정완료FP = 미조정FP * VAP(조정계수)
3. 공수 산출
1인당 소화가능한 FP, 혹은 1FP에 필요한 인월을 알면 공수 산출가능
생산성이 매우 중요하며 프로젝트의 특성이나 인원의 스킬, 분포에 의해 크게 변동
치밀한 접근을 위해 자체 조직내의 축적한 과거 프로젝트를 검증 평가하여 조직내의 지표를 확립하는것이 최선의 방법
지표확립 전에는 다음으로 잠정 계산함
> 11.15FP/ 인월 @신규개발시 400FP미만
FP시산법
ILF의 행수를 카운트
Internal Logical File: 내부 논리 파일
개발 대상 시스템 내에서 작성, 갱신, 삭제, 참조하는 파일을 내부논리파일이라 함. 시스템이 사용하는 파일 중에서 시스템 자신이 위의 처리를 하는 것을 가르킴
EIF의 행수를 카운트
External Interface File: 외부 I/F 파일
개발 대상 시스템 외의 다른 시스템이 관리하고있는 파일 중에서 개발 대상 시스템이 참조하는 파일을 외부인터페이스 파일이라고 부름. 시스템이 사용하는 파일중에서 '타 시스템이 관리하는 파일, 자신은 참조만 실시하는 것'을 가르킴. 이어서 이 외부 인터페이스 파일(DB도 포함)을 카운트
총 FP수를 계산
ILF * 35 와 EIF * 15를 계산
총 FP수를 기준으로 사용하는 프로그래밍 언어로 스텝수를 변환
소스코드 행수 = 총 FP수 * 대상이되는 프로그램 언어 1FP당 SLOC