Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
ISO/IEC 25437 standardizes Function Point Analysis (FPA), a method for measuring the functional size of software systems from the user’s perspective. Unlike lines of code (LOC), which measure implementation volume and are language-dependent, function points quantify the functionality delivered — making them comparable across projects, languages, and development paradigms. The standard aligns with the IFPUG (International Function Point Users Group) Counting Practices Manual.
ISO/IEC 25437 defines five function types that constitute the functional size of an application. These are divided into data functions (internal and external) and transactional functions (inputs, outputs, and queries):
| Function Type | Acronym | Description | Typical Examples |
|---|---|---|---|
| Internal Logical File | ILF | Data maintained within the application boundary | Customer database, product catalog, order history |
| External Interface File | EIF | Data referenced from another application | Reference tax tables, address validation service |
| External Input | EI | Data entering the system boundary | Form submission, sensor reading, API call |
| External Output | EO | Data leaving the system boundary (with derivation logic) | Reports with calculations, invoices, dashboards |
| External Query | EQ | Data retrieval without derived logic | Search results, record lookup, status check |
Each function type is assigned a complexity level — low, average, or high — based on the number of data element types (DETs) and record element types (RETs) for data functions, or file types referenced (FTRs) and DETs for transactional functions. The complexity matrix converts raw counts into unadjusted function points (UFPs).
Unadjusted function points are multiplied by a Value Adjustment Factor (VAF) computed from 14 General System Characteristics (GSCs), each rated 0-5. The GSCs include data communications, distributed data processing, performance, heavy configuration, transaction rate, online data entry, end-user efficiency, online update, complex processing, reusability, installation ease, operational ease, multiple sites, and facilitate change.
The VAF adjusts raw functional size to reflect the technical complexity of the implementation environment. However, ISO/IEC 25437 cautions that the VAF introduces subjectivity — different counters may assign different GSC ratings to the same project. Many organizations now prefer to use unadjusted function points for benchmarking and reserve the VAF for internal estimation calibration.
Productivity benchmarking is one of the most powerful applications of FPA. By dividing actual project effort (person-hours) by function points delivered, organizations derive productivity rates (hours per FP) that are comparable across projects. Industry benchmarks vary widely: typical business applications range from 2-10 hours per FP, while real-time embedded systems may exceed 20 hours per FP due to additional verification and certification requirements.
Successfully adopting ISO/IEC 25437 requires attention to three areas: counter training, counting scope discipline, and tool support.
Counter training: Certified function point counting requires a structured learning program. The IFPUG Certified Function Point Specialist (CFPS) certification is the industry standard. Teams should have at least one CFPS-certified member who can conduct independent count audits and resolve boundary disputes. Counting consistency across counters is critical: inter-counter variation exceeding 10% indicates insufficient training or ambiguous counting guidelines.
Counting scope discipline: A counting scope document must be established before counting begins. This document defines the application boundary, identifies each function type instance, and documents counting assumptions. Version control of the counting scope is essential, as requirements changes during development directly impact the function point count.
Tool support: Specialized FPA tools (e.g., CAST, Understand, or integrated ALM platforms) can partially automate function point detection from requirements specifications or design models. Full automation remains challenging because FPA requires understanding of user-intended functionality, which is not fully captured in any single artifact. Semi-automated approaches — where tools identify candidate functions and human counters verify them — offer the best balance of speed and accuracy.