Date post: | 15-Jan-2016 |
Category: |
Documents |
View: | 221 times |
Download: | 0 times |
Software project management (intro)Software project management (intro)
Introduction to estimating Introduction to estimating development effortdevelopment effort
What makes a successful What makes a successful project?project?
Delivering:Delivering: agreed functionalityagreed functionality on timeon time at the agreed costat the agreed cost with the required with the required
qualityquality
Stages:Stages:
1. set targets1. set targets
2. Attempt to achieve 2. Attempt to achieve targetstargets
BUT what if the targets are not achievable?
Over and under-estimatingOver and under-estimating
Parkinson’s Law: Parkinson’s Law: ‘Work expands to fill ‘Work expands to fill the time available’the time available’
An over-estimate is An over-estimate is likely to cause likely to cause project to take project to take longer than it would longer than it would otherwiseotherwise
Weinberg’s Zeroth Weinberg’s Zeroth Law of reliability: ‘a Law of reliability: ‘a software project that software project that does not have to does not have to meet a reliability meet a reliability requirement can requirement can meet any other meet any other requirement’requirement’
A taxonomy of estimating A taxonomy of estimating methodsmethods
Expert opinion - just guessing?Expert opinion - just guessing?
Bottom-up - activity basedBottom-up - activity based
Parametric e.g. function pointsParametric e.g. function points
AnalogyAnalogy
artificial neural networks - a view of the artificial neural networks - a view of the future?future?
Parkinson and ‘price to win’Parkinson and ‘price to win’
Heemstra and Kusters surveyHeemstra and Kusters survey
Expert judgement Expert judgement 25.5%25.5%
Analogy Analogy 60.8%60.8%
‘‘Capacity problem’Capacity problem’ 20.8%20.8%
Price-to-winPrice-to-win 8.9%8.9%
Parametric modelsParametric models 13.7%13.7%
Heemstra and Kusters contd.Heemstra and Kusters contd.
Only 50% kept project data on past Only 50% kept project data on past projects - but 60.8% used analogy!projects - but 60.8% used analogy!
35% did not produce estimates35% did not produce estimates
62% used methods based on intuition - 62% used methods based on intuition - only 16% used formalized methodsonly 16% used formalized methods
Function point users produced worse Function point users produced worse estimates!estimates!
Top-down versus Bottom-upTop-down versus Bottom-up
Top-downTop-down produce overall estimate based on project produce overall estimate based on project
cost driverscost drivers based on past project databased on past project data
Bottom-upBottom-up use when no past project datause when no past project data
Top-down estimatesTop-down estimates
Produce overall Produce overall estimate using effort estimate using effort driver(s)driver(s)
distribute proportions distribute proportions of overall estimate to of overall estimate to componentscomponentsdesign code
overall project
test
Estimate100 days
30%i.e.30 days
30%i.e.30 days
40%i.e. 40 days
Bottom-up estimatingBottom-up estimating
1. Break project into smaller and smaller 1. Break project into smaller and smaller componentscomponents
[2. Stop when you get to what one person [2. Stop when you get to what one person can do in one/two weeks]can do in one/two weeks]
3. Estimate costs for the lowest level 3. Estimate costs for the lowest level activitiesactivities
4. At each higher level calculate estimate by 4. At each higher level calculate estimate by adding estimates for lower levelsadding estimates for lower levels
Parametric modelsParametric models
COCOMO (lines of code) and function COCOMO (lines of code) and function points examples of thesepoints examples of these
Problem with COCOMO etc:Problem with COCOMO etc:
guess algorithm estimate
but what is desired issystem
characteristicalgorithm estimate
Parametric models - continuedParametric models - continued
Examples of system characteristicsExamples of system characteristics no of screens x 4 hoursno of screens x 4 hours no of reports x 2 daysno of reports x 2 days no of entity types x 2 daysno of entity types x 2 days
the quantitative relationship between the the quantitative relationship between the input and output products of a process can input and output products of a process can be used as the basis of a parametric be used as the basis of a parametric modelmodel
Parametric models - the need Parametric models - the need for historical datafor historical data
simplistic model for an estimate simplistic model for an estimate estimated effort = (system size) / productivityestimated effort = (system size) / productivity
e.g.e.g.system size = lines of codesystem size = lines of code
productivity = lines of code per dayproductivity = lines of code per day
productivity = (system size) / effortproductivity = (system size) / effort based on past projects based on past projects
Parametric modelsParametric models
Some models focus on task or system Some models focus on task or system size e.g. Function Pointssize e.g. Function Points
FPs originally used to estimate Lines of FPs originally used to estimate Lines of Code, rather than effortCode, rather than effort
model
Number of file types
Numbers of input and output transaction types
‘systemsize’
Parametric modelsParametric models
Other models focus on productivity: e.g. Other models focus on productivity: e.g. COCOMOCOCOMO
Lines of code (or FPs etc) an inputLines of code (or FPs etc) an input
Systemsize
Productivity factors
Estimated effort
COCOMOCOCOMO
Based on industry productivity standards - Based on industry productivity standards - database is constantly updateddatabase is constantly updated
Allows an organization to benchmark its Allows an organization to benchmark its software development productivitysoftware development productivity
Boehm simple modelBoehm simple model E = a * (KLOC)E = a * (KLOC)bb
D = 2.5 (E)D = 2.5 (E)dd
COCOMO – Examples COCOMO – Examples
S/W Project ab bb db
Organic 2.4 1.05 0.38
Semi detached 3.0 1.12 0.35
Embedded 3.6 1.20 0.32
Coefficient table
Estimating by analogyEstimating by analogy
source cases
attribute values
effort
attribute values ?????
target case
attribute values
attribute values
attribute values
attribute values
attribute values
effort
effort
effort
effort
effortSelect case with closet attributevalues
Use effortfrom source as estimate
Anchor + adjustmentAnchor + adjustment
You are here:how do you get to red cross?
FOREST
go to tall buildingby line of sight
pace distance on a bearingN
FOREST
Estimating by analogyEstimating by analogy
Identify significant attributes (‘drivers’)Identify significant attributes (‘drivers’)
locate closest match amongst source locate closest match amongst source cases for targetcases for target
adjust for differences between source and adjust for differences between source and targettarget
Machine assistance for source Machine assistance for source selection (ANGEL)selection (ANGEL)
Nu
mb
er
of
inp
uts
Number of outputs
target
Source A
Source B
Euclidean distance = sq root ((It - Is)2 + (Ot - Os)2 )
It-Is
Ot-Os
Stages: identifyStages: identify
Significant features of the current projectSignificant features of the current project
previous project(s) with similar featuresprevious project(s) with similar features
differences between the current and differences between the current and previous projectsprevious projects
possible reasons for error (risk)possible reasons for error (risk)
measures to reduce uncertaintymeasures to reduce uncertainty
System size: function pointsSystem size: function points
Based on work at IBM 1979 onwardsBased on work at IBM 1979 onwards Albrecht and Gaffney wanted to measure the Albrecht and Gaffney wanted to measure the
productivity independently of lines of codeproductivity independently of lines of code has now been developed by the International has now been developed by the International
FP User Group (which is US based)FP User Group (which is US based) Mark II FPs developed by Simons mainly Mark II FPs developed by Simons mainly
used in UKused in UK
Albrecht function pointsAlbrecht function points
internal logical
files
external inputs external
outputs
external inquiries
external interface files
Function points are based onFunction points are based on
2 ‘data function’ types2 ‘data function’ types internal logical files (ILF)internal logical files (ILF) external interface files (EIF)external interface files (EIF)
3 ‘transactional function’ types3 ‘transactional function’ types external inputs (EI)external inputs (EI) external outputs (EO)external outputs (EO) external inquiries (EQ)external inquiries (EQ)
Each occurrence is judged Each occurrence is judged simple,simple, averageaverage or or complexcomplex
Albrecht FP weightingsAlbrecht FP weightings
TYPE SIMPLE AVERAGE COMPLEX
ILF (Internal Logical File) 7 10 15
EIF (External Interface File) 5 7 10
EI (External Input) 3 4 6
EO (External Output) 4 5 7
EQ (External Inquiry) 3 4 6
FP = count total * (0.65 + 0.01 * (Fi)); i = 1 to 14
Taking Complexity into Taking Complexity into AccountAccount
1. Data communications2. Backup and recovery3. Distributed functions4. Heavily used configurations5. Transaction rate6. On-line data entry7. On-line update8. End user efficiency9. Complex processing10. Installation ease11.Operational ease12.Multiple sites13.Facilitate change14.Reusable
0 (not important) to5 (very important)
Factors are rated on a scale
Questions for Complexity Adjustment
Values
Example: FP Example: FP ApproachApproach
number of user inputs number of user outputs number of user inquiries number of files number of ext.interfaces algorithms
measurement parameter
4 5 4 7 7 3
count
x x x x x x
count-total
= = = = = =
weight
complexity multiplier
feature points
0.25 p-m / FP = 120 p-m
40 25 12 4 4 60
160 125 48 28 28 180
569
.84
478
Some conclusions: Some conclusions: how to review estimateshow to review estimates
Ask the following questions about an estimateAsk the following questions about an estimate
What are the task size drivers?What are the task size drivers?
What productivity rates have been used?What productivity rates have been used?
Is there an example of a previous project of Is there an example of a previous project of about the same size?about the same size?
Are there examples of where the productivity Are there examples of where the productivity rates used have actually been found?rates used have actually been found?