Function Point (FP) Analysis
Function Point Analysis (FPA) was first introduced by Allan J. Albrecht at IBM in 1979 and later refined by the International Function Point Users Group (IFPUG). It is a widely used method for estimating the size of a software project—both development and testing—based on its functionality or functional size.
In FPA, the functional size of a product is expressed in Function Points (FPs), a standardized unit of measurement for software applications. This approach can also be applied to estimate testing effort for a product.
Objectives of FPA
The main goals of Function Point Analysis are:
- To measure and report the functional size of a software application to clients, customers, or stakeholders upon request.
- To track and assess the software project consistently throughout its life cycle—covering development and maintenance—regardless of the tools, technologies, or platforms used.
Key Points about Function Points
1. The FP value of an application is determined by counting the number and types of functions it provides.
These functions are classified into five categories, as outlined in the following table:
Types of FP Attributes
The FPA functional Units are shown in fig:
2. Function Points reflect software complexity — They can be used to estimate both the project duration and the manpower required.
3.The development effort is determined by the functionality of the software—what the system is designed to do.
4. Language independence — FP measurement is not tied to any specific programming language.
5. FP methodology is primarily applied to data processing systems and business applications, such as information systems.
6. The five parameters discussed earlier are referred to as information domain characteristics.
7. Each parameter is assigned a weight value, determined through experimental studies. These weights are presented in the following table
Function Point Measurement Parameters and Weights:
The functional complexities are multiplied by their corresponding weight values for each function type, and the results are summed to calculate the Unadjusted Function Points (UFP) for the subsystem.
Function Point (FP) Calculation
For each measurement parameter type, the weighing factor is categorized as Simple, Average, or Complex.
The Function Point (FP) is calculated using:
𝐹𝑃=Count-total×[0.65+0.01×∑(𝑓𝑖)]
where:
- Count-total is obtained from the parameter table.
- ∑(fi) = Sum of all 14 questionnaire scores (Complexity Adjustment Values), with
- CAF (Complexity Adjustment Factor) = 0.65+0.01×∑(𝑓𝑖)
Range of values:
- 0≤∑(𝑓𝑖)≤70
- CAF ranges from 0.65 to 1.35
- If ∑(𝑓𝑖)=0∑(fi)=0, CAF = 0.65
- If ∑(𝑓𝑖)=70∑(fi)=70, CAF = 1.35
Metrics Derived from FP
Once FP is determined, several other metrics can be computed:
- Errors per FP
- Cost per FP ($/FP)
- Defects per FP
- Pages of documentation per FP
- Errors per Person-Month (PM)
- Productivity = FP / PM (Effort measured in person-months)
- Cost per Page of Documentation ($/Page)
- LOC Estimation from FP (Backfiring) Example – 1 FP ≈ 100 lines of COBOL code.
Application Areas:
- FP metrics are most commonly used for measuring the size of Management Information System (MIS) software.
Adjusted Function Points:
- The function points initially computed are Unadjusted Function Points (UFPs).
- These are refined by incorporating General System Characteristics (GSCs)—a set of 14 factors.
Adjustment Procedure:
1.Assign a Degree of Influence (DI) from 0 to 5 for each GSC:
- 0 = No influence
- 5 = Strong influence
2.Sum all 14 DI scores to get the Total Degree of Influence (TDI).
3.Compute Value Adjustment Factor (VAF):
𝑉𝐴𝐹=(𝑇𝐷𝐼×0.01)+0.65
Range of VAF:
- If TDI = 0, VAF = 0.65
- If TDI = 70, VAF = 1.35
𝐹𝑃=𝑉𝐴𝐹×𝑈𝐹𝑃
FP=VAF×UFP
Example Calculation
Given:
- User inputs = 24
- User outputs = 46
- Inquiries = 8
- Files = 4
- External interfaces = 2
- Effort = 36.9 person-months
- Technical documentation = 265 pages
- User documentation = 122 pages
- Cost = $7744/month
- Processing complexity factors: 4, 1, 0, 3, 3, 5, 4, 4, 3, 3, 2, 2, 4, 5
Task:
1.Compute the FP.
2.Determine productivity.
3.Calculate documentation metrics.
4.Find cost per function.
Functional Point (FP) Analysis:
The sum of all 𝑓𝑖f i values (for 𝑖=1i=1 to 14) is:
∑𝑖=114𝑓𝑖=4+1+0+3+5+4+4+3+3+2+2+4+5=43i=1∑14 fi =4+1+0+3+5+4+4+3+3+2+2+4+5=43
The Function Point is calculated using the formula:
𝐹𝑃=Count-total×[0.65+0.01×∑𝑓𝑖]
Substituting the values:
𝐹p=378×[0.65+0.01×43]=378×[0.65+0.43]=378×1.08=408
Documentation Analysis:
Total pages of documentation:
Technical Document + User Document=265+122=387 pages
Documentation per Function Point:
Documentation=Pages of Documentation / 𝐹𝑃=387 / 408≈0.94