Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
ISO/IEC 26564 defines the application of IFPUG (International Function Point Users Group) Functional Size Measurement (FSM) within the context of software engineering. Function point analysis quantifies the functionality delivered by a software application from the end user’s perspective, independent of the technology used to implement it. This technology-neutral measurement makes function points invaluable for benchmarking, estimating, and comparing productivity across different development approaches and technology stacks.
ISO/IEC 26564 adapts the IFPUG Counting Practices Manual (CPM) to the specific needs of software engineering organizations. It defines five function types: External Inputs (EI), External Outputs (EO), External Inquiries (EQ), Internal Logical Files (ILF), and External Interface Files (EIF). Each function type is assigned a complexity level — low, average, or high — based on the number of data element types (DETs) and file types referenced (FTRs for transactional functions, RETs for data functions).
| Function Type | Abbreviation | Description | Example |
|---|---|---|---|
| External Input | EI | Data entering the application boundary (forms, imports, sensor readings) | User registration form submission |
| External Output | EO | Data leaving the application boundary with derived or calculated information | Monthly sales report with totals |
| External Inquiry | EQ | Data retrieval without derived data; simple read-only access | Customer account balance lookup |
| Internal Logical File | ILF | Data maintained within the application boundary | Product inventory database table |
| External Interface File | EIF | Data referenced from another application’s ILF | Reference customer data from CRM system |
The ISO/IEC 26564 counting process follows a structured sequence: first, determine the counting scope and application boundary; second, identify and catalog all data functions (ILF and EIF); third, identify and catalog all transactional functions (EI, EO, EQ); fourth, assign complexity ratings to each function; and finally, calculate the unadjusted function point count. Optionally, value adjustment factors (VAF) — based on 14 general system characteristics — can be applied to derive the adjusted function point count.
Complexity determination is where the most judgment is required. For transactional functions, the number of DETs (unique user-recognizable fields) and FTRs (files maintained or read) determine complexity. For data functions, DETs and RETs (record element types, or logical subgroups within a file) are the determining factors. ISO/IEC 26564 provides detailed decision tables to ensure consistent complexity assignments across different counters.
Function point analysis under ISO/IEC 26564 enables several critical software engineering practices. For project estimation, historical productivity data (function points per staff-month) can be combined with function point counts to produce effort estimates with known confidence intervals. For benchmarking, function points provide a normalization basis for comparing productivity across projects, teams, and organizations. For contract management, function points offer an unambiguous measure of scope that is resistant to gold-plating and scope creep.
The standard also addresses the use of function points in agile development. While traditional function point counting assumes complete up-front requirements, ISO/IEC 26564 provides guidance on counting in iterative contexts where requirements evolve. The recommended approach is to count the function points delivered in each iteration and aggregate them across the release, treating the function point count as a living metric rather than a one-time estimate.