Function Point Analysis (FPA)
Definition
Function Point Analysis is a method for measuring the size/functionality of a software system from the user's perspective, based on the number and complexity of its functional components — independent of the programming language or technology used.
Why FPA (vs. Lines of Code)
Unlike LOC (Lines of Code), which varies wildly by language and coding style, Function Points measure functionality delivered to the user, making it a fairer, more consistent size metric across different technologies.
Five Function Point Components
| Component | Description |
|---|---|
| External Inputs (EI) | Data entering the system (forms, input screens) |
| External Outputs (EO) | Data leaving the system (reports, generated files) |
| External Inquiries (EQ) | Input-output combinations retrieving data without modifying it (search/query) |
| Internal Logical Files (ILF) | Data maintained within the system (internal tables/files) |
| External Interface Files (EIF) | Data referenced by the system but maintained by another system |
Steps to Calculate Function Points
Step 1: Count each component and classify complexity (Low/Average/High)
Each component type has a weighting table (e.g., EI: Low=3, Avg=4, High=6)
Step 2: Calculate Unadjusted Function Points (UFP)
UFP = Σ (count of each component × its complexity weight)
Step 3: Calculate Value Adjustment Factor (VAF)
Based on 14 General System Characteristics (GSCs) like performance, reusability, complexity of processing — each rated 0–5:
VAF = 0.65 + (0.01 × ΣGSC ratings)
Step 4: Calculate Final Function Points
FP = UFP × VAF
Uses of Function Points
- Estimating project cost/effort early (before code is written)
- Comparing productivity across projects/teams (e.g., FP per person-month)
- Technology-independent size measurement
Advantages
- Can be calculated early (from requirements/design), unlike LOC
- Technology-independent — fair comparison across languages
- User-centric — reflects actual functionality delivered
Disadvantages
- Requires trained analysts to count accurately and consistently
- Somewhat subjective in classifying complexity (Low/Avg/High)
Exam tip: Memorize the 5 components (EI, EO, EQ, ILF, EIF) and the formula FP = UFP × VAF. Numerical problems giving you counts and weights to compute UFP are common.