Function point
Encyclopedia
A function point is a unit of measurement to express the amount of business functionality an information system
provides to a user. The cost (in dollars or hours) of a single unit is calculated from past projects.
There are five currently recognized ISO standards for functionally sizing software:
. The functional user requirements
of the software are identified and each one is categorized into one of five types: outputs, inquiries, inputs, internal files, and external interfaces. Once the function is identified and categorized into a type, it is then assessed for complexity and assigned a number of function points. Each of these functional user requirements maps to an end-user business function, such as a data entry for an Input or a user query for an Inquiry. This distinction is important because it tends to make the functions measured in function points map easily into user-oriented requirements, but it also tends to hide internal functions (e.g. algorithms), which also require resources to implement, however, there is no ISO recognized FSM Method that includes algorithmic complexity in the sizing result. Recently there have been different approaches proposed to deal with this perceived weakness, implemented in several commercial software products. The variations of the Albrecht based IFPUG method designed to make up for this (and other weaknesses) include:
Information system
An information system - or application landscape - is any combination of information technology and people's activities that support operations, management, and decision making. In a very broad sense, the term information system is frequently used to refer to the interaction between people,...
provides to a user. The cost (in dollars or hours) of a single unit is calculated from past projects.
There are five currently recognized ISO standards for functionally sizing software:
- COSMIC-FFP: ISO/IEC 19761:2003 Software engineering. A functional size measurement method.
- FiSMA FSM: ISO/IEC 29881:2008 Information technology - Software and systems engineering - FiSMA 1.1 functional size measurement method.
- IFPUGIFPUGThe International Function Point Users Group is a US based organization of users of the software metric Function point analysis.The International Function Point User Group is a non-profit organization originally set up in 1986. IFPUG offers certification for professionals across the world with a...
FSM Method: ISO/IEC 20926:2009 Software and systems engineering - Software measurement - IGPUG functional size measurement method - Mk II Function Point Analysis: ISO/IEC 20968:2002 Software engineering - Ml II Function Point Analysis - Counting Practices Manual
- NESMA FPA Method: ISO/IEC 24570:2005 Software engineering - NESMA function size measurement method version 2.1 - Definitions and counting guidelines for the application of Function Point Analysis
Introduction
Function points were defined in 1979 in A New Way of Looking at Tools by Allan Albrecht at IBMIBM
International Business Machines Corporation or IBM is an American multinational technology and consulting corporation headquartered in Armonk, New York, United States. IBM manufactures and sells computer hardware and software, and it offers infrastructure, hosting and consulting services in areas...
. The functional user requirements
Functional requirements
In software engineering, a functional requirement defines a function of a software system or its component. A function is described as a set of inputs, the behavior, and outputs ....
of the software are identified and each one is categorized into one of five types: outputs, inquiries, inputs, internal files, and external interfaces. Once the function is identified and categorized into a type, it is then assessed for complexity and assigned a number of function points. Each of these functional user requirements maps to an end-user business function, such as a data entry for an Input or a user query for an Inquiry. This distinction is important because it tends to make the functions measured in function points map easily into user-oriented requirements, but it also tends to hide internal functions (e.g. algorithms), which also require resources to implement, however, there is no ISO recognized FSM Method that includes algorithmic complexity in the sizing result. Recently there have been different approaches proposed to deal with this perceived weakness, implemented in several commercial software products. The variations of the Albrecht based IFPUG method designed to make up for this (and other weaknesses) include:
- Early and easy function points - Adjusts for problem and data complexity with two questions that yield a somewhat subjective complexity measurement; simplifies measurement by eliminating the need to count data elements.
- Engineering function points - Elements (variable names) and operators (e.g., arithmetic, equality/inequality, Boolean) are counted. This variation highlights computational function. The intent is similar to that of the operator/operand-based Halstead Complexity MeasuresHalstead complexity measuresHalstead complexity measures are software metrics introduced by Maurice Howard Halstead in 1977 as part of his treatise on establishing an empirical science of software development....
. - Bang measure - Defines a function metric based on twelve primitive (simple) counts that affect or show Bang, defined as "the measure of true function to be delivered as perceived by the user." Bang measure may be helpful in evaluating a software unit's value in terms of how much useful function it provides, although there is little evidence in the literature of such application. The use of Bang measure could apply when re-engineering (either complete or piecewise) is being considered, as discussed in Maintenance of Operational Systems—An Overview.
- Feature points - Adds changes to improve applicability to systems with significant internal processing (e.g., operating systems, communications systems). This allows accounting for functions not readily perceivable by the user, but essential for proper operation.
- Weighted Micro Function PointsWeighted Micro Function PointsWeighted Micro Function Points is a modern software sizing algorithm invented by Logical Solutions in 2009 which is a successor to solid ancestor scientific methods as COCOMO, COSYSMO, maintainability index, cyclomatic complexity, function points, and Halstead complexity...
- One of the newer models (2009) which adjusts function points using weights derived from program flow complexity, operand and operator vocabulary, object usage, and algorithmic intricacy.
See also
- Weighted Micro Function PointsWeighted Micro Function PointsWeighted Micro Function Points is a modern software sizing algorithm invented by Logical Solutions in 2009 which is a successor to solid ancestor scientific methods as COCOMO, COSYSMO, maintainability index, cyclomatic complexity, function points, and Halstead complexity...
- Source lines of codeSource lines of codeSource lines of code is a software metric used to measure the size of a software program by counting the number of lines in the text of the program's source code...
- Software development effort estimationSoftware development effort estimationSoftware development efforts estimation is the process of predicting the most realistic use of effort required to develop or maintain software based on incomplete, uncertain and/or noisy input...
- Software SizingSoftware SizingSoftware sizing is an activity in software engineering that is used to estimate the size of a software application or component in order to be able to implement other software project management activities...
- Mark II methodMK II FPAThe MK II Method is one of the software sizing methods in functional point group of measurements. This is a method for analysis and measurement of information processing applications based on end user functional view of the system...
- Comparison of development estimation softwareComparison of development estimation softwareA comparison of notable Software development effort estimation software.-See also:* Software Sizing* Software metric* Software development effort estimation* Software parametric models* Cost estimation models...
External links
- Function Points: A New Way of Looking at Tools
- The Netherlands Software Metrics users Association (NESMA)
- The International Function Point Users Group (IFPUG)
- The Common Software Measurement International Consortium
- Function Point Analysis in FOLDOCFree On-line Dictionary of ComputingThe Free On-line Dictionary of Computing is an online, searchable, encyclopedic dictionary of computing subjects. It was founded in 1985 by Denis Howe and is hosted by Imperial College London...
- COSMIC - ISO 19761
- An introduction (tutorial) to Function Points Analysis