Functional Point
Calculation
Dr. Neha Bansal
School of Computer Science and
Technology Engineering,
Bennett University, Greater Noida
Introduction
• Function Point Analysis (FPA) is a technique for measuring/Estimating the functionality of a software app (Size
Estimation, Yes, how big is your App)
• The basic and primary purpose of the functional point analysis is to measure and provide the software
application functional size to the client, customer, and the stakeholder on their request.
• Function Points are a Unit of Measurement, similar to pounds for weight, miles for distance or Fahrenheit degrees
for temperature
• Developed by A.J. Albrecht of the IBM Corporation in the early 1980s.
• Was developed to overcome difficulties associated with lines of code as a measure of software size
• In 1984 Albrecht refined the method and since 1986, when the International Function Point User Group (IFPUG)
was set up, several versions of the Function Point Counting.
• It has as an advantage its focus on measuring software produced in terms of functionality delivered to the end
user, rather than in terms of development deliverables, which have no direct bearing on the end user.
• Practices Manual have been coming out.
• Independent of programming language or technologies used
History of FP
FPA Key Concepts
The size in FPA is determined by
counting the number of inputs, outputs,
queries, internal files and external files
in the system and adjusting that total
for the functional complexity of the
system.
Data at Rest = Tables/Storage
Data in motion = Transactions
Application Boundary = Within the
application to be developed
Elementary process = A series of steps,
which moves data (interwoven EPs form
a system), smallest unit of activity that
is meaningful to user.
FPA Key Concepts
• The application boundary
carries user context
• The boundary is not a
technical concept
• The data residing inside
Business the boundary is
data at rest
• The data moving into or
Reports/Outputs out of
boundary is data in motion
• Each of these are
categorized to estimate the
size
(EQ
)
(EI
)
Componen
ts of FPA (EO)
•Two Data Function Types (ILF, EIF)
• Three Transactional Function Types. (EI, EO,
IQ)
Elementary Processes
1. Internal Logical Files (ILF)
Definition: Logical groupings of data in a system, maintained by an end user(and
application), are referred to as Internal Logical Files (ILF).
For example, a pilot may enter navigational data through a display in the cockpit
prior to departure. The data is stored in a file for use and can be modified during the
mission. Therefore, the pilot is responsible for maintaining the file that contains the
navigational information.
2. External Interface Files (EIF)
Definition: Groupings of data from another system that are used only for
reference purposes are defined as External Interface Files (EIF).
Explanation: The second Data Function a system provides an end user is also
related to logical groupings of data. In this case the user is not responsible for
maintaining the data. The data resides in another system and is maintained by
another user or system. The user of the system being counted requires this data
for reference purposes only.
For example, 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.
Transactional Functions
These functions address the user's capability to access the data contained
in ILFs and EIFs. This capability includes maintaining, inquiring and
outputting of data. These are referred to as Transactional Functions.
1) External Inputs (El)
It gives the user the capability to maintain the data in ILF's through
adding, changing and deleting its contents. In this case the pilot is
utilizing a transaction referred to as an External Input (EI).
For example, a pilot can add, change and delete navigational information
prior to and during the mission.
2) External Output (EO)
This Transactional Function gives the user the ability to produce outputs.
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. In function point terminology the resulting display is called an External Output (EO).
3) External Queries (EQ)
This Transactional Functions addresses the requirement to select and display specific data from
files. To accomplish this a user inputs selection information that is used to retrieve data that
meets the specific criteria. 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).
Elementar
y
Processes
through E-
Commerce
example
Calculation of Function Points
FPA= CAF* Count function of UFP
Calculation of CAF:
Step 1: CAF = [0.65 + 0.01 * sum (Fi)]
Where sum (F ) = Complexity Adjustment Factor
i
F = 14 * Scale
There are 14 software characteristics (shown in next slide) taken to calculate
the software complexity and a Scale is assigned to each factor.
Rate each factor on a scale of 0 to 5.
0 - No Influence
1 - Incidental
2 - Moderate
3 - Average
4 - Significant
5 - Essential
Number of factors considered ( Fi )
1.Does the system require reliable backup and recovery ?
2.Is data communication required ?
3.Are there distributed processing functions ?
4.Is performance critical ?
5.Will the system run in an existing heavily utilized operational environment ?
6.Does the system require on line data entry ?
7.Does the on line data entry require the input transaction to be built over multiple
screens or operations ?
8.Are the master files updated on line ?
9.Is the inputs, outputs, files, or inquiries complex ?
10.Is the internal processing complex ?
11.Is the code designed to be reusable ?
12.Are conversion and installation included in the design ?
13.Is the system designed for multiple installations in different organizations ?
14.Is the application designed to facilitate change and ease of use by the user ?
• Step-2: Calculate Unadjusted Function Point (UFP).
Table 1 : Functional units with weighting factors
Weighting factors
Functional
Units Low Average High
All the parameters
External Inputs (EI) 3 4 6 mentioned in the Table 1
are assigned some
weights that have been
External Output (EO) 4 5 7 determined by
experience.
The functional
External Inquiries (EQ) 3 4 6 complexities are
multiplied with the
External logical files corresponding weights
7 10 15 against each function,
(ILF) and the values are added
up to determine the UFP
External Interface files (Unadjusted Function
5 7 10 Point) of the subsystem.
(EIF)
The procedure for the calculation of Unadjusted Function Point (UFP) is given in table shown below.
Table 2: UFP Calculation Table
Weighting Factor
Domain Characteristics Count Count
low avg high
Number Of User Inputs * 3 4 6
Number Of User Outputs * 4 5 7
Number Of User Enquiries * 3 4 6
Number Of Files * 7 10 15
Number Of External Interfaces * 5 7 10
Count Total
Example 1:
Given the following values, compute function point when all complexity
adjustment factor (CAF) and weighting factors are average.
User Input = 50
User Output = 40
User Inquiries = 35
User Files = 6
External Interface = 4
Explanation:
Step-1: As complexity adjustment factor is average (given in question), hence, scale = 3.
• F = 14 * 3 = 42
• Step-2: CAF = 0.65 + ( 0.01 * 42 ) = 1.07
• Step-3: As weighting factors are also average (given in question) hence we will multiply
each individual function point to corresponding values in TABLE.UFP.
• Total Count= (50*4) + (40*5) + (35*4) + (6*10) + (4*7) = 628
• Step-4: Function Point = 628 * 1.07 = 671.96
Example 2
• Study of requirement specification for ABC project has
produced following results –
• need for
- 7 inputs,
- 10 outputs,
- 6 inquiries,
- 17 files &
- 4 external interfaces.
• Input & external interface FP attributes are of Average
Complexity & all other FP attributes are of – Low Complexity
• Determine – adjusted FPs assuming Complexity Adjustment
Value is 32
Weighting Factor
Domain Characteristics Count Count
Simple Average Complex
Number Of User Inputs 7 X 4 28
Number Of User Outputs 10 X 4 40
Calculation of
UFP Number Of User Enquiries 6 X 3 18
Number Of Files 17 X 7 119
Number Of External 4 X 7 28
Interfaces
Count Total 233
FP = Count Total (UFP) * {(0.65 + 0.01) * Sum(Fi)}
= 233 * {(0.65 + 0.01) * 32}
• = 233 * 0.97
• = 226.01
• Hence, adjusted FP = 226.01
An application has the following:
• 10 low external inputs,
• 12 high external outputs,
• 20 low internal logical files,
• 15 high external interface files,
Example • 12 average external inquiries,
• and a value of complexity adjustment factor
of 1.10.
• What are the unadjusted and adjusted
function point counts ?