함수점
Function point기능 포인트는 정보시스템(제품으로서)이 사용자에게 제공하는 비즈니스 기능성의 양을 나타내는 「측정 단위」이다. 기능 포인트는 소프트웨어의 기능적 크기 측정(FSM)을 계산하는 데 사용된다. 단일 단위의 비용(달러 또는 시간 단위)은 과거 프로젝트에서 계산한다.[1]
표준
Function Point에 기반한 소프트웨어 사이징을 위해 인정된 표준 및/또는 공개 사양이 몇 가지 있다.
1. ISO 표준
- FiSMA: ISO/IEC 29881:2010 정보 기술 – 시스템 및 소프트웨어 엔지니어링 – FiSMA 1.1 기능 크기 측정 방법.
- IFPUG: ISO/IEC 20926:2009 소프트웨어 및 시스템 엔지니어링 – 소프트웨어 측정 – IFPUG 기능 크기 측정 방법.
- Mark-II: ISO/IEC 20968:2002 소프트웨어 엔지니어링 – Ml II 기능 포인트 분석 – 카운팅 프랙티스 매뉴얼
- Nesma: ISO/IEC 24570:2018 소프트웨어 엔지니어링 – Nesma 기능 크기 측정 방법 버전 2.3 – 기능 포인트 분석 적용을 위한 정의 및 계수 지침
- 코스믹: ISO/IEC 19761:2011 소프트웨어 엔지니어링. 기능적 크기 측정 방법.
- OMG: ISO/IEC 19515:2019 정보 기술 — 객체 관리 그룹 자동화 기능 포인트(AFP), 1.0
첫 번째 5가지 표준은 기능적 크기 측정 ISO/IEC 14143에 대한 지나치게 중요한 표준의 구현이다.[2] IT 소프트웨어 품질을 위한 컨소시엄이 주도하는 OMG 자동 기능 포인트(AFP) 규격은 국제 기능 포인트 사용자 그룹(IFPUG)의 지침에 따라 기능 포인트 계산을 자동화하는 표준을 제시하지만, 이 표준의 현재 구현은 E를 구별할 수 있는 한계가 있다.외부 조회(EQ)의 외부 출력(EO)을 초기 구성 없이 즉시 사용.[3]
소개
기능 포인트는 1979년 IBM의 Allan Albrecht가 정의한 Measurement Application Development Productivity by IBM.[4] 소프트웨어의 기능 사용자 요구 사항을 파악하여 각각 출력, 조회, 입력, 내부 파일, 외부 인터페이스의 5가지 유형 중 하나로 분류한다. 기능이 유형으로 식별되고 분류되면 복잡성을 평가하고 여러 기능 포인트를 할당한다. 이러한 각각의 기능 사용자 요구 사항은 입력을 위한 데이터 입력이나 질의에 대한 사용자 질의와 같은 최종 사용자 비즈니스 기능에 매핑된다. 기능 포인트에서 측정한 기능을 사용자 지향 요건으로 쉽게 만드는 경향이 있지만, 구현하기 위해 자원도 필요한 내부 기능(예: 알고리즘)을 감추는 경향이 있기 때문에 이러한 구별이 중요하다.
사이징 결과에 알고리즘 복잡성을 포함하는 ISO 인식 FSM 방법은 현재 없다. 최근에 여러 상업용 소프트웨어 제품에서 구현된 이러한 인식된 약점을 다루기 위해 다양한 접근법이 제안되었다. 이(및 기타 약점)를 보충하기 위해 설계된 알브레히트 기반의 IFPUG 방법의 변화는 다음과 같다.
- 조기 및 손쉬운 기능 포인트 – 다소 주관적인 복잡성 측정을 제공하는 두 개의 질문을 통해 문제와 데이터 복잡성을 조정하고, 데이터 요소를 계산할 필요성을 제거하여 측정을 단순화한다.
- 공학 함수 점 – 요소(변수 이름) 및 연산자(예: 산술, 등/부질, 부울)가 계산된다. 이 변동은 계산 기능을 강조한다.[5] 목적은 운영자/운영자 기반 Halstead 복잡성 측정과 유사하다.
- Bang measure – Bang에 영향을 미치거나 보여주는 12개의 원시(단순) 계수를 기준으로 함수 메트릭을 정의한다. Bang measure는 "사용자가 인식하는 것처럼 전달되는 진정한 함수의 척도"로 정의된다. Bang measure는 소프트웨어 유닛의 가치를 평가하는 데 도움이 될 수 있다. 그런 응용의 문학 Bang 측정의 사용은 운용 시스템 유지보수에 논의된 바와 같이 (완전하거나 부분적인) 재엔지니어링을 고려할 때 적용될 수 있다.—개요.
- 기능 포인트 – 내부 처리가 중요한 시스템(예: 운영 체제, 통신 시스템)에 대한 적용성을 개선하기 위해 변경 사항 추가 이를 통해 사용자가 쉽게 인지할 수 없지만 적절한 작동을 위해 필수적인 기능을 회계처리할 수 있다.
- 가중 마이크로 기능 포인트 – 프로그램 흐름 복잡성, 피연산자와 연산자 어휘, 객체 사용량 및 알고리즘에서 도출된 가중치를 사용하여 기능 포인트를 조정하는 최신 모델 중 하나(2009년).
- 퍼지 함수 점 - 낮은 x 중간 x 높은 복잡도 사이의[6] 퍼지 및 그라데이션 전환 제안
대비
코드 라인에 유리한 기능 포인트를 사용하면 다음과 같은 몇 가지 추가 문제를 해결할 수 있다.
- 개발자가 생산성을 높이기 위해 인센티브를 제공받는 경우, 생성된 코드 라인의 "인플레이션"을 유발하여 측정 시스템의 가치를 감소시킬 위험. FP 옹호론자들은 이를 문제의 크기 대신 해결책의 크기를 측정하는 것으로 언급한다.
- LOC(Line of Code)는 유사한 양의 기능을 더 높은 수준의 언어로 전달하기 위해 더 많은 코드 라인이 필요하기 때문에 낮은 수준의 언어를 보상한다.[7] C. 존스는 그의 작품에서 이것을 교정하는 방법을 제시한다.[8]
- LOC 측정은 전달될 코드 라인 수를 추정하는 것이 어려운 초기 프로젝트 단계에서는 유용하지 않다. 단, 기능 포인트는 요건에서 도출될 수 있으므로 대리 추계와 같은 방법에서 유용하다.
비판
알브레히트는 연구에서 기능 포인트가 코드 라인과 높은 상관관계를 가지고 있다고 관찰했는데,[9] 이는 보다 객관적인 조치, 즉 코드 라인의 개수를 이용할 수 있다면 그러한 조치의 가치에 의문을 제기하는 결과를 낳았다. 또한, 이 조치로 인식된 단점을 해결하기 위한 여러 가지 시도가 있었다.[10][11][12][13][14][15] 다른 사람들은 전달된 기능성의 양에 대한 대용물을 만드는 대체 방법을 개발함으로써 도전을 회피하기 위한 해결책을 제시하였다.[16]
참고 항목
참조
- ^ Thomas Cutting, Project Management에서 습득한 교훈 추정 - 2010년 5월 28일 전통적, 검색
- ^ ISO/IEC JTC 1/SC 7 Software and systems engineering (2007-02-01). "ISO/IEC 14143". International Standards Organization. Retrieved 2019-02-26.
- ^ OMG/CISQ 규격 "2013년 2월, OMG 문서 번호 ptc/2013-02-01 http://www.omg.org/spec/AFP/1.0
- ^ A. J. Albrecht, "응용프로그램 개발 생산성 측정", Joint Share, GUIDE 및 IBM Application Development 심포지엄, 캘리포니아 몬터레이, 10월 14-17일, IBM Corporation(1979년), 페이지 83-92.
- ^ 엔지니어링 기능 포인트 및 추적 시스템, 소프트웨어 기술 지원 센터(Wayback Machine, 2008년 5월 14일 검색)에 보관된 2010-11-11
- ^ Lima, Osias de Souza; Farias, Pedro Porfírio Muniz; Belchior, Arnaldo Dias (2003-06-01). "Fuzzy Modeling for Function Points Analysis". Software Quality Journal. 11 (2): 149–166. doi:10.1023/A:1023716628585. ISSN 1573-1367. S2CID 19655881.
- ^ 존스, 씨, 본시그너 오 소프트웨어 품질의 경제학, 애디슨 웨슬리, 2012. 페이지 105-109.
- ^ 존스, C 응용 소프트웨어 측정: 생산성 및 품질 보장. 맥그로힐 1996년 6월.
- ^ 알브레히트, A. 소프트웨어 기능, 코드 소스 라인 및 개발 노력 평가 - 소프트웨어 과학 검증. 1983.
- ^ Symons, C.R. "기능 포인트 분석: 어려움과 개선." IEEE Transactions on Software Engineering. 1988년 1월. 페이지 2-111.
- ^ Hemstra, F., Kusters R. "기능 포인트 분석: 소프트웨어 비용 추정 모델의 평가" 유럽 정보 시스템 저널 1991. 제1권, 제4권 229-237호.
- ^ Jeffery, R 및 Stathis, J. "사양 기반 소프트웨어 크기 조정: 함수 메트릭스의 경험적 조사." 제18회 연례 소프트웨어 엔지니어링 워크샵의 진행. 1993. 페이지 97-115.
- ^ 시몬스, C. 소프트웨어 크기 조정 및 예측: Mk II FPA(기능 포인트 분석). 존 와일리 & 선즈 주식회사 1991년 뉴욕
- ^ 데마르코, T. "소프트웨어 제품 사이징을 위한 알고리즘." ACM Sigmetrics 성능 평가 검토. 1984. 제12권 제2권 13-22호.
- ^ Jeffrey, D.R., Low, G.C. 및 Barnes, M. "기능 포인트 계산 기법의 비교. IEEE Transactions on Software Engineering. 1993. 제19권 제529-532호.
- ^ 슈워츠, 아담 2012년 제9차 정보기술 국제회의-신세대. 2012년 4월. 페이지 242-246.