Function Point Analysis-FPA
Function Point Analysis-FPA
Introduction
■ Function point metrics, developed by
Alan Albercht of IBM, were first
published in 1979
■ In 1984, the International Function
Point Users Group (IFPUG) was set up
to clarify the rules, set standards, and
promote their use and evolution
Introduction (Cont’d)
■ Function point metrics provide a
standardized method for measuring the
various functions of a software
application.
■ Function point metrics, measure
functionality from the users point of
view, that is, on the basis of what the
user requests and receives in return
Objectives of FPA
■ Function point analysis measures software by quantifying
the functionality the software provides to the user based
primarily on logical design. With this in mind, the objectives
of function point analysis are to:
■ External Interface File (EIF): a user identifiable group of logically related data
or control information referenced by the application, but maintained within
the boundary of another application. OR
■ EIFs represent the data that your application will use/reference, but
data that is not maintained by your application.
■ This means that EIF counted for an application, must be an ILF in another application
Examples of ILFs :
• Tables in a relational database.
• Flat files.
• Application control information, perhaps things like user preferences that are
stored by the application.
• LDAP data stores.
• Example of EIF:
it may be necessary for a pilot to reference position data from a satellite or ground-
based facility during flight. The pilot does not have the responsibility for updating
data at these sites but must reference it during the flight. Groupings of data from
another system that are used only for reference purposes are defined as External
Interface Files (EIF).
Transactional Function Types
■ External Input (EI): An EI processes data or control information
that comes from outside the application’s boundary. The EI is an
elementary process.
■ Elementary process: The smallest unit of activity that is
■ gives the user the ability to produce outputs. The primary intent of an external
output is to present information to a user through processing logic other than, or
in addition to, the retrieval of data or control information . The processing logic
must contain at least one mathematical formula or calculation, create derived data
maintain one or more ILFs or alter the behavior of the system.
■ For example a pilot has the ability to separately display ground speed, true air speed
and calibrated air speed. The results displayed are derived using data that is
maintained and data that is referenced
• External Inquiry (EQ): An EQ is an elementary process made up of an
input-output combination that results in data retrieval.
• In this situation there is no manipulation of the data. It is a direct
retrieval of information contained on the files. For example if a pilot
displays terrain clearance data that was previously set, the resulting
output is the direct retrieval of stored information. These transactions
are referred to as External Inquiries (EQ).
FPA Overview (Con’d)
■ These 5 function types are then ranked
according to their complexity: Low, Average
or High, using a set of prescriptive standards.
■ Organizations that use FP methods, develop
criteria for determining whether a particular
entry is Low, Average or High.
■ Nonetheless, the determination of complexity
is somewhat subjective.
FPA Overview (Con’d)
■ After classifying each of the five
function types, the UFP is computed
using predefined weights for each
function type
Measure Data Functions
1. Count the DETs for Each Data Function
2. Count the RETs for Each Data Function
3. Determine the Functional Complexity for Each Data Function
FP = UFP ×VAF
EI 24 (Average) 4 96
EO 16 (Average) 5 80
EQ 22 (Average) 4 88
ILF 4 (Average) 10 40
ELF 2 (Average) 7 14
inputs
3 simple X 2 = 6
4 average X 4 = 16
1 complex X 6 = 6
outputs
6 average X 5 = 30
2 complex X 7 = 14
files
5 complex X 15 = 75
inquiries
8 average X 4 = 32
interfaces
3 average X 7 = 21
4 complex X 10 = 40
Unadjusted function points 240
Function Point Analysis
In addition to these individually weighted function points, there are factors that affect the project
and/or system as a whole. There are a number (~35) of these factors that affect the size of the
project effort, and each is ranked from “0”- no influence to “5”- essential.
The following are some examples of these factors:
• Is high performance critical?
• Is the internal processing complex?
• Is the system to be used in multiple sites and/or by multiple organizations?
• Is the code designed to be reusable?
• Is the processing to be distributed?
• and so forth . . .
Function Point Analysis
Continuing our example . . .
Complex internal processing = 3
Code to be reusable = 2
High performance = 4
Multiple sites = 3
Distributed processing = 5
Project adjustment factor = 17
Adjustment calculation:
Adjusted FP = Unadjusted FP X [0.65 + (adjustment factor X 0.01)]
= 240 X [0.65 + ( 17 X 0.01)]
= 240 X [0.82]
= 197 Adjusted function points
Function Point Analysis
But how long will the project take and how much will it cost?
• As previously measured, programmers in our organization average 18
function points per month. Thus . . .
197 FP divided by 18 = 11 man-months
• If the average programmer is paid $5,200 per month (including
benefits), then the [labor] cost of the project will be . . .
11 man-months X $5,200 = $57,200
Problems of FPA
■ FPA has been criticized as not being
universally applicable to all types of
software.
■ For example, FPA doesn’t capture all
functional characteristics of real-time
software
Other Variants of FPA
■ FP was originally designed to be applied
to business information systems
applications.
■ So, the data dimension was emphasized.
■ So, FPA was inadequate for many engineering
and embedded systems.
Other Variants of FPA (Cont’d)
■ Feature Point
■ Is a superset of FP
■ Suitable for real-time, process-control and
embedded software applications tend to
have high algorithmic complexity
■ This method counts a new software
characteristics: “algorithms”
Other Variants of FPA (Cont’d)
■ 3D Function Point
■ Developed by Boeing
■ Suitable for applications that emphasize function
and control capabilities:
■ Data dimension: very similar to basic FP
■ Functional dimension: is measured by considering the
number of internal operations required to transform
input to output data
■ Control dimension: is measured by counting the number
of transitions between states.
■ Characteristics of all 3 dimensions are counted,
quantified and transformed into a measure that
provides an indication of the functionality
Other Variants of FPA (Cont’d)
■ MK II FPA
■ Developed in the late 80’s by Charles
Symons in the UK
■ NESMA
■ Is a simpler-to-use variant of the IFPUG
method
■ Maintained by the Netherlands software
metrics association
Other Variants of FPA (Cont’d)
■ COSMIC-FPP
■ Is approved by ISO
■ Designed to measure the functional size of real-
time, multi-layered software such as used in
telecoms, process control and operating systems
as well as business applications, all on the same
measurement scale
■ Having been developed in the last few years, the
method is compatible with modern specification
methods such as UML and OO techniques.