Counting function points
The process of counting function points can be broken down into
the following steps.
- Choose the type of function count appropriate to the project
(new development, modifying existing program, or measuring an
existing program). We will only be concerned with new development.
- Define the scope of the application.
- Count all data function points, adjusted by their complexity.
Typically data function points are usually counted before transactional function points.
If you are storing your data in a
database, tables (except those used only for implementing many-to-many relationships
and lookup tables) will either be an ILF or an EIF.
- Internal Logical Files (ILF).
Tables that are updated by the application.
- External Interface Files (EIF).
Tables that are only referenced by the application.
The number of function points is computed by a matrix based on
the numbers of ILFs, EIFs and their complexities, as measured by
DETs (Data Element Types), which correspond closely to fields in a table,
and RETs (Record Element Types).
See Data Function Points for more
detailed instructions on counting data function points.
- Count all transactional functions, adjusted by their complexity.
- External Inputs (EI). External input is an "elementary process
that processes data or control information that enters from outside the
boundary of the application." The data may alter an ILF and/or alter
the behavior of the system. It must leave the system in a consistent state.
Control information must have a business meaning (eg, not navigation actions,
not login or startup operations, not refreshing, not clicking to
move data, ...).
- External Outputs (EO) are outputs that calculate a value
or update an ILF.
- External Inquiries (EQ) simply present ILF data without
any calculation (except reformatting etc).
See Transactional Function Points
for more details on computing transactional function points.
- Sum the above to get the unadjusted function points (UFP) count.
Computing Function Points
| By Complexity | Total |
Source | Low | Avg | High | |
ILF - Internal Logic File | ____ x 7 = ____ | ____ x 10 = ____ | ____ x 15 = ____ | |
EIF - External Interface Files | ____ x 5 = ____ | ____ x 7 = ____ | ____ x 10 = ____ | |
EI - External Inputs | ____ x 3 = ____ | ____ x 4 = ____ | ____ x 6 = ____ | |
EO - External Outputs | ____ x 4 = ____ | ____ x 5 = ____ | ____ x 7 = ____ | |
EQ - External Queries | ____ x 3 = ____ | ____ x 4 = ____ | ____ x 6 = ____ | |
- Determine the adjustment factor, which is based on 14 project characteristics.
Work on a ISO standard for FPA, renamed function size measurement,
excludes this adjustment factor, so we'll ignore it.
- Calculate the adjusted function point count, which is simply the
unadjusted function point count for our purposes.
Now you have the total number of function points. These can be used for many
purposes, but one of the main uses is to estimate schedule and
manpower requirements.
Going from function points to schedule/effort estimates
You can use standard formulas and tables to transform function points
into schedule and effort estimates.
Effort Estimation gives a method of transforming
function points into schedule or effort.