One of the more popular software estimation methods is the Function Point Analysis (FPA) method by Allan Albrecht at IBM. Here's a high level overview. FPA helps measure the size of a software application based on the functions expected to be delivered. Measuring size of the software helps us derive other important metrics such as schedule, effort, cost, quality metrics, productivity, etc. The output of FPA is a count expressed in terms of function point (FP). The size measured via FPA is independent of the technology used to develop the software.
A function point is an unit of business functionality delivered through the software being measured. If an application has 100 function points, it denotes that an equivalent number of business functions (100 in this case) are being delivered to the user. The FPA method relies on five operational attributes for sizing any software application – External Inputs (EI), External Output (EO), External Query (EQ), Internal Logic Files (ILF) and External Interface File (EIF). The FPA method defines an additional set of fourteen General System Characteristics (GSC) which in turn defines the complexity of the application being measured.
The International Function Point Users Group (IFPUG) was formed to promote and encourage the effective management of application software development and maintenance activities through the use of Function Point Analysis and other software measurement techniques. IFPUG maintains a standard Function Point Counting Practices Manual (CPM), established FPs as an International Standards Organization (ISO) standard, and offers professional FP certifications.
Steps in performing FPA include -
A function point is an unit of business functionality delivered through the software being measured. If an application has 100 function points, it denotes that an equivalent number of business functions (100 in this case) are being delivered to the user. The FPA method relies on five operational attributes for sizing any software application – External Inputs (EI), External Output (EO), External Query (EQ), Internal Logic Files (ILF) and External Interface File (EIF). The FPA method defines an additional set of fourteen General System Characteristics (GSC) which in turn defines the complexity of the application being measured.
The International Function Point Users Group (IFPUG) was formed to promote and encourage the effective management of application software development and maintenance activities through the use of Function Point Analysis and other software measurement techniques. IFPUG maintains a standard Function Point Counting Practices Manual (CPM), established FPs as an International Standards Organization (ISO) standard, and offers professional FP certifications.
Steps in performing FPA include -
- Defining the boundary of the application - consists of the internal files and logic, while the five attributes listed earlier which interact with the internal files remain outside the boundary
- Counting the data functions (ILF, EIF) - ILF and EIF are further defined in terms of complexity as Low, Average and High and map to a constant function point count (For ILF, FP counts are 7, 10 and 15 and for EIF, FP counts are 5, 7 and 10 for Low, Average and High respectively). Refer IFPUG tables for complexity levels and to assign point values for each countable function
- Counting the transaction functions (EI, EO, EQ) -as with the data functions, each transaction function may be defined as Low, Average or High complexity and maps to a constant function point count (For EI, FP counts are 3 ,4 and 6; for EO, FP counts are 4, 5 and 7 and for EQ, FP counts are 3, 4 and 6 for Low, Average and High respectively). Refer IFPUG tables for complexity levels and to assign point values for each countable function
- The FP count arrived at from the above two activities (counting data and transaction functions) is called as Unadjusted Function Points (UFP)
- Compute the Value Adjustment Factor (VAF) and apply to the UFP to get the Adjusted Function Points (AFP)
- The GSC, mentioned earlier, represent the technical attributes of the software being measured and may be specified in terms of their degree of impact on a scale of 0 to 5 (0 implying no impact and 5 implying maximum impact)
- The Total Degree of Influence (TDI) is the sum of the impact values for the 14 GSCs. If the TDI = 0 (meaning that all 14 GSCs have no impact), then the VAF is 0.65; if the TDI = 70 (meaning that all 14 GSCs have maximum impact), then the VAF is 1.35. There is a variation of 0.70 between the two extreme VAF values. [VAF = (TDI * 0.01) + 0.65]
- VAF is used to re-calibrate the UFP and compute the final AFP count [AFP = UFP * VAF]