Functional Size Measurement (FSM)
What Is Functional Size Measurement (FSM)?
Functional size measurement (FSM) is a discipline of software measurement concerned with quantifying the functional size of software systems based on user-visible functionality, independent of the technical implementation, programming language, or development method used. The International Organization for Standardization defines the framework for FSM in the ISO/IEC 14143 series, which establishes the conceptual framework, conformance testing procedures, and guidance for selecting among competing measurement methods. FSM emerged from the limitations of lines-of-code (LOC) counting, which conflates implementation verbosity with actual functionality delivered and makes cross-language and cross-project comparisons unreliable.
The core principle of FSM is that software functionality can be measured at the boundary between the software and its users or other systems, by identifying and sizing the functional user requirements: the elementary transactions and data stores that the software provides from the user's perspective. This boundary-based perspective produces a count that is stable across alternative technical implementations of the same requirements, making it suitable for early-lifecycle estimation, benchmarking, and contractual sizing.
ISO-Recognized FSM Methods
Five FSM methods have achieved ISO recognition, each with its own counting rules and domain fit. IFPUG Function Point Analysis (ISO/IEC 20926) is the oldest and most widely adopted, developed by Allan Albrecht at IBM in 1979 and standardized through the International Function Point Users Group. COSMIC (ISO/IEC 19761), developed by the COmmon Software Measurement International Consortium and formalized in 2003, extends FSM coverage to real-time, embedded, and business software by defining data movements as the unit of measurement. NESMA (ISO/IEC 24570) provides a Netherlands-developed variant of function point counting with simplified estimation variants. MkII FPA (ISO/IEC 20968) is a UK-originated method that weights transactions differently based on input, processing, and output complexity. FiSMA (ISO/IEC 29881) addresses administrative information systems. The COSMIC sizing organization maintains a historical overview of all five methods and their development contexts. The ISO/IEC 14143 framework provides the meta-standard against which all five are assessed for conformance.
Measurement Process and Outputs
An FSM measurement begins by establishing the scope and the functional user requirements to be sized. The practitioner identifies functional processes (transactions in IFPUG and NESMA terms, data movements in COSMIC terms) and data groups (logical files or data collections) at the boundary of the software. Each identified element is classified and weighted according to the method's counting rules, and the weighted elements are summed to produce a numeric functional size. The resulting size, expressed in function points (IFPUG, NESMA, MkII) or COSMIC function points (CFP), is then available as an input to effort estimation models, productivity benchmarks, and contractual agreements. Because the measurement is based on requirements rather than code, it can be performed during requirements analysis, providing early estimates before development begins.
FSM in Software Project Management
FSM metrics underpin a broad set of project management and benchmarking activities. Organizations use functional size as a denominator for productivity ratios, hours per function point, defects per function point, and cost per function point, to compare performance across projects, teams, or vendors. Parametric estimation tools such as COCOMO II and SEER-SEM accept functional size as a primary input driver. Industry benchmarking databases, including those maintained by ISBSG (International Software Benchmarking Standards Group), aggregate FSM-based productivity data from thousands of projects across industries, allowing organizations to calibrate their own estimates against a large reference dataset. The NESMA white paper on function point sizing methods provides a practitioner-oriented comparison of the five ISO-recognized FSM approaches and their estimation use cases.
Applications
Functional size measurement has applications in a range of fields, including:
- Software project estimation and scheduling in early lifecycle phases
- IT outsourcing contract negotiation and vendor payment schemes
- Portfolio management and prioritization of software investments
- Software process improvement benchmarking
- Regulatory cost auditing in government and defense software procurement