Function-Oriented Metrics
Function Point (FP) is a weighted measure of
software functionality.
The idea is that a product with more functionality will
be larger in size.
Function-oriented metrics are indirect measures of
software which focus on functionality and utility.
The first function-oriented metrics was proposed by
Albrecht (1979~1983) who suggested a productivity
measurement approach called the Function Point (FP) method.
Function points (FPs) measure the amount of functionality
in a system based upon the system specification.
Estimation before implementation!
Function Point (FP) Standards
Standard Name Content
ISO/IEC IFPUG 4.1
Unadjusted functional size measurement
14143-1:2000 method -- Counting practices manual
IFPUG Function Points VS 4.1
(unadjusted)
ISO/IEC IFPUG 4.2
Unadjusted functional size measurement
20926:2004 method -- Counting practices manual
IFPUG Function Points VS 4.2
(unadjusted)
ISO/IEC COSMIC-FFP A functional size measurement method
19761:2003 COSMIC Full Function Points Vs. 2.2
ISO/IEC Mark II Function Counting Practices Manual Mark II
20968:2002 Point Analysis Function Points
Function Point (FP) /1
External
External
Outputs
Inputs (EO)
(EI)
Inquiries (EQ)
External Interface files (EIF)
Internal Logic files (ILF)
Function Point (FP) (cont.)
Function Point (FP) is a weighted measure of software
functionality.
FP is computed in two steps:
1. Calculating Unadjusted Function point Count
(UFC).
2. Multiplying the UFC by a Value Adjustment
Factor (VAF)
The final (adjusted) Function Point is:
FP = UFC × VAF
IFPUG Terminology
FP Counting Summary
1. External Inputs (EI)
External Inputs - IFPUG Definition:
An external input (EI) is an
elementary process that processes data
or control information that comes
from outside the application boundary
The primary intent of an EI is to
maintain one or more ILFs and/or to
alter the behavior of the system
Example:
Data entry by users
Data or file feeds by external applications
2. External Outputs (EO)
External Outputs - IFPUG Definition:
■ An external output (EO) is an elementary process that
sends data or control information outside the application
boundary
■ 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
Example:
Reports created by the application being counted, where
the reports include derived information
3. External Inquiries (EQ)
■ External Inquiries - IFPUG Definition:
An external inquiry (EQ) is an elementary
process that sends data or control information
outside the application boundary
The primary intent of an external inquiry is to
present information to a user through the
retrieval of data or control information from
an ILF or EIF
The processing logic contains no
mathematical formulas or calculations, and
creates no derived data
No ILF is maintained during the processing,
nor is the behavior of the system altered
Example:
Reports created by the application being
counted, where the report does not include any
derived data
4. Internal Logical Files (ILF)
■ Internal Logical Files - IFPUG
Definition:
An ILF is a user-identifiable group of logically
related data or control information maintained
within the boundary of the application
The primary intent of an ILF is to hold data
maintained through one or more elementary
processes of the application being counted
Example:
Tables in a relational database
Application control information, perhaps
things like user preferences that are stored
by the application
5. Ext. Interface Files (EIF)
■ External Interface files -IFPUG
Definition:
■ An external interface file (EIF) is a user
identifiable group of logically related data or
control information referenced by the
application, but maintained within the
boundary of another application
■ The primary intent of an EIF is to hold data
referenced through one or more elementary
processes within the boundary of the
application counted
■ This means an EIF counted for an
application must be in an ILF in another
application
Example:
As for ILF, but maintained in different systems
FP Counting Summary
Unadjusted FP Count (UFC)
A complexity rating is associated with each count according to
function point complexity weights, below:
UFC = 4 NE1 + 5 NEO + 4 NEQ + 7 NEIF +10 NILF
Low High
Average
(Simple) (Complex)
External inputs (NEI) 3 4 6
External outputs (NEO) 4 5 7
External inquiries (NEQ) 3 4 6
External interface files (NEIF) 5 7 10
.Internal logical files (NILF) 7 10 15
FP Counting: Weighting of Technical
Complexity
Function Types - Complexity Assessment
How to assess complexity?
Data Function Types Transaction Function Types
Internal Logical Files External Interface External External External
(ILF) Files (EIF) Input Output Inquiry _
(EI) (EO) (EQ)
Elements
REcord Types (RET): User File Type Referenced (FTR):
evaluated for
recognizable sub groups of data File type referenced by a
technical
elements within an ILF or an EIF. It is transaction. An FTR must be an
complexity
best to look at logical groupings of Internal Logical File (ILF) or External
assessment
data to help identify them. Interface File (EIF).
Data Element Types (DET): A unique user recognizable, non-recursive
(non-repetitive) field containing dynamic information. If a DET is recursive
then only the first occurrence of the DET is considered not every occurrence.
Complexity Assessment: EI
■ Identify number of File Types Referenced (FTR)
■ Identify number of Data Element Type (DET)
■ Determine complexity weight (used to calculate
FP count)
#DET .
EI
1-4 5-15 > 15
1 low (3) low (3) average (4)
#FTR 2 low (3) average (4) high (6)
>2 average (4) high (6) high (6)
External Input - Example
Enter a new employee with
Monthly Payment:
■ Name
■ ID
■ Birth Date
■ Payment Reference
■ Salary Level
#DET
EI
1-4 5-15 > 15
1 FTR 1 low (3) low (3) average (4)
5 DET
#FTR 2 low (3) average (4) high (6)
>2 average (4) high (6) high (6)
EI - Example
■ Enter a new employee
with Weekly Payment:
Name
ID
Birth Date
Payment
Reference
Hourly
Rate
Payment
Office
1 FTR #DET
6 DET EI
1-4 5-15 > 15
1 low (3) low (3) average (4)
#FTR 2 low (3) average (4) high (6)
>2 average (4) high (6) high (6)
Complexity Assessment: EO
■ Identify number of File Types Referenced (FTR)
■ Identify number of Data Element Type (DET)
■ Determine complexity weight ( used to calculate
FP count)
#DET
EO
1-5 6-19 > 19 '
1 low (4) low (4) average (5)
#FTR 2-3 low (4) average (5) high (7)
>3 average (5) high (7) high (7)
EO - Example
■ Report of all Employees containing Names and
Birth Dates, sorted by age.
#DET
EO
1-5 6-19 > 19
1 low (4) low (4) average (5)
#FTR 2-3 low (4) average (5) high (7)
>3 average (5) high (7) high (7)
Complexity Assessment: EQ
■ Identify number of File Types Referenced (FTR)
■ Identify number of Data Element Type (DET)
■ Determine complexity weight (used to calculate
FP count)
#DET
EQ
1-5 6-19 > 19
1 low (3) low (3) average (4)
‘ #FTR 2-3 low (3) average (4) high (6)
>3 average (4) high (6) high (6)
EQ - Example
Report of all employees belonging to
Department X containing Names, Birth
Dates, and showing the Department Name
Files (ILF): Employee, Department
2 FTR: Employee, Department
3 DET: Name (Employee), Birth Date
(Employee), Department Name
(Department)
#DET
EQ
1-5 6-19 > 19
1 low (3) low (3) average (4)
#FTR 2-3 low (3) average (4) high (6)
>3 average (4) high (6) high (6)
Complexity Assessment: ILF
■ Identify number of Record Types (RET)
■ Identify number of Data Element Type (DET)
■ Determine complexity weight (used to calculate
FP count)
#DET
ILF
1-19 20-50 > 50
low (7) low (7) average
1
(10)
#RET 2-5 low (7) average high (15)
(10)
>5 average (10) high (15) high (15)
ILF - Example
-1 •
#DET
ILF
1-19 20-50 > 50
1 low (7) low (7) average (10)
#RET 2-5 low (7) average (10) high (15)
>5 average (10) high (15) high (15)
Complexity Assessment: EIF
■ Identify number of Record Types (RET)
■ Identify number of Data Element Type (DET)
■ Determine complexity weight (^ used to calculate
FP count)
#DET
EIF
1-19 20-50 > 50
1 low (5) low (5) average (7)
‘ #RET 2-5 low (5) average (7) high (10)
>5 average (7) high (10) high (10)
EIF - Example
FP Counting Example - GUI
FP Counting Summary
Value Adjustment Factor (VAF) /1
■ Value Adjustment Factor (VAF) (aka. Technical
complexity factors) is a weighted sum of 14
components, given below:
F1 Data Communications F8 On-line Update .
Distributed Data
F2 Processing F9 Complex Processing
F3 Performance F10 Reusability
Heavily Used
F4 Configuration F11 Installation Ease
F5 Transaction Rate F12 Operational Ease
F6 On-line Data Entry F13 Multiple Sites
F7 End-User Efficiency F14 Facilitate Change
Value Adjustment Factor (VAF)
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, in either response or throughput, influence
(or will influence) the design, development, installation and
support of the application.
Heavily Used Configuration: A heavily used operational
configuration, requiring special design considerations, is a
characteristic of the application.
Transaction Rate: The transaction rate is high and
influences the design, development, installation and support.
On-line Data Entry: On-line data entry and control
information functions are provided in the application.
End-User Efficiency: The on-line functions provided
emphasize a design for
Value Adjustment Factor (VAF)
On-line Update: The application provides on-line update for the internal
logical files.
Complex Processing: Complex processing is a characteristic of the
application.
Reusability: The application and the code in the application have been
specifically designed, developed and supported to be usable in other
applications.
Installation Ease: Conversion and installation ease are characteristics of the
application. A conversion and installation plan and/or conversion tools were
provided and tested during the system test phase.
Operational Ease: Operational ease is a characteristic of the application.
Effective start-up, backup and recovery procedures were provided and tested
during the system test phase.
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.
Value Adjustment Factor (VAF) /2
Each component is rated from 0 to 5, where 0 means the
component is not relevant to the system and 5 means the
component is essential.
VAF can then be calculated as:
VAF varies from 0.65 (if all Fj are set to 0) to 1.35 (if all
Fj are set to 5)
Final Function Point is: FP = UFC x VAF