Function Point 절차 및 규칙 상세 2-1
태그 :
- 개념
- 기능점수 분석 개요(Function Point(FP) - 기능점수 분석은 사용자 관점에서 소프트웨어 개발 규모를 측정하기 위한 표준 기법으로, 논리적 설계에 기초하여 사용자에게 제공되는 소프트웨어 기능들을 정량적으로 측정한다. 기능점수 분석의 목적은 사용자가 요구하여 제공받는 기능들을 구현 기술과 무관하게 측정하는 것이다.
- 기능점수 측정 개요
기능점수 분석 개요
기능점수 분석은 사용자 관점에서 소프트웨어 개발 규모를 측정하기 위한 표준 기법으로, 논리적 설계에 기초하여 사용자에게 제공되는 소프트웨어 기능들을 정량적으로 측정한다. 기능점수 분석의 목적은 사용자가 요구하여 제공받는 기능들을 구현 기술과 무관하게 측정하는 것이다.
기능점수 분석의 목적 사용자가 요구하여 제공 받는 기능들을 측정한다. 구현 기술과는 무관하게 소프트웨어 개발 및 유지보수 규모를 측정한다.
|
기능점수 분석의 이점은 조직에서 여러 가지 용도로 사용할 수 있다는 것이다. 기능점수 분석이 사용될 수 있는 용도로 다음을 들 수 있다.
패키지의 모든 기능을 측정하여 구매 어플리케이션 패키지의 규모를 결정하는 도구
사용자 요구를 만족시키는 특정 기능을 측정하여 어플리케이션 패키지가 사용자조직에 유익한지를 결정하는 도구
품질과 생산성 분석을 돕기 위해 소프트웨어 제품 단위를 측정하는 도구소프트웨어 개발 및 유지보수에 필요한 비용과 자원을 측정하기 위한 도구
소프트웨어 비교를 위한 정규화 요소
위의 기능점수 분석에 사용될 수 있는 용도 이외에도 IFPUG에서는 기능점수 분석의 이점에 관한 추가정보를 제공하고 있다.
기능점수 분석이 사용자 관점에서 소프트웨어 개발 규모를 측정하기 위한 기법이므로, 프로젝트나 어플리케이션에 대한 기능적 요구 정의에 있어서 사용자의 관점이 무엇인지 살펴볼 필요가 있다. 사용자 관점이란 사용자의 업무적 요구를 사용자의 용어를 사용하여 공식적으로 기술한 것을 의미한다. 기능점수 측정은 사용자와 개발자 모두에게 공통되는 언어로 기술된 정보를 사용해야 한다.
사용자 관점
|
기능점수를 측정하기 전에 어플리케이션 생명주기의 단계와 추정 또는 측정 여부를 결정하고, 모든 가정사항을 문서화 해야 한다. 추정을 통한 기능점수 분석은 알려지지 않은 기능과 그 기능의 복잡도에 대한 가정을 해야 하고, 측정을 통한 기능점수 분석은 모든 기능과 복잡도를 식별해야 한다. 프로젝트 초기 제안서만 존재하는 단계에서는 규모 추정은 가능하나, 규모 측정은 불가능하다.
생명주기 단계 |
규모 추정 가능 여부 |
규모 측정 가능 여부 |
제안 |
○ |
X |
요구분석 |
○ |
○ |
설계 |
○ |
○ |
구축 |
○ |
○ |
인도 |
○ |
○ |
하자 유지보수 |
○ |
○ |
기능점수 측정 절차
그림1. 기능점수 측정 절차
기능점수 측정의 상위 절차는 다음과 같은 7단계로 이루어진다.
1단계 : 측정 유형 결정
2단계 : 측정 범위와 어플리케이션 경계 식별
3단계 : 데이터 기능 측정
4단계 : 트랜잭션 기능 측정
5단계 : 미조정 기능점수 결정
6단계 : 조정인자 결정
7단계 : 조정 기능점수 측정
기능점수 측정의 첫 단계는 기능점수 측정 유형을 결정하는 것이다. 기능점수 측정은 프로젝트나 어플리케이션에 관련이 있고, 3가지 유형이 있다. 2단계에서는 측정 범위와 어플리케이션의 경계를 식별한다. 측정 범위는 특정한 기능점수 측정에 포함될 기능을 정의하고, 어플리케이션 경계는 측정 대상 소프트웨어와 사용자간의 경계선을 나타낸다. 3단계부터는 본격적인 측정이 이루어지는 단계로 3,4 단계에서는 데이터와 트랜잭션에 대한 기능 측정이 이루어진다. 데이터와 트랜잭션 기능에 대한 측정이 이루어지고 나면, 5단계에서 해당 프로젝트나 어플리케이션에 대한 미조정 기능점수가 계산되어 나오게 된다. 미조정 기능점수는 조정인자에 의해 조정되어 조정기능 점수로 계산된다. 이 때 조정인자를 결정하기 위한 단계가 6단계에서 이루어진다. 조정인자는 어플리케이션 사용자에게 제공되는 일반적 기능을 지칭하는 것으로, 어플리케이션의 일반 기능을 평가하는 14개의 일반 시스템 특성(GSC)으로 구성되어 있다. 각각의 영향도의 합을 이용하여 조정인자가 결정된다. 7단계에서는 각 측정 유형별로 존재하는 고유한 공식을 사용하여 조정 기능점수를 계산한다.
기능점수 측정의 각 단계에 대한 자세한 설명은 다음 장부터 계속된다.
II. 측정 유형 결정
측정 유형 |
설명 |
개발 프로젝트 |
|
개선 프로젝트 |
|
어플리케이션 |
|
기능점수 측정 유형을 결정하기 위해서는 각 측정 유형의 정의에 맞게 해당 유형을 결정한다.
III. 측정 범위와 어플리케이션 경계 식별측정 목적 수립측정 범위 식별어플리케이션 경계 식별문서화
측정 범위의 특성
- 규모측정 대상 소프트웨어의 집합을 정의한다.
- 기능점수 측정을 수행하려는 목적에 의해 결정된다
- 기능점수 측정 목적에 따른 해답을 얻는데 필요한 기능을 식별한다.
- 하나 이상의 어플리케이션이 포함될 수 있다.
측정 범위의 특성을 고려하면 기능점수 측정의 3가지 유형에 대한 기능점수 측정 범위를 다음과 같이 정의할 수 있다.
기능점수 측정 유형 |
측정 범위 |
개발 프로젝트 |
프로젝트 활동들에 의해 영향을 받는 모든 기능들(구축되거나 커스터마이즈 되는)을 포함한다. |
개선 프로젝트 |
추가, 수정, 삭제되는 모든 기능을 포함하나, 영향을 받는 어플리케이션의 경계는 변하지 않는다. 하지만, 어플리케이션의 기능은 추가, 수정, 삭제된 기능들의 영향을 반영한다. |
어플리케이션 |
목적에 따라 사용자가 사용하는 기능만을 포함할 수도 있고, 사용자에게 인도된 모든 기능을 포함할 수도 있다. 이 두 가지 측정 유형은 어플리케이션 경계는 동일하나, 측정 범위는 서로 다르다. |
어플리케이션 경계 식별
어플리케이션 경계란 측정 대상 소프트웨어와 사용자 간의 경계로서 어플리케이션의 내/외부를 구분하고, 어플리케이션에 의해 유지보수 되는 ILF를 구분하고, EIF를 식별하는데 도움을 준다. 어플리케이션 경계는 구현 기술과는 관계없이 식별된다.
어플리케이션 경계의 정의
|
어플리케이션 경계의 설정은 기능점수 측정 결과에 영향을 미치므로 매우 중요하다. 어플리케이션의 경계는 사용자 관점에 의해 결정되는 것으로 그 초점은 사용자가 무엇을 이해하고 기술하느냐에 달려 있다. 또한, 사용자 관점에서 보는 기능영역에 기초하는 것이지 기술적 고려사항에 의해 결정되지 않는다. 그리고, 어플리케이션에 대해 이미 설정된 최초의 경계선은 측정 범위에 의해 영향을 받지 않는다.
경계 설정 규칙
|
문서화
측정 목적이 수립되고, 측정 범위가 결정되고, 어플리케이션 경계 설정이 모두 이루어진 뒤에는 그 내용에 해당하는 다음 항목들이 문서화 되어야 한다.
1. 측정 목적
2. 측정 범위
3. 어플리케이션 경계
4. 위와 관련된 모든 가정사항
IV. 데이터 기능 측정데이터 기능 유형 식별복잡도 및 기여도 결정
데이터 기능은 사용자의 내, 외부 데이터 요구사항을 충족시키기 위해 제공되는 기능으로, 내부논리파일(ILF: Internal Logical File)과 외부연계파일(EIF: External Interface File) 두 가지 유형으로 정의된다. 여기서 파일은 논리적으로 관련된 데이터 그룹을 의미한다.
데이터 기능의 측정은 다음의 두 단계의 절차에 따라 이루어진다. 첫 번째 데이터 기능 유형 식별 단계에서는 ILF와 EIF를 식별하고, 두 번째 단계에서는 데이터 기능으로 식별된 ILF와 EIF 각각에 대하여 복잡도를 결정하고 기여도를 계산한다.
① 데이터 기능 유형 식별
② 복잡도 및 기여도 결정
관련용어정의
|
데이터 기능 유형 식별
데이터 기능의 유형은 내부논리파일(ILF: Internal Logical File)과 외부연계파일(EIF: External Interface File) 두 가지가 있다.
내부논리파일은 사용자가 식별할 수 있는 논리적으로 연관된 데이터 그룹 또는 제어정보로 어플리케이션 경계 내부에서 유지되고, 그 주요 의도는 측정 대상 어플리케이션에서 하나이상의 단위 프로세스를 통하여 유지되는 데이터를 보관하는데 있다.
외부연계파일은 사용자가 식별할 수 있는 논리적으로 연관된 데이터 그룹 또는 제어정보로 다른 어플리케이션 경계 내부에서 유지 되고 측정 대상 어플리케이션이 참조한다. 그 주요 의도는 측정 대상 어플리케이션 경계 내부에서 하나 이상의 단위 프로세스를 통하여 참조된 데이터를 보관하는데 있다.
|
내부논리파일(ILF) |
외부연계파일(EIF) |
정의 |
사용자가 식별할 수 있는 논리적으로 연관된 데이터 그룹 또는 제어정보로 어플리케이션 경계 내부에서 유지된다. |
사용자가 식별할 수 있는 논리적으로 연관된 데이터 그룹 또는 제어정보로 다른 어플리케이션의 경계 내부에서 유지되고 측정 대상 어플리케이션이 참조한다. |
주요의도 |
측정 대상 어플리케이션의 하나 또는 그 이상의 단위 프로세스를 통하여 유지되는 데이터를 보관하는데 있다. |
측정 대상 어플리케이션 경계 내의 하나 또는 그 이상의 단위 프로세스를 통하여 참조된 데이터를 보관하는데 있다.(EIF로 측정된 것은 반드시 다른 어플리케이션의 ILF여야 함.) |
내부논리파일과 외부연계파일의 차이점은 내부논리파일이 측정 대상 어플리케이션 경계 내에서 유지되나, 외부연계파일은 그렇지 않다는 것이다.
데이터 기능 유형 식별을 위해서는 각각의 데이터 기능 유형의 정의에 맞도록 식별 규칙에 따라서 데이터 기능 유형을 식별해야 한다. 데이터 기능 유형의 식별을 위하여 따라야 할 규칙은 다음과 같다.
유형 |
식별규칙 |
내부논리파일(ILF) |
|
외부연계파일(EIF) |
|
내부논리파일(ILF)에 대한 몇몇 사례를 살펴보자. 이들은 단지 예에 불과하다. 내부논리파일로 측정되기 위해서는 위에 기술된 정의와 식별규칙을 따라야 한다.
- 사원정보, 제품정보, 급여정보, 거래자료, 판매실적자료, 고객정보 등의 어플리케이션 트랜잭션 자료
- 어플리케이션 내에서 유지보수 되는 도움말 자료
- 어플리케이션 내에서 유지보수 되는 에러/확인 메시지 자료
- 임시파일
- 동일 파일의 복사본
- 감사의 목적으로 유지되는 자료
- 정렬 파일
- 인덱스 파일
- 백업 및 복구 목적의 백업 자료
- 유지보수 되지 않는 미결파일
외부연계파일(EIF)에 대한 사례를 살펴보자. 다음은 EIF로 산정되는 사례들이다.
- 다른 어플리케이션에서 참조한 자료
- 어플리케이션 밖에서 유지보수 되는 도움말 자료
- 어플리케이션 밖에서 유지보수 되는 에러/확인 메시지 자료
EIF식별에서도 자주 일어나는 실수들이 있다. 아래의 사례들은 EIF로 식별되지 않아야 하는 것들이다.
- 다른 어플리케이션에서 받는 자료이지만, 측정 대상 어플리케이션 내의 ILF를 유지보수 하는 자료
- 임시파일
- 동일 파일의 복사본
- 감사 목적의 자료
- 정렬 파일
복잡도 및 기여도 결정
데이터 기능 유형 식별 단계에서 식별된 내부논리파일(ILF)과 외부연계파일(EIF)의 수 그리고, 이들의 기능 복잡도에 따라 미조정 기능 점수에 대한 기여도가 결정된다. 이들 기능 복잡도는 데이터 요소 유형(DET: Data Element Type)과 레코드 요소 유형(RET: Record Element Type)의 수에 따라 결정된다.
데이터 요소 유형(DET)은 사용자가 식별 가능하고 반복되지 않는 유일한 필드를 말한다. 레코드 요소 유형(RET)은 ILF나 EIF안에서 사용자가 식별 가능한 데이터 요소의 서브그룹을 의미한다. 데이터 요소의 서브그룹으로는 선택적 서브그룹과 필수적 서브그룹의 두 가지 유형이 있다. 선택적 서브그룹은 사용자가 데이터의 인스턴스를 추가하거나 생성하는 단위 프로세스에서 사용할 수도 있고 사용하지 않을 수도 있는 서브그룹을 말한다. 필수적 서브그룹은 사용자가 적어도 하나 이상을 사용해야 하는 서브그룹을 말한다.
DET |
사용자가 식별 가능하고 비반복적인 유일한 필드 |
RET |
ILF나 EIF안에서 사용자가 식별 가능한 데이터 요소의 서브그룹 |
DET와 RET는 아래의 규칙에 따라 식별된다.
|
식별규칙 |
DET |
|
RET |
|
DET와 RET의 수가 위의 규칙에 따라 측정되면, 각각의 ILF와 EIF에 대한 복잡도를 결정한다. 복잡도가 평가되면 복잡도의 정도에 따라 미조정 기능점수로 변환할 수 있다. 복잡도 평가 및 미조정 기능점수 변환은 각각 표1. 복잡도 평가표와 표2. 미조정 기능점수 변환표를 이용한다.
ILF/EIF |
1~19 DET |
20~50 DET |
51이상 DET |
1 RET |
낮음 |
낮음 |
보통 |
2~5 RET |
낮음 |
보통 |
높음 |
6이상 RET |
보통 |
높음 |
높음 |
EI |
1~4 DET |
5~15 DET |
16이상 DET |
0~1 FTR |
낮음 |
낮음 |
보통 |
2 FTR |
낮음 |
보통 |
높음 |
3이상 FTR |
보통 |
높음 |
높음 |
EO/EQ |
1~5 DET |
6~19 DET |
20이상 DET |
0~1 FTR |
낮음 |
낮음 |
보통 |
2~3 FTR |
낮음 |
보통 |
높음 |
3이상 FTR |
보통 |
높음 |
높음 |
표1. 복잡도 평가표
기능 유형 |
낮음 |
보통 |
높음 |
ILF |
7 |
10 |
15 |
EIF |
5 |
7 |
10 |
EI |
3 |
4 |
6 |
EO |
4 |
5 |
7 |
EQ |
3 |
4 |
6 |
표2. 미조정 기능점수 변환표
주의해야 할 DET측정의 사례를 살펴보자.
- 여러 입력 필드에 저장되어 있지만 하나의 의미를 갖는 주소 또는 계좌번호 등은 1개의 DET
- 주키나 외부키로 2번 이상 나타나는 키 값은 1개의 DET
- 월별 자료를 보관하는 파일에서는 해당 월을 나타내는 필드를 1개, 월별 자료값을 보관하는 필드를 1개로 측정해서 2개의 DET
- 사원정보가 인사관리 어플리케이션에서도 유지되고, 보험 어플리케이션에서도 유지된다. 인사관리 어플리케이션에서는 사번, 이름, 주소 , 직책, 급여를 유지하고, 보험 어플리케이션에서는 급여만을 유지할 경우 인사관리 어플리케이션에서 사원정보 ILF의 DET는 5개이고, 보험 어플리케이션의 사원정보 ILF의 DET는 1개
- 감사의 목적으로 유지되는 이전과 이후 2개의 이미지는 2개의 DET
주의해야 할 RET측정의 사례를 살펴보자.
- 상품정보를 추가하기 위해서 상품과 상품설명을 함께 입력해야 하는 경우, 상품과 상품설명이 물리적으로 각각의 테이블에 존재하더라도 이들은 같이 유지되므로 하나의 ILF로 보고, 상품과 상품설명을 2개의 RET로 측정
V. 트랜잭션 기능 측정단위 프로세스 식별단위 프로세스의 트랜잭션 유형 식별트랜잭션의 복잡도 및 기여도 결정
관련용어정의
|
단위 프로세스 식별
단위 프로세스 식별이라 함은 해당 활동이 하나의 단위 프로세스로 식별될 수 있는지 여부를 판단하는 것으로, 단위 프로세스로 식별되어야 트랜잭션 기능 유형으로 구분될 수 있다. 단위 프로세스를 식별하기 위해서 어플리케이션에서 일어나는 사용자 활동을 살펴보고, 다음 식별 규칙을 만족시켜야 단위 프로세스로 식별된다.
단위 프로세스 식별 규칙 |
|
단위 프로세스로 식별된 후에 해당 단위 프로세스를 트랜잭션 유형으로 구분하게 된다.
단위 프로세스 식별의 사례를 들어보자.
- 어플리케이션에 신입사원 정보를 입력한다고 하자. 신입사원 정보에는 사원기본정보(사번, 이름, 직무, 주소, 부서)와 함께 부양가족, 급여정보가 포함되어야 한다. 이 때 사원기본정보와 부양가족, 급여정보가 모두 입력되는 것이 하나의 단위 프로세스로 식별된다.
- 고객에게 판매 영수증을 인쇄 출력하는 경우, ‘거래정보’ ILF의 ‘영수증 출력’을 출력으로 표시한다. 이 경우 영수증을 인쇄 출력하고 ‘영수증 출력’을 출력으로 표시하는 것은 하나의 단위 프로세스이다.
- 사원개인정보 입력과 함께 반드시 입력되어야 하는 인터뷰정보와 같이 2개의 입력 프로세스가 항상 순차적이고 종속적이라면, 하나의 단위 프로세스로 식별된다.
단위 프로세스의 트랜잭션 유형 식별
트랜잭션 기능은 어플리케이션이 데이터를 처리하여 사용자에게 제공하는 기능을 나타내는 것으로, 그 유형은 외부입력(EI), 외부출력(EO), 외부조회(EQ) 세 가지로 구분된다.
외부 입력(EI)은 어플리케이션 경계 밖에서 들어오는 데이터나 제어정보를 처리하는 단위 프로세스로, 주요 의도는 하나 이상의 ILF를 유지하거나 시스템의 동작을 변경시키는 것이다.
외부 출력(EO)은 데이터나 제어정보를 어플리케이션 경계 밖으로 보내는 단위 프로세스로, 주요 의도는 데이터나 제어정보의 검색은 물로 처리 로직을 통해 사용자에게 정보를 제공하는 것이다. 처리 로직은 적어도 하나의 수학 공식, 계산 또는 파생 데이터를 포함하거나, 하나 이상의 ILF를 유지하거나, 시스템 동작을 변경시켜야 한다.
외부 조회(EQ)는 데이터나 제어정보를 어플리케이션 경계 밖으로 보내는 단위 프로세스로, 주요 의도는 ILF나 EIF로부터 데이터나 제어정보를 검색하여 사용자에게 정보를 제공하는 것이다. 처리 로직은 수학 공식이나 계산을 포함하지 않으며, 파생 데이터도 생성하지 않아야 하고, 처리될 동안 ILF를 유지하지 않으며, 시스템 동작도 변경시키지 않는다.
|
외부입력(EI) |
외부출력(EO) |
외부조회(EQ) |
정의 |
어플리케이션 경계 밖에서 들어오는 데이터나 제어정보를 처리하는 단위 프로세스 |
데이터나 제어정보를 어플리케이션 경계 밖으로 보내는 단위 프로세스 |
데이터나 제어정보를 어플리케이션 경계 밖으로 보내는 단위 프로세스 |
주요의도 |
하나 이상의 ILF를 유지하거나 시스템의 동작을 변경하는 것 |
데이터나 제어정보를 검색하여 사용자에게 정보를 제공하는 것 |
데이터나 제어정보를 검색하여 사용자에게 정보를 제공하는 것 |
단위 프로세스의 트랜잭션 유형을 식별하기 위해서 우선 단위 프로세스가 사용자에게 제공하고자 하는 기능의 주요의도를 파악하여 단위 프로세스 유형을 두 가지로 구분한다. 하나 이상의 ILF를 유지하거나 시스템의 동작을 변경하려는 주요의도라면 EI로 구분하고, 사용자에게 정보를 제공하려는 주요의도라면 EO나 EQ로 유형을 구분한다. 그리고 난 후, 최종적으로 EI, EO,EQ의 식별을 위해서는 각 유형의 식별규칙 사용하여 기능 유형을 결정한다.
다음은 각 트랜잭션 기능의 유형을 식별하기 위해 사용되는 외부입력, 외부출력, 외부조회의 식별 규칙이다.
유형 |
식별규칙 |
외부입력(EI) |
|
외부출력(EO) |
|
외부조회(EQ) |
|
단위 프로세스의 트랜잭션 유형이 EI로 식별되는 사례를 살펴보자.
- 사원정보, 직무할당, 판매, 이체, 보험등록 등과 같이 ILF를 유지보수하기 위해 사용되는 트랜잭션 자료들
- 구 어플리케이션에서 신 어플리케이션으로 정보를 이전하는 기능
- 주문상품을 입력하고 수량을 입력하면 주문정보가 저장되기 전에 화면에 총 금액이 계산되면서 보여지는 경우, 주요 의도는 주문정보 ILF를 유지하는 것이므로 EI로 식별
단위 프로세스의 트랜잭션 유형이 EO로 식별되는 사례를 살펴보자.
- 계산되어지는 필드를 포함하고 있는 보고서 출력
- 파생 데이터를 포함하고 있는 온라인 조회 및 출력
- 부하사원이 할당된 모든 휴가를 사용했을 때, 사원의 휴가 사용 일수에 대한 통지가 자동으로 이루어지는 경우 수학공식이나 측정을 포함하고 있는 통지 메시지
- 매월 말일이 되면 어플리케이션이 자동으로 총 판매액이 계산되는 판매실적보고서를 출력하는 경우
- ‘거래정보’ ILF의 ‘영수증 출력’을 출력으로 갱신하면서, 고객에게 판매 영수증을 인쇄 출력하는 경우
- 한 어플리케이션에서 다른 어플리케이션으로 계산된 필드를 포함한 정보파일을 보내는 경우
단위 프로세스의 트랜잭션 유형이 EQ로 식별되는 사례를 살펴보자.
- 인사시스템의 부양가족 정보가 보험시스템으로 보내지는 것과 같이 다른 어플리케이션으로 수학공식이나 측정, ILF유지,파생데이터 생성의 처리 로직 없이 보내는 트랜잭션
- 인사시스템의 사원 정보를 조회하고, 보고하는 기능
- 입력 화면에서 입력을 돕기 위해 보여지는 드롭다운리스트 (단, 하드코딩 된 드롭다운리스트는 EQ로 식별되지 않는다.)
- 별도의 어플리케이션에 의해 유지되는 필드 도움말, 화면 도움말. 각 도움말은 어플리케이션 당 1번 측정
- 매월 말일이 되면 어플리케이션이 자동으로 총 계산되는 필드 없이 판매실적보고서를 출력하는 경우
- 한 어플리케이션에서 다른 어플리케이션으로 계산된 필드 없이 정보파일을 보내는 경우
단위 프로세스의 트랜잭션 유형으로 식별되지 않도록 주의가 필요한 사례를 살펴보자.
- 메뉴
- 하드코딩 된 드롭다운리스트
복잡도 및 기여도 결정
앞의 트랜잭션 유형 식별 단계에서 식별된 EI, EO와 EQ의 수와 이들의 기능 복잡도에 따라 미조정 기능 점수에 대한 기여도가 결정된다. 이들 기능 복잡도는 참조 파일 유형(FTR: File Type Reference)과 데이터 요소 유형(DET: Data Element Type)의 수에 따라 결정된다.
데이터 요소 유형(DET)은 사용자가 식별 가능하고 반복되지 않는 유일한 필드이다. 참조 파일 유형(FTR)은 트랜잭션 기능에 의해 읽히거나 유지되는 내부논리파일(ILF) 또는 트랜잭션 기능에 의해 읽히는 외부참조파일(EIF)이다.
DET |
|
FTR |
|
EI, EO, EQ의 복잡도를 결정하기 위해 필요한 DET와 FTR의 수를 측정하기 위해서 DET와 FTR은 아래의 규칙에 따라 식별되어야 한다.
|
식별규칙 |
DET |
|
FTR |
|
|
식별규칙 |
DET |
|
FTR |
|
DET와 FTR의 수가 위의 규칙에 따라 측정되면, 각각의 ILF와 EIF에 대한 복잡도를 결정한다. 복잡도가 평가되면 복잡도의 정도에 따라 미조정 기능점수로 변환할 수 있다. 복잡도 평가 및 미조정 기능점수 변환은 각각 표1. 복잡도 평가표와 표2. 미조정 기능점수 변환표를 이용한다.
ILF/EIF |
1~19 DET |
20~50 DET |
51이상 DET |
1 RET |
낮음 |
낮음 |
보통 |
2~5 RET |
낮음 |
보통 |
높음 |
6이상 RET |
보통 |
높음 |
높음 |
EI |
1~4 DET |
5~15 DET |
16이상 DET |
0~1 FTR |
낮음 |
낮음 |
보통 |
2 FTR |
낮음 |
보통 |
높음 |
3이상 FTR |
보통 |
높음 |
높음 |
EO/EQ |
1~5 DET |
6~19 DET |
20이상 DET |
0~1 FTR |
낮음 |
낮음 |
보통 |
2~3 FTR |
낮음 |
보통 |
높음 |
4이상 FTR |
보통 |
높음 |
높음 |
표1. 복잡도 평가표
기능 유형 |
낮음 |
보통 |
높음 |
ILF |
7 |
10 |
15 |
EIF |
5 |
7 |
10 |
EI |
3 |
4 |
6 |
EO |
4 |
5 |
7 |
EQ |
3 |
4 |
6 |
표2. 미조정 기능점수 변환표
트랜잭션 기능의 복잡도를 측정하는데 주의가 필요한 사례들을 살펴보자.
- ‘거래정보’ ILF의 ‘영수증 출력’을 출력으로 갱신하면서, 고객에게 판매 영수증을 인쇄 출력하는 경우, ‘영수증 출력’ 필드는 어플리케이션 경계를 넘지 않았으므로 DET로 측정하지 않는다.
- 고객정보가 이미 존재하는 고객이 고객정보를 입력하려고 할 경우, 시스템은 에러메시지를 표시한다. 이 경우 에러메시지는 하나의 DET로 측정한다.
- 사용자가 프로세스를 기동 시키기 위한 방법으로 엔터키를 누를 수도 있고, Function 키를 누를 수도 있고, 화면의 버튼을 클릭할 수 도 있는 경우 이들은 동일한 기능을 수행하기 때문에 하나의 DET로 측정한다.
- 날짜의 년,월,일이 물리적으로 여러 필드에 저장되어도 사용자가 단일 정보로 인식한다면 하나의 DET로 측정한다.
- 그래프는 범주 레이블과 수치에 상응하는 그래픽을 고려하여 2개의 DET로 측정한다. 범주가 2개로 나뉘어지는 그래프라면 수치에 상응하는 그래픽과 함께 3개의 DET로 측정한다.
- 보고서 출력 시 나타나는 보고서 제목 등은 문자상수로서 DET로 측정하지 않는다.
- 보고서 출력 등에서 보이는 페이지 수나 시스템 시간 등은 DET로 측정하지 않는다.