Function Point Analysis
Function Point Analysis
2
Introduction
• Poor size estimation is one of the main reasons major software programs
ultimately fail.
• Size is the critical factor in determining cost, schedule, and effort.
• The failure to accurately predict results in budget overruns and late
deliveries.
• Size estimation is a complicated activity.
• A good measurement program is an investment in success.
• Size measures include source lines-of-code, function points, and feature
points.
3
Why to Measure Software Size
• One of the main reasons software programs fail is our inability to accurately
estimate software size.
• Given our shortcomings in size estimation, it is absolutely critical that you
measure, track, and control software size throughout development.
• You need to track the actual software size against original estimates for
the total build.
• Analysis is necessary to determine trends in software size and functionality
progress.
4
Why to Measure Software Size(Cont.)
• Data requirements for these measures should include:
• The number of distinct functional requirements
• Interface Requirement Specification
• The number of software units
• Software Design Description
• Source lines-of-code
5
Why to Measure Software Size(Cont.)
To indicate the quality of the product
To assess the productivity of the people who produce the product
To assess the benefits derived from new software engineering
methods and tools
To form a baseline for estimation
To help justify requests for new tools or additional training
Types of Metrics
Indirect measures
Quality, functionality, complexity, reliability, efficiency,
maintainability, …
Direct measures
Lines of codes (LOC), speed, cost, memory size, errors, ...
Measuring Software Size
• There are three basic methods for measuring software size:
• Source Line of Code (SLOC)
• Function points
• Feature points
8
Function Point Size Estimates
Function points, are the weighted sums of five different factors that
relate to user requirements:
10
Function Point Size Estimates(cont.)
• First you count the number of inputs, outputs, inquiries, logic files, and interfaces required.
• These counts are then multiplied by established values.
• The total of these products is adjusted by the degree of complexity based on the estimator’s
judgment of the software’s complexity.
• Complexity judgments are domain-specific and include factors such as
• data communications,
• distributed data processing,
• performance,
• transaction rate,
• on-line data entry,
• end-user efficiency,
• reusability,
• ease of installation,
• operation,
• change, or
• multiple site use. 11
• This process for our nominal program is illustrated next.
Function Point Size
Estimates(cont.)
Simple Average Complex Total
Inputs 3X ___ 4X _2_ 6X _2_ 20
Outputs 4X _1_ 5X _3_ 7X ___ 19
Inquiries 3X ___ 4X ___ 6X ___ 0
Files 7X ___ 10X _1_ 15X ___ 10
Interfaces 5X ___ 7X ___ 10X ___ 10
12
Example
Compute
function points FP = Count Total * [ 0.65 + 0.01 *
(Fi)]
Analyzing the Information Domain & weight
weighting factor
measurement parametercount simple avg. complex
number of user inputs X 3 4 6 =
number of user outputs X 4 5 7 =
number of user inquiries X 3 4 6 =
number of files X 7 10 15 =
number of ext.interfaces X 5 7 10 =
count-total
complexity multiplier
function points
Global factors
Assess influence of
global factors that affect
the application
Compute
function points
Source Line of Code Estimates
• Most SLOC estimates count all executable instructions and data declarations but
exclude comments, blanks, and continuation lines.
• SLOC can be used to estimate size through comparison— by comparing the new
software’s functionality to similar functionality found in other historic
applications.
• The most significant advantage of SLOC estimates is that they directly relate to
the software to be built. The software can then be measured after completion and
compared with your initial estimates.
• A large body of literature and historical data exists that uses SLOC, or thousands
of source lines-of-code (KSLOC), as the size measure.
• However, it is virtually impossible to estimate SLOC from initial requirements
statements.
• Their use in estimation requires a level of detail that is hard to achieve.
21
• These metrics can be further refined using productivity and quality equations
such as those found in the basic COCOMO model.
Lines of code
• What's a line of code?
• The measure was first proposed when programs were typed on cards with
one line per card;
• What programs should be counted as part of the system?
• This model assumes that there is a linear relationship between system size and
volume of documentation.
22
An Example of LOC-Based Estimation
Statement of Scope:
The mechanical CAD software will accept two- and three- dimensional
geometric data from an engineer. The engineer will interact and control
the CAD system through a user interface that will exhibit characteristics
of good human/machine interface design. All geometric data and other
supporting information will be maintained in a CAD database. Design
analysis modules will be developed to produce the required output,
which will be displayed on a variety of graphics devices. The software
will be designed to control and interact with peripheral devices that
include a mouse, digitizer, laser printer, and plotter.
23
How you get estimated LOC
3D geometric Analysis Function:
Find cost per LOC, Total Project Cost, and Estimated effort?
Cost per LOC = Labor Rate / Productivity = 8000 / 620 = Rs. 12.90 /LOC
Total Project Cost = Estimated LOC * cost Per LOC = 33200 * 12.90
= Rs. 428280