6.project Cost and Effort Management
6.project Cost and Effort Management
IT Project Management
8
A taxonomy of estimating methods
Bottom-up: activity based, analytical
Parametric or algorithmic models (top-down)
◼ e.g. function points, COCOMO
Expert opinion - just guessing?
Analogy - case-based, comparative
9
Bottom-up estimating
1. Break the project into smaller and smaller
components
2. Stop when you get to what one person
can do in one/two weeks
3. Estimate costs for the lowest - level
activities
4. At each higher level calculate the
estimate by adding estimates for lower
levels
10
Top-down estimates
Produce overall
Estimate estimate using
overall 100 days
effort driver(s)
project
Distribute
proportions of
overall estimate to
design code test components
30% 30% 40%
i.e. i.e. i.e. 40 days
30 30 days
days
11
Algorithmic/Parametric models
Number
of file types
‘system
model
size’
Numbers of input
and output transaction types
System
Estimated effort
size
Productivity factors
(from historical project data)
12
Expert judgement
Asking someone familiar with and
knowledgeable about the application area
and the technologies to provide an
estimate
Particularly appropriate where existing
code is to be modified (i.e. change impact
analysis)
Research shows that an expert 's
judgement in practice tends to be based
on analogy
13
Estimating by analogy (case-based reasoning)
Use effort
source cases (i.e.
completed projects from source as
estimate
attribute values effort
15
Albrecht/IFPUG function points
Developed by Allan Albrecht in 1979 at IBM
cont… 17
Albrecht/IFPUG function points - continued
◼ Transaction Functions:
External Inputs (EIs): input transactions which
update ILFs.
▪ E.g. Data entry by users, data or file feeds by external
applications.
External Outputs (EOs): transactions which extract
and display data from ILFs.
▪ E.g. Reports created by your application where the
reports include derived information (i.e. your
application needs to do some computation)
External Queries (EQs): user initiated transactions
which provide information but do not update ILFs.
▪ E.g. Reports created by your application but the reports
do not contain any derived data. (i.e. your application
does not do any computation)
18
Albrecht/IFPUG function points - continued
Data functions:
◼ Internal Logical Files (ILFs)
◼ External Interface Files (EIFs)
Transactional functions:
◼ External Inputs (EIs)
◼ External Outputs (EOs)
◼ External Queries (EQs)
How to count function points
Albrecht complexity multipliers
EI 3 4 6
EO 4 5 7
EQ 3 4 6
ILF 7 10 15
EIF 5 7 10
21
Examples
Payroll application has:
A transaction of medium complexity to input, amend and
delete employee details
◼ an EI that is rated of medium complexity
A transaction of high complexity that calculates and
updates pay details from timesheet data that is input
◼ an EI of high complexity
A transaction of medium complexity that computes and
prints out pay-to-date details for each employee
◼ an EO of medium complexity
A file of payroll details for each employee (medium
complexity)
◼ assessed as of medium complexity ILF
A simple personnel file maintained by another system is
accessed for name and address details
◼ a simple, i.e. low-complexity, EIF
22
What would be the FP counts for these?
Low Medium High
complexity complexity complexity
FP counts EI
EO
3
4
4
5
6
7
EQ 3 4 6
ILF 7 10 15
EIF 5 7 10
1. Medium EI 4 FPs
2. High complexity EI 6 FPs
3. Medium complexity EO 5 FPs
4. Medium complexity LIF 10 FPs
5. Simple EIF 5 FPs
Total 30 FPs
23
Albrecht/IFPUG function points
How to assess complexity?
For data functions, the rating is based on:
◼ RET: the number of Record Element Types (i.e.
subgroup of data elements) in an ILF or EIF
E.g. a customer file that contains Name, Address, and
so on. In addition, all the credit cards and credit card
numbers of the customer are contained in the file.
Hence, there are two RETs in the Customer File.
◼ DET: the number of Data Element Types (i.e.
unique, non-repeated field) in an ILF or EIF.
Data Element Types (DETs)
RETS
1-19 20-50 51+
1 Low Low Medium
2 to 5 Low Medium High
6 or more Medium High High
Example
An internal logical file contains data about purchase orders.
These orders are organized into two separate record types:
the main purchase order details (including purchase order
number, supplier reference and purchase order date) and
details for each Purchase-Order-Item specified in the order
(including product code, unit price, and number ordered).
Note:
1. This screen is used to add a new customer to an application. The OK
command button and the Next command button both add the new customer
to the database.
2. In GUI applications, a data element (DET) is information that is stored on an
internal logical file or that is used to invoke a transaction
Pen and paper exercise
Application A receives input from running a batch input file. The
batch file is one physical file but contains many different types of
records. The first field is a record identifier number. The record
identifier number can range from 1-75. The second field describes
if the record is new and adds to the file, changes a previous
batch input or a deletes a previous batch input (add, change and
delete).
Depending on the record identifier number there is a
unique set of data elements, a different set of files are
updated and referenced, and different processing logic is
followed.
Every single record identifier number updates more than 3 files
(has more than 3 FTRs) and contains more than 5 data elements.
How many function points does this one batch input represent?
How to count function points
Determine Value Adjustment Factor
2. Distributed data processing How are distributed data and processing functions handled?
9. Complex processing Does the application have extensive logical or mathematical processing?
10. Reusability Was the application developed to meet one or many user’s needs?
14. Facilitate change Was the application specifically designed, developed, and supported to
facilitate change?
Determine Value Adjustment Factor (VAF)
The calculation of VAF is based on the TDI
(Total Degree of Influence of the 14
General system characteristics)
◼ TDI = Sum of (DI of 14 General System
Characteristics) where DI stands for Degree of
Influence.
◼ VAF = 0.65 + (0.01 * TDI)
Finally, the Adjusted Function Points or
Function Points are
◼ FP = UFP * VAF
where UFP is Unadjusted Function Points.
Example
36
Further source: Barry Boehm et al. Software estimation with COCOMO II, Prentice-Hall 2002
The COCOMO constants
System type c k
Organic (broadly, information 2.4 1.05
systems)
Semi-detached 3.0 1.12
Embedded (broadly, real- 3.6 1.20
time)
effort = c x sizek
COCOMO II
An updated version of COCOMO:
There are different COCOMO II models for
estimating at the ‘early design’ stage and the
‘post architecture’ stage when the final system is
implemented. We’ll look specifically at the first.
The core model is:
pm = A(size)(sf) ×(em1) ×(em2) ×(em3)….
where:
pm = person months,
A is 2.94,
size is number of thousands of lines of code,
sf is the scale factor, and 38
em is an effort multiplier
COCOMO II Scale factor
Based on five factors which appear to be particularly sensitive to
system size
1. Precedentedness (PREC): degree to which there are past
examples that can be consulted
2. Development flexibility (FLEX): degree of flexibility that
exists when implementing the project
3. Architecture/risk resolution (RESL): degree of uncertainty
about requirements
4. Team cohesion (TEAM): degree to which there is a large
dispersed team (e.g. in different locations) as opposed to
there being a small tightly knit team.
5. Process maturity (PMAT): degree to how structured and
organized the way the software is produced.
39
COCOMO II Scale factor values
42
Effort multipliers
As well as the scale factor effort multipliers
are also assessed:
RCPX Product reliability and complexity
RUSE Reuse required
PDIF Platform difficulty
PERS Personnel capability
FCIL Facilities available
SCED Schedule pressure
43
Effort multipliers
Extra Very low Low Nominal High Very Extra
low high high
RCPX 0.49 0.60 0.83 1.00 1.33 1.91 2.72
44
Example
Say that a new project is similar in most characteristics to
those that an organization has been dealing for some time
except
◼ the software to be produced is exceptionally complex
and will be used in a safety critical system.
Product reliability and complexity (RCPX) is very high.
◼ the software will interface with a new operating system
that is currently in beta status.
Platform difficulty (PDIF) is very high
◼ to deal with this the team allocated to the job are
regarded as exceptionally good, but do not have a lot of
experience on this type of software.
Personnel experience (PREX) is ranked nominal.
Personal capability (PERS) is ranked extra high.
45
Example -continued
RCPX very high 1.91
PDIF very high 1.81
PERS extra high 0.50
PREX nominal 1.00
All other factors are nominal
46
Pen and paper exercise
A new project has “average” novelty for the software supplier
that is going to execute it and is thus given a nominal rating on
this account for precedentedness. Development flexibility is
high, but requirements may change radically and so the risk
resolution exponent is rated very low. The development team
area all located in the same office and this leads to team
cohesion being rated as very high. The software company as a
whole tends to be very informal in its standards and procedures,
and the process maturity driver has therefore been given a
rating of low.
What would be the scale factor (sf) in this case?
What would be the (unadjusted) estimate of effort of the size
of the application was estimated as around 2000 lines of
code?