Software Project Management: Durga Prasad Mohapatra Professor CSE Deptt. NIT Rourkela
Software Project Management: Durga Prasad Mohapatra Professor CSE Deptt. NIT Rourkela
Number
of file types
‘system
model size’
Numbers of input
and output transaction types
Parametric models for Size
We shall examine four parametric models more closely :
1.Albrecht/IFPUG function points
2.Symons/Mark II function points
3.COSMIC function points
4.COCOMO81 and COCOMO II
International Function Point Users Group
(IFPUG)
Purpose
• To promote and encourage use of Function Points
• To develop consistent and accurate counting guidelines
Benefits
• Networking with other counters
• IFPUG Counting Practices Manual
• Research projects
• Hotline
• Newsletter
• Certification
Extent of Usage:
• Member companies include all industry sectors
• Over 1200 members in more than 30 countries
Albrecht/IFPUG function point analysis
Albrecht worked at IBM:
◦ Needed a way of measuring the relative productivity of
different programming languages.
◦ Needed some way of measuring the size of an
application without counting lines of code.
Identified five parameters:
◦ Counted occurrences of each type of functionality in
order to get an indication of the size of an information
system
◦ It is a top-down approach
Why IFPUG Thinks One Should Not Use LOC?
Lines of code tend to reward profligate design and
penalize concise design
There is no industry standards (ISO or otherwise) for
lines of code
Lines of code cannot be used for normalizing across
platform, language or by organization
Some 4GL do not even use lines of code
Lines of code can be misleading.
How Do Function Points Overcome LOC
Problems?
Function points are independent of the language, tools, or
methodologies used for implementation
Function points can be estimated early in analysis and design
Since function points are based on the user’s external view
of the system:
◦ Non-technical users of the software have a better
understanding of what function points are
measuring
Objectives of Function Point Counting
Measure functionality that the user requests and receives…
Measure software development and maintenance
independently of technology used for implementation…
Simple enough to minimize the overhead of the
measurement process…
A consistent measure among various projects and
organizations …
When Should You Count Function Points?
Early and often
◦ The sooner you can quantify what a project is delivering,
the sooner it is under control
Under IFPUG 4.1, there are rules and guidelines:
◦ Make it possible to count function points once the
requirements have been finalized
◦ The estimate of size in function points can be refined
continuously through out the development cycle.
Function points should be recounted throughout the
development process: Can measure scope creep and
breakage
Count Data
Determine
Functions
Unadjusted
Function Point
Count
Count
FP Computation Steps
Identify Transactional
Counting Functions Calculate
Scope and Adjusted Function
Application Point Count
Determine Value
Boundary
Adjustment
Factor
Key Components in Function Point Analysis
External Input Count each unique user data or user control input type that (i)
(Inputs) enters the external boundary of the software system being measured
and (ii) adds or changes data in a logical internal file.
External Output Count each unique user data or control output type that leaves the
(Outputs) external boundary of the software system being measured.
Internal Logical File Count each major logical group of user data or control information
(Files) in the software system as a logical internal file type. Include each
logical file (e.g., each logical group of data) that is generated, used, or
maintained by the software system.
External Interface Files passed or shared between software systems should be counted
Files (Interfaces) as external interface file types within each system.
External Inquiry Count each unique input-output combination, where an input causes
(Queries) and generates an immediate output, as an external inquiry type.
Definition of External input
An External Input (EI) processes data that comes from outside
the application’s boundary.
External Input
1.0
ON-LINE UPDATE
ENTRY Transaction CUSTOMER
INFORMATION
Multi-Screen
External Output
1.0
Category CATEGORIZE
END Summary CUSTOMER
USER INFO
Definition of An Inquiry
An External Inquiry (EQ) is an output that results in data
retrieval. The result contains no derived data.
External Inquiry
1.0
END Selected DISPLAY
USER Customer CUSTOMER
Info INFO
Definition of An IL File
An Internal Logical File (ILF) is a user-identifiable group of logically related
data that is maintained within the boundary of the application.
END
USER
1.0
UPDATE
CUSTOMER
INFO
Customer Info
A1 10 2 4
A2 10 3 6
A3 1 25 1
A4 10 10 9
A5 4 10 5
A6 26 9 2
A7 5 11 8
A8 14 4 5
A9 22 7 4
A10 6 6 4
A11 9 9 7
A12 3 24 5
Ni = 120 No = 120 Ne = 60
Albrecht complexity multipliers
External user Low Medium High
types complexity complexity complexity
External input type 3 4 6
External output type 4 5 7
External inquiry type 3 4 6
Logical internal file 7 10 15
type
External interface 5 7 10
file type
IFPUG file type complexity
Number of Number of data types
record types
FP = UFP * VAF
= 55 * 1.01
= 55.55
Example 3
A Payroll application has:
1. Transaction to input, amend and delete employee details – an
EI that is rated of medium complexity
2. A transaction that calculates pay details from timesheet data
that is input – an EI of high complexity
3. A transaction of medium complexity that prints out pay-to-
date details for each employee – an EO of medium complexity
4. A file of payroll details for each employee – assessed as of
medium complexity LIF
5. A personnel file maintained by another system is accessed for
name and address details – a simple EIF
What would be the FP counts for these?
External Low Medium High
user types complexit complexit complexit
FP counts External
y
3
y
4
y
6
input type
External 4 5 7
1. Medium EI = 4 FPs output
type
2. High complexity EI = 6 FPs External 3 4 6
inquiry
3. Medium complexity EO = 5 FPs type
Logical 7 10 15
4. Medium complexity LIF = 10 FPs internal
file type
External 5 7 10
5. Simple EIF = 5 FPs interface
file type
Total (UFP) = 30 FPs
You may compute the AFP considering all the influence values medium.
Exercise 1: Tic-Tac-Toe Computer Game
As soon as either of the human player or the computer wins,
◦ A message announcing the winner should be displayed.
If neither player manages to get three consecutive marks
along a straight line,
◦ And all the squares on the board are filled up,
◦ Then the game is drawn.
The computer always tries to win a game.
Exercise 2
It is needed to develop an Alumni Repository software for
IIM, Ranchi. The software will extract the details of
students from the existing academic software of IIM,
Ranchi. It will provide an online display of the Alumni
names. The details of the Alumni can be entered by any one
by double clicking on the Alumni name. The details of
Alumni would be stored in a file. It should be possible to
print out a report detailing all alumni.
Determine UFP.
Exercise 3: Supermarket Prize Scheme
A supermarket needs to develop the following software to encourage regular customers.
TO register, a customer needs to supply his/her residence address, telephone number, and
the driving license number.
Each customer who registers for this scheme is assigned a unique customer number (CN)
by the computer.
Based on the generated CN, a clerk manually prepares a customer identity card after
getting the market manager’s signature on it.
A customer can present his customer identity card to the check out staff when he makes
any purchase. In this case, the value of his purchase is credited against his CN.
At the end of each year, the supermarket intends to award surprise gifts to 10 customers
who make the highest total purchase over the year. Also, it intends to award a 22 caret gold
coin to every customer whose purchase exceeded Rs.10,000/-.
The entries against the CN are reset on the last day of every year after the prize winners’
lists are generated.
Exercise 4
Calculate Unadjusted Function Point (UFP), Complexity Adjustment Factor (CAF) and
Function Point (FP) for the following problem.
Number of user inputs=32
Number of user outputs=60
Number of user inquiries=24
Number of files=8
Number of external interfaces=2
Assume all weighting factors to be average and all complexity adjustment values to be average.
Exercise 5
Calculate Unadjusted Function Point (UFP), Complexity Adjustment Factor (CAF) and
Function Point (FP) for the following problem.
Number of user inputs=24 (Weighting factor is average)
Number of user outputs=46 (Weighting factor is simple)
Number of user inquiries=8 (Weighting factor is complex)
Number of files=4 (Weighting factor is average)
Number of external interfaces=2 (Weighting factor is simple)
The various complexity adjustment values are 4, 1, 0, 3, 3, 5, 4, 4, 3, 3, 2, 2, 4, 5.
Summary
Discussed Albrecht/IFPUG function points analysis
Also, discussed the steps to compute FP count
Presented Albrecht/IFPUG function point parameters
Explained Albrecht/IFPUG function points counting with
some suitable examples.
References :