Calculating Function Points
Calculating Function Points
Function Points
Overview
Function points can be used to measure the work-product, or relative size, of a
software application or project. This appendix describes the elements of function
point analysis, the approximate Composer equivalents to function point elements,
and how to calculate function points.
NOTE: The information presented here is generally based on the function point
counting standards and application guidelines found in Function Point Counting
Practices Manual Release 4.0 and Guidelines for Software Measurement
published by the International Function Point Users Group (IFPUG) in Westerville,
Ohio. The reader is encouraged to refer to these publications for additional details.
External User
Input Output Inquiry
Other Applications
Input
Internal Output
Logical Transactions
File Inquiry
General
Information
Processing External
Adjustment Interface
File
Application Boundary
External Inputs
An external input processes data or control information that comes from outside
the application boundary.
The external input must be an elementary process of the application.
If the external input processes user data, it must maintain one or more internal
logical files.
If the external input processes control information, it may or may not maintain an
internal logical file.
The External Inputs table shows the number of function points and the assigned
complexity for this element.
External Inputs
Number of File
Types 1-4 5-15 16+
External Outputs
An external output is an elementary process that sends data or control information
external to the application boundary.
Calculating Productivity Using Function Points Project Manager Handbook
The External Outputs table shows the number of function points and the assigned
complexity for this element.
External Outputs
Number of File
Types 1-5 6-19 20+
External Inquiries
An external inquiry is an elementary process that is an input-output combination
resulting in data retrieval.
The output side of the inquiry contains no derived data.
An external inquiry may not update an internal logical file.
Complexity of an external inquiry is determined as follows:
The input side of the inquiry is evaluated against the External Input table to
determine its complexity (low, average, or high).
The output side of the inquiry is evaluated against the External Output table
to determine its complexity (low, average, or high).
The external inquiry complexity is the higher of the two complexities.
Function points for the external inquiry are assigned as follows:
Low = 3
Average = 4
High = 6
The Internal Logical Files table shows the number of function points and the
assigned complexity for this element.
Number of
Record Types 1-5 6-19 20+
Number of
Record Types 1-5 6-19 20+
These classifications may require some manual modification to match the IFPUG
counting rules exactly. The following examples are typical:
Entity types that represent attributive data, or that are not maintained
separately, are combined with their principal entity type into one internal
logical file (or external interface file).
Entity types that represent designer-added functionality but are not visible to
the user are not counted.
Action blocks that are at a level below that of an elementary process are
combined at the elementary process level.
Action blocks that represent designer-added functionality (for example, paging
commands, menus, navigation, etc.) are not counted.
The IFPUG’s Function Point Counting Practices Manual and case studies contain
detailed rules and additional examples of how to apply function points to analysis
objects.
Project Manager Handbook Calculating Productivity Using Function Points
Calculation Worksheets
The Unadjusted Function Points Worksheet can be used to calculate the
unadjusted function point total, which is used in the function point formula.
Calculating Productivity Using Function Points Project Manager Handbook
Degree of
Application Characteristic Influence
Data communications the data and control information used in the application
are sent or received over communication facilities.
Distributed data processing distributed data or processing functions are a
characteristic of the application within the application boundary.
Performance application performance objectives, stated or approved by the user,
influence the design, development, installation, and support of the application.
Heavily used configuration a heavily used operational configuration, requiring
special design considerations, is characteristic of the application.
Transaction rate the transaction rate is high, and it influenced the design,
development, installation, and support of the application.
On-line data entry on-line data entry and control functions are provided in the
application.
End-user efficiency the on-line functions provided emphasize a design for end
user efficiency.
On-line update the application provides on-line update for the internal logical
files.
Complex processing complex processing (such as sensitive control/security
processing, extensive logical and mathematical processing and exception
processing based on incomplete transactions) is a characteristic of the application.
Reusability the application has been specifically designed, developed, and
supported to be usable in other applications.
Installation ease conversion and ease of installation are characteristics of the
application.
Operational ease effective start-up, back-up, and recovery procedures were
developed and tested, and the application minimizes the need for manual activities.
Multiple sites the application has been specifically designed, developed, and
supported to be installed at multiple sites for multiple organizations.
Facilitate change the application has been specifically designed, developed, and
supported to facilitate change.
Total Degree of Influence
Calculating Productivity Using Function Points Project Manager Handbook