Funtion Point 견적서는 2010년 5월부터 지경부 고시로 의무화된다.
기존에 M/M 즉, Head Count 방식은 사라지게 되는것이다.
(물론 공공기관의 이야기다. 민간기업은 ... 에효...)
아무튼 Funtion Point 즉, 기능점수 어떻게 견적을 내야하는지에 대해 Sample Xls 파일하고 같이 떠들어 보고자 한다.
1. 먼저 만들고자 하는 시스템 기능에 대해 목록화해야 한다.
기능의 정의는 다음과 같다.
먼저 데이터와 트랜젝션을 이해해야 한다.
데이터는 그야말로 시스템에 저장된 데이터이며 트랜젝션은 시스템 내외부로 세션이 왔다 갔다 하는것이다.
데이터는 EI, EO, EQ가 있으며
EI는 유저가 시스템의 데이터를 입력하는 것이다.
EO는 유저가 시스템으로 부터 데이터를 받는 것이다.
EQ는 유저가 시스템에 데이터를 입력하여 그 결과를 받는 것이다.
다시말해
EI는 일반적으로 입력, 수정, 삭제 행위이고 EO는 출력기능, EQ는 조회기능이다.
여기서 하나더 나가면 트랜젝션이라는 항목이 있고 시스템 내부라면 ILF, 외부시스템연계라면 EIF로 표현한다.
복잡하지만 쉬우니 한번 봐보도록 하자.
식별할때 유념할 사항은 UML USECASE 식별할때와 유사하니 흟어 보자.
첫째, 자기완결적이어야 한다.
둘째, 유저입장이어야 한다.

또 필요한 사전지식이 바로 지경부에서 2010년 2월 26일에 고시한 지식경제부 고시 제 2010-52호이다.
여기에는 간이 기능점수표라는 것이 포함되어 있는데 다음과 같다.
어차피 SAMPLE에 포함되어 있으니 그려러니 하자.
이제 샘플파일가지고 실습한번 해보자.
보안관련 요구사항이 7개있는데 이걸 표현하면 다음과 같다. (물론 요건이 7개라는 이야기다)
- 로그인은 "내부논리"를 읽는 것으로 "조회" 1개 밖에 없다.
즉, ILF 1개, EQ가 1개이므로 로그인의 FP=7.5X1 + 3.9X1="11.4"이다.
물론 정석으로하면 더 복잡하지만 화면 UI가 안나온 상황에서는 예측에 의한 간이법을 사용하는 것이다.
2. 이제 개발원가를 산정하자.
- 먼저 규모보정 계수를 산정하자. 목록의 총합계가 300FP를 넘는가가 관건인데 안넘는다면 0.65를 적용하고 300FP이상이라면 0.108*log e(FP)+0.2229 를 한다.
- 어플리케이션 유형에 대한 보정을 산정하자.
샘플에서는 일반적인 업무 처리용 S/W이므로 업무처리용에 100%.
합계는 반드시 100%여야 한다.
- 그리고 언어보정계수를 산정하자.
여기서는 웹을 가정하므로 보정계수 0.8에다가 100%~
- 마지막으로 품질/특성 보정계수를 입력한다.
각각의 상황에 맞는 특성을 입력하면 모든 작업이 끝난다.

이제 SAMPLE의 개발원가 산출란을 확인하면 지경부고시에 따른 분석, 설계, 구현, 시험 비용에 의거해 자동 개발원가가 산출된다.
예를 들어 분석 개발원가는 "94511*79.3*0.8*1.0*0.65*1.125"로 "4,384,412원"이다.
그래서 총합이 "23,075,885"원인것이다.
여기에 총괄표에서 보는바와 같이 최고 25%에 이윤을 붙일수 있다.
3. 직접경비를 산출하자.
직접경비는 다음으로 정의된다.
- 필요 컴퓨터 시스템 사용료
- 소프트웨어 도구 사용료
- 선투자 후정산 사업으로 추진되는 사업의 지급이자
- 발주자 요구에 의한 특정기술 도입과 관련된 전문가 비용
- 여비
- 특수자료비
- 인쇄, 청사진비
- 자료조사비
- 기자재시험비
- 위탁비와 현장 운영비 (보조요원의 급여와 현장사무질 임차료 및 운영비)
- 모형제작비
- 기타 당 소프트웨어 사업에 특별히 소요되는 직접비용 일체
여기까지 산출되고나면 최종 견적을 산정되는데
최종 견적가 = 개발원가 + 개발원가의 최대 25%까지의 이익 + 직접비용
이다.
여기서 또 Nego하겠지만...
혹시나 FP때문에 견적 못내고 계신 개발자 분들이 계신다면 참고하시기 바랍니다.
기존에 M/M 즉, Head Count 방식은 사라지게 되는것이다.
(물론 공공기관의 이야기다. 민간기업은 ... 에효...)
아무튼 Funtion Point 즉, 기능점수 어떻게 견적을 내야하는지에 대해 Sample Xls 파일하고 같이 떠들어 보고자 한다.
1. 먼저 만들고자 하는 시스템 기능에 대해 목록화해야 한다.
기능의 정의는 다음과 같다.
먼저 데이터와 트랜젝션을 이해해야 한다.
데이터는 그야말로 시스템에 저장된 데이터이며 트랜젝션은 시스템 내외부로 세션이 왔다 갔다 하는것이다.
데이터는 EI, EO, EQ가 있으며
EI는 유저가 시스템의 데이터를 입력하는 것이다.
EO는 유저가 시스템으로 부터 데이터를 받는 것이다.
EQ는 유저가 시스템에 데이터를 입력하여 그 결과를 받는 것이다.
다시말해
EI는 일반적으로 입력, 수정, 삭제 행위이고 EO는 출력기능, EQ는 조회기능이다.
여기서 하나더 나가면 트랜젝션이라는 항목이 있고 시스템 내부라면 ILF, 외부시스템연계라면 EIF로 표현한다.
복잡하지만 쉬우니 한번 봐보도록 하자.
식별할때 유념할 사항은 UML USECASE 식별할때와 유사하니 흟어 보자.
첫째, 자기완결적이어야 한다.
둘째, 유저입장이어야 한다.

또 필요한 사전지식이 바로 지경부에서 2010년 2월 26일에 고시한 지식경제부 고시 제 2010-52호이다.
여기에는 간이 기능점수표라는 것이 포함되어 있는데 다음과 같다.

이제 샘플파일가지고 실습한번 해보자.
보안관련 요구사항이 7개있는데 이걸 표현하면 다음과 같다. (물론 요건이 7개라는 이야기다)
즉, ILF 1개, EQ가 1개이므로 로그인의 FP=7.5X1 + 3.9X1="11.4"이다.
물론 정석으로하면 더 복잡하지만 화면 UI가 안나온 상황에서는 예측에 의한 간이법을 사용하는 것이다.
2. 이제 개발원가를 산정하자.
- 먼저 규모보정 계수를 산정하자. 목록의 총합계가 300FP를 넘는가가 관건인데 안넘는다면 0.65를 적용하고 300FP이상이라면 0.108*log e(FP)+0.2229 를 한다.
샘플에서는 일반적인 업무 처리용 S/W이므로 업무처리용에 100%.
- 그리고 언어보정계수를 산정하자.
여기서는 웹을 가정하므로 보정계수 0.8에다가 100%~
각각의 상황에 맞는 특성을 입력하면 모든 작업이 끝난다.
이제 SAMPLE의 개발원가 산출란을 확인하면 지경부고시에 따른 분석, 설계, 구현, 시험 비용에 의거해 자동 개발원가가 산출된다.
그래서 총합이 "23,075,885"원인것이다.
여기에 총괄표에서 보는바와 같이 최고 25%에 이윤을 붙일수 있다.
3. 직접경비를 산출하자.
직접경비는 다음으로 정의된다.
- 필요 컴퓨터 시스템 사용료
- 소프트웨어 도구 사용료
- 선투자 후정산 사업으로 추진되는 사업의 지급이자
- 발주자 요구에 의한 특정기술 도입과 관련된 전문가 비용
- 여비
- 특수자료비
- 인쇄, 청사진비
- 자료조사비
- 기자재시험비
- 위탁비와 현장 운영비 (보조요원의 급여와 현장사무질 임차료 및 운영비)
- 모형제작비
- 기타 당 소프트웨어 사업에 특별히 소요되는 직접비용 일체
여기까지 산출되고나면 최종 견적을 산정되는데
최종 견적가 = 개발원가 + 개발원가의 최대 25%까지의 이익 + 직접비용
이다.
여기서 또 Nego하겠지만...
혹시나 FP때문에 견적 못내고 계신 개발자 분들이 계신다면 참고하시기 바랍니다.






283823
237
351

2010년기준 FP SAMPLE.zip







댓글을 달아 주세요
아...FP에 대한 자세한 설명 감사합니다....드디어 M/M보다 객관적으로 책정받게 되나 싶었는데...마지막 줄에 "여기서 또 Nego하겠지만..."이 씁쓸해 지네요...^^;
-_-;; 한국의 소프트웨어를 보는 관행이 안변하는한은 끊임없는 Nego에 시달릴겁니다.
어떻게 보면 FP의 정착이야말로 개발자와 발주자 모두에게 좋은 일임에도 공공기관부터 안변하니까요..
Nego하지않는 한국은 앙코없는 찐빵이지요.
최소의 비용으로 최대의 결과를 원하는 거라고 봐야할려나??
어쨓든 방식을 바꿔나간다해도 마지막에는 Nego를 하려고 들테니...
소프트웨어 뿐만이 아니고 다른 부분도 관공서가 앞장서서 Nego화를 하는데 어쩔수 없지요.
인식이 바뀌어야 하는데 언제쯤이나.......
한숨만 나오네요..
끄떡끄떡...
개발자 입장에서는 정말 돌아 버리는 일이지요.
거기다가 아마추어 개발자들이 용돈 벌이로 개발을 싼값에 하는 바람에 소프트웨어 개발 단가 = 깍기 나름이라는 인식이 널리 퍼져 있지요.
결국
이대로 FP를 채점한다고 하면..
WEB을 기준으로 할때, 모든 사이트 맵이 다 나와야 하는군요
컨설팅이 되고 나서 메뉴를 어떻게 정할것인가 사용 기법들 까지도.
그게 나와야 대략적으로라도 돈이 책정되겠군요.
어찌 보면 개발자들쪽에선 이게 더 좋을수도 있겠네요.
기술하나하나를 세분화해서 돈을 받게 되는것이니..
근데 이 계산법..상당히 피곤할듯;;
기존에 주먹구구식으로 견적내고 고객이 해달라는거 다 해주고 그래서 일정빵꾸나고 개발자들 밤샘모드로 피로에 지쳐서 나가떨어지는 환경보다는 처음에 이렇게 정확하게 짚고 넘어가야 하지 않을까요?
그래야 정확하게 일에 대해 규모 산정을 할 수 있고 일정도 Visual하게 나와서 고객이 해달라는거를 다해주는게 아니라 하기로한것을 정확하게 더 잘할 수 있지 않을까요?
그런데요 산정방법에서.. 2.간이기능점수표 (간이법 적용) <- 이부분..
기능분류는 개정법에 나와있는건가요?
또, 기능수는 갯수를 하나로 표시해서 점수를 매기신건지? 이것도 개정법에 나온건지요?
안녕하세욥?
FP산정방법은 크게 2가지가 있습니다.
첫번째 정석법입니다.
이경우는 화면설계를 토대로 유저입장에서 각각의 기능수를 뽑아냅니다.
당연히 어렵지요...
두번째는 간이법입니다.
이경우는 기능수를 짐작으로 퉁~쳐서 입력합니다.
대신 간이기능점수표라는것으로 연산이됩니다.
간이 기능점수표는 지경부에서 매년 발표하는표에 따라 산정됩니다.
(예전에 M/M 초중고급 단가표와 같이 매년 발표되니 업데이트 해줘야 합니다.)
제대로 질문하신것을 이해하고 답변을 단것인지 모르겠습니다. -_-;;
아네~.. 그렇구나
그러면 지금 나와있는 간이기능점수표는 지경부에서 나온것이군요.. 개정법 보는데 그건 없길래..
답변 감사합니다.
아~ 지경부 소프트웨어 댓가기준...
(첨부된 파일중 하나입니다.)
에 보시면 간이법에 적용할 간이기능점수 항목이 존재합니다. ^^;;
잘 안보이니 잘 찾아야 하겠지만요 -_-;;
여쭤볼것이 있습니다...
지금 FP점수, 즉 기능점수를 산출시, 항목이 있지않습ㄴ까?
예를 들어 홈페이지는 지금 로그인, 마이페이지, 회사소개, 등 이런 페이지 별로 기능점수를 냈는데..
페이지별당의 기능들로 점수를 내는것이 개정법에 나와있는건지?..
아니면 이렇게 하는것이. 어떤..관례?상 그렇게 하는것인지 궁금합니다.
어플리케이션이라 하면 컴퓨터 시스템 내에서 실행되는 독립적인 솔루션.이라고 생각되는데...
홈페이지는 어떻게 설명을 해야할까요?
안녕하세욥?
위에도 설명을 드렸는데...
기능점수는 End User입장에서의 기능입니다.
만약 "씁쓸"님께서 Ipod를 구입했다고 가정하겠습니다.
iPod의 "씁쓸"님 입장에서 기능을 나열하명
- 전원On
- Mp3 Player 기능선택
- 곡명 선택
- 플레이
- 빠르게
- 일시중지
- 뒤로가기
- 앞으로가기
등등등 입니다.
즉, 이게 전부 기능점수에서 산정되어야할 기능들입니다.
위의 예를 다시 들어서 "전원ON"기능을 적용한다면
기능 요건은 "입력 1", "출력 1"이 되겠지요.
물론 출력을 위해서 내부 Status값을 뒤지므로 "내부논리 1"이 되겠지요?
이처럼 기능점수는 지경부에서 선정하는것이 아닌 일종의 Rule로 계산됩니다.
그래서 객관적으로 점수를 뽑을 수 있는 것이고 견적 내는 사람이나 고객이나 똑같은 결과가 나옵니다.
이게 틀어지면 엉터리가 되는 것이지요
그렇다면 저는...현재
ex) 회사소개 : 인사말, 약도, 연혁 <- 이런식으로 3개의 페이지가 있다고 가정하고
거기에 따른 기능점수를 부여 했는데 그게 맞다고 해야되는건지요?
(연혁에 조회 1, 약도에 조회 1 인사말에 조회 1 ) 이런식으로..
맞는건가요?
(답변 감사드립니다.)
켁... 너무 늦게 달아서 죄송합니다.
무지 바빴슴다.. (삐질삐질.. 변명이 궁색하여...)
HTML 페이지 3개를 씁쓸님과 같이 만들었다면 일단 데이터랑은 무관한 트랜젝션으로 봐야 합니다.
이경우 외부출력인 EO로 보아야 할것입니다.
즉, 조회가 각각 1씩이 되겠네욥 ^^;;
안녕하세요~ 좋은 정보 정말 감사드립니다.
FP 산정처음하는데 당최 모르겠네요~ 그래도 글뻥님의 글 덕분에 대충은 이해가 되었는데...
간이법으로 산정하는 Sample에 의문이 있습니다.
1. 로그인, 회원가입, 회원정보수정, 회원탈퇴, 회원정보조회는 모두 하나의 회원테이블을 통해 관리가 되는데 왜 "내부논리(ILF)"부분이 모두 각각1씩으로 산정을 하고 있는거죠? 회원테이블이 하나니깐 5개의 기능 모두 합해서 1개의 ILF만 있는거 아닌가요?
2. 만약 관리자 화면에 회원 검색기능이 있다고 하면 회원 검색은 입력인가요? 조회인가요?
2-1. 만약 회원검색이 입력이면 로그인기능도 입력이 되어야 할 것 같은데요?
2-2. 만약 회원검색이 조회이면 회원검색보기와 회원목록보기를 동일한 기능으로 봐야하나요? 분리된 기능으로 봐야하나요?
죄송하지만 답변부탁드릴게요 ㅠ.ㅠ
아~ 1개의 테이블을 컨텍하는 개념이 아니라...
1개의 트랜젝션을 카운팅 한겁니다.
다시말해 테이블이 한개라고 각각의 화면에서 트랜젝션이 몇번있었는지를 카운트 하기때문에 개별 트랜젝셕으로 인식하는 겁니다.
앗... 추가 질문이 있어서 댓글수정하는동안 1번에 대한 답변을 주셨네요~ 2번에 대한 답변도 부탁드립니다.
에구 너무너무 감사드립니다.
답변이 늦어서 죄송합니다.
어젠 하루쥥일 네트워크에 연결할 수 없었어욥.
2번의 경우는 조회Transaction으로 산정하셔야 합니다.
2-1. 로그인도 조회 Transaction입니다.
2-2. 이것도 조회 Transaction입니다.
조급 어렵지요?
원래의 원어를 보는게 더 쉽겠네요
트랜젝션은 FP에서 3가지 유형으로 봅니다.
EI, EO, EQ
즉, External Input, External Output, External Inquiry
이상 3가지입니다.
그런데 왜? SAMPLE에서는 입력, 수정, 삭제외에 출력, 조회가 있는가?
EI의 유형이 바로 입력, 수정, 삭제입니다. 데이터를 넣거나 빼는일을 합니다. EO는 출력입니다. 화면, 프린트 등등 사용자가 확인할 수 있도록 끄집어 내는 역할입니다. EQ는 외부조회입니다.
SAMPLE을 만들때 EI, EO, EQ라고 지정하면 직관적이지 못해 제가 따로 이렇게 만든 것 뿐입니다.
^^;;