0% found this document useful (0 votes)
21 views

Function Point Analysis

Uploaded by

fatimabbajwa27
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views

Function Point Analysis

Uploaded by

fatimabbajwa27
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 28

Software Metrics

Instructor: Muhammad Ikram ul Haq


Metrics
• A system or standard of measurement.
• A metric is a quantifiable measure that is used to track and assess the status of a
specific process

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:

– Number of external inputs (EIs)


• Originate from user or from another application
– Number of external outputs (EOs)
• Derived data in application like reports, screens, errors
– Number of external inquiries (EQs)
• An input that results in immediate software response
– Number of internal logical files (ILFs)
• Logical grouping of data
– Number of external interface Files (ELFs) 9
Function Point Size Estimates(cont.)
• Function points are counted by first tallying the number of each type of
function.
• These function point totals are subsequently adjusted by applying complexity
measures to each type of function point.
• The sum of the total complexity-adjusted function points (for all types of
function points) becomes the total adjusted function point count.
•.

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

External inputs = password, panic button and active/deactivate


External Inquiry = zone inquiry, and sensor inquiry
Internal logical files = system configuration file
Two external outputs = message and sensor status
External interface files = test sensor, zone setting, active/deactivate, and alarm alert
Computing Function Points
Analyze information
domain of the Establish countfor input domain and
application system interfaces
and develop counts

Weight each count by weight


Assign level of complexity or
assessing complexity to each count

Assess influence of Grade significance of external factors,


global factors that affect i F
the application
such as reuse, concurrency, OS, ...

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

Factors are rated on an answering scale 0 (not important)-5 (very important)


Global factors
For each complexity adjustment factor (F), give a
rating on a scale of 0 to 5
0 - No influence
1 - Incidental
2 - Moderate
3 - Average
4 - Significant
5 - Essential
FP = Count Total * [ 0.65 + 0.01 * Σ(Fi) ]

 WHY OPT for FP MEASURES

 Independent of programming language


 Does not “penalize” inventive implementations
that require fewer LOC than others
Example
Analyze information
domain of the
application
and develop counts

Weight each count by


assessing complexity External inputs = password, panic button and
active/deactivate
External Inquiry = zone inquiry, and sensor
inquiry
Assess influence of Internal logical files = system configuration file
global factors that affect Two external outputs = message and sensor
the application
status
External interface files = test sensor, zone
setting, active/deactivate, and alarm alert
Compute
function points
Example
Analyze information
domain of the
application
and develop counts

Weight each count by


assessing complexity

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:

Optimistic LOC = 4600


Most Likely LOC= 6900
Pessimistic LOC= 8600

Estimated LOC For 3D = (Opt. + 4 Most Likely + Pessi.) / 6


= (4600 + 4 (6900) + 8600) / 6 = 6800
LOC
LOC-based estimation

Function Estimated LOC


User interface and control facilities (UCIF) 2300
Two-dimensional geometric analysis 5300
Three-dimensional geometric analysis 6800
Database management 3350
Computer graphics display facilities 4950
Peripheral control function 2100
Design Analysis Modules 8400

Estimated lines of code 33200


Suppose

Estimated LOC = 33200


Organizational Average Productivity = 620 LOC / pm
Labor Rate = Rs. 8000 / month

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

Estimated Effort = Estimated LOC / Productivity = 33200 / 620 = 54 PM


Class Activity
Higher Education Learning Platform (HELP) is a learning platform designed to
provide an integrated system to create personalized learning environments.
Standardization is one of the key component in HELP to bring all universities on
one platform. Following are different features of HEPL.
• 1.Assignment 3 Quiz
• 1.1 Assignment Overview • 3.1 Create Quiz
• 1.2 To Create Offline New • 3.2 Editing sessions
Assignment • 3.3 Quiz Feedbacks
• 1.3 Advance Assignment Setting • 4. Grade Book
• 1.4 Grading and feedback • 4.1 Create Category
• 1.5 Uses of Assignment • 4.2 Grade Aggregation Method
• 2 Attendance • 4.3 Grade Setting
• 2.1 Attendance Overview • 4.4 Studnet Report View
• 2.2 Adding an Attendance activity • 4.5 Export & Import Grades
• 2.3 Adding sessions • 5 Groups 28
• 2.4 Editing sessions • 5.1 Create Group
• 2.5 Taking attendance • 5.2 Edit Group
• 2.6 Attendance Reports • 5.3 Delete Group

You might also like