Effort Estimation with FP
Monday, 23 April 2012
Sunday, 1 April 2012
Effort Estimation with FP
Objective:
How to use Function Point Count
to derive project effort.
Scope:
This article will give a practical approach to using "Function point".
Out Of Scope:
Acronyms:
1. FP: Function Point
2. ILF: Internal Logical File.
3. EIF: External Interface file
4. EI: External Inputs
5. EO: External Outputs
6. EQ: External Enquiries
7. RET: Record Element Type
8. DET: Data Element Type
9. FTR: File Type Reference
10. GSC: General System
Characteristic
11. VAF: Value Added Factor
FP
Counting Diagram
FP
Complexity Table
Probelm Context / User Requirements:
We need to develop below module
for our system.
Customer Maintenance include customer creation,
customer modification, view customer report.
Customer Creation
Application requires ability to
create a new customer. Customer Information has following data to be stored
First Name, Last Name, Middle Name,
street address1, street address2, Gender, Email ID, Language code.
Please note that there is a combo
box for language and is populated from a separate file in a reference data. he combo box list shows code,
name.
Customer Modification
Application requires ability to
update or modify customer information. Following information that can be
modified
First Name, Last Name, Middle Name,
street address1, street address2, Email ID, Language code.
View Report
The application requires ability to display all customer records and has field like First Name, Last Name, Middle Name, street address1, street address2, Email ID.
Following
steps are followed.
Step 1.
Identify type of FP count.
FP count may be development, application or
Enhancement. Depending on the type,
FP formula varies.
FP formula varies.
For our example it is Development FP Count.
Step 2.
Identify application boundary or scope of count.
Scope of
count means functionality system is going to deliver, screen collected, data to
be stored in application and data to be sent out of application or referred
from outside application boundary. With respect to above requirement, please
see below application boundary.
Step
3.Determine Unadjusted function point count.
To
determine unadjusted function point, we have to identify Data Function and
Transaction Function.
Data
Function:
Data
functions represent the functionality provided to the user to meet internal and
external data requirements.
Data
functions are either internal logical files (ILF) or external interface files (EIF).
The
functional complexity of each ILF and EIF is determined based on the number of
Data Element Types (DET) and Record Element Types (RET) associated with the ILF
or EIF ILF means logical data that reside in application boundary.
EIF means
data being referred externally or sent to external application. Find FP count
for Data Function Point ILF and EIF form data function point.
With
respect to above application boundary, we identified
Customer
Details is ILF- has DET=8 (total no of fields of Customer screen) and RET=1 (No
subgroup found for customer details).
Based on
ILF complexity metric, complexity=low and FP count=7.
Language
File is EIF has DET fields like language code and name, so DET count=2 and
RET=1 (No subgroup found for customer details).
Based on
EIF complexity metric, complexity=low and FP count=5
Data
function point count = 7 + 5
= 12.
Transaction
Function
Transaction
functions represent the functionality provided to the user for the processing
of data by an application.
Transaction
functions are either external inputs (EI), external outputs (EO) or external
queries (EQ)
The
functional complexity of a Transaction Function is determined based on the
number of Data Element Types (DETs) and File Types Referenced (FTRs).
With respect
to above requirement, we have identified transaction functions.
Create
Customer(EI) has det count=8 (total no of fields of Create Customer screen) and
FTR count=1 ( referes to customer details(ILF)) .
Based on
EI complexity metrics table, complexity=low and FP count=3.
Modify Customer
(EI) has det count=7 (total no of fields of Modify Customer screen) and FTR
count=1 (refers to customer details (ILF)).
Based on
EI complexity metrics table, complexity=low and FP count=3.
Population
of language combo box (EQ) has det (count=2) fields like language code and name
and FTR=1 (refers to Language File (EIF)).
Based on
EQ complexity table, complexity=low and FP count=3.
View
Customer report (EQ) has det =6 and FTR=1 (refers to ILF).
Based on
EQ complexity table, complexity=low and FP count=3.
EO is not
applicable in this example.
So transaction
function count=3+3+3+3 =12.
Unadjusted
FP count = data function count + transaction function count.
Unadjusted
FP count= 12 + 12
= 24.
Step 4.
Determine Value Adjustment Factor.
The Value
Adjustment Factor consists of 14 General System Characteristics', or GSCs.
These
GSCs represent characteristics of the application under consideration. Each is
weighted on a scale from 0 (low) to 5 (high).
GSC
|
Value (0-5)
|
Data Communication
Distributed data processing
Performance
Heavily used configuration
Transaction rate
Online data entry
End user efficiency
Online update
Complex processing
Reusability
Installation ease
Operational ease
Multiple sites
Facilitate Change
|
1
1
4
1
1
1
4
0
3
0
4
4
0
0
|
Total
|
24
|
VAF =
(sum of all 14 GSC *0.01) + 0.65
VAF = (24
* 0.01) + 0.65
VAF=0.89
VAF range is 0.65 to 1.35
Step 5 Calculate Adjusted FP Count
Adjusted FP count = Unadjusted
FP Count * VAF
Adjusted FP count = 24 *
0.89
Adjusted FP count = 21.36
= 22
Step 6 Calculate Effort
Effort= Adjusted FP Count *
Productivity Factor.
Please check value for
Productivity Factor in your organization.
Assume Productivity Factor= 15
hr/FP
Effort= 22 * 15
Effort= 330 hr
Conclusion :
We have calculated project effort
using Function Point Count.
Resource :
Resource :
For detail FP Counting Practice, Visit
http://www.ifpug.org/publications/manual.htm
Subscribe to:
Posts (Atom)