What is Function Point Analysis (FPA)?

FPA was originally developed by Allan Albrecht in the late 1970s at IBM, and has been further developed by the International Function Point Users Group (IFPUG).

FPA provides a set of rules to functionally size the software work product. This work product is the output of software new development and enhancement projects for subsequent releases. It is the software which is migrated to the production application at project implementation.

Function Point Analysis (FPA) is a method of Functional Size Measurement. It assesses the functionality delivered to its users, based on the user’s external view of the functional requirements. It measures the logical view of an application as compared to measuring the physically implemented view or the internal technical view.

FPA measures these functional requirements in terms of the:

The activity of performing Function Point Analysis is frequently referred to as a ‘Function Point Count’ and it involves the identification, classification and weighting of each of these Process and Data Group components. The weighting's are combined to give the Functional Size as an Unadjusted Function Point Count (UFP). This is the Functional Size as defined by the ISO/IEC standard 20926, the IFPUG CPM 4.3 and ISO/IEC 14143-1.

Before IFPUG 4.3 FPA included an additional optional step that involves assessing the technical and quality features embedded in the software product and adjusting the Functional Size accordingly. The result is referred to as the Adjusted Function Point Count (AFP) or the Product Size. IFPUG no longer recommends this adjustment to measure functional size.

The Function Point Analysis technique is used to assess the functionality delivered by software and an ‘unadjusted function point’ (UFP) is the unit of measurement

Once you have a Function Point count, you can use the resultant measure of the software product, either on its own or combine it with other measures to develop the following project performance indicators:

SCOPE facilitates a better understanding of a software application by displaying each functional area to be sized in a hierarchical tree display, thus providing an easy to interpret map of the application itself.