![Page 1: Tutorial: Estimation and Planning Examplescs446/F2003/...Creating Pert/CPM Graph Integration task diagram often shows what tasks can be done concurrently In real world setting, priorities](https://reader035.vdocument.in/reader035/viewer/2022071517/613aff4df8f21c0c8268c14a/html5/thumbnails/1.jpg)
Tutorial: Estimation and Planning Examples
Friday, October 25th
![Page 2: Tutorial: Estimation and Planning Examplescs446/F2003/...Creating Pert/CPM Graph Integration task diagram often shows what tasks can be done concurrently In real world setting, priorities](https://reader035.vdocument.in/reader035/viewer/2022071517/613aff4df8f21c0c8268c14a/html5/thumbnails/2.jpg)
Overview
Task Integration ExamplePert/CPM GraphGantt ChartCOCOMOQuick SDL refresher
![Page 3: Tutorial: Estimation and Planning Examplescs446/F2003/...Creating Pert/CPM Graph Integration task diagram often shows what tasks can be done concurrently In real world setting, priorities](https://reader035.vdocument.in/reader035/viewer/2022071517/613aff4df8f21c0c8268c14a/html5/thumbnails/3.jpg)
Task Integration
Modules taken from design docIntegration tasks taken from architecture docShould reinforce architecture chosen
Be wary of odd dependencies
![Page 4: Tutorial: Estimation and Planning Examplescs446/F2003/...Creating Pert/CPM Graph Integration task diagram often shows what tasks can be done concurrently In real world setting, priorities](https://reader035.vdocument.in/reader035/viewer/2022071517/613aff4df8f21c0c8268c14a/html5/thumbnails/4.jpg)
Integration Task Diagram
![Page 5: Tutorial: Estimation and Planning Examplescs446/F2003/...Creating Pert/CPM Graph Integration task diagram often shows what tasks can be done concurrently In real world setting, priorities](https://reader035.vdocument.in/reader035/viewer/2022071517/613aff4df8f21c0c8268c14a/html5/thumbnails/5.jpg)
Task Integration Matrix
![Page 6: Tutorial: Estimation and Planning Examplescs446/F2003/...Creating Pert/CPM Graph Integration task diagram often shows what tasks can be done concurrently In real world setting, priorities](https://reader035.vdocument.in/reader035/viewer/2022071517/613aff4df8f21c0c8268c14a/html5/thumbnails/6.jpg)
Test Plan Notes
Give reasons for why test plan was chosen
![Page 7: Tutorial: Estimation and Planning Examplescs446/F2003/...Creating Pert/CPM Graph Integration task diagram often shows what tasks can be done concurrently In real world setting, priorities](https://reader035.vdocument.in/reader035/viewer/2022071517/613aff4df8f21c0c8268c14a/html5/thumbnails/7.jpg)
Creating Pert/CPM Graph
Integration task diagram often shows what tasks can be done concurrentlyIn real world setting, priorities not necessarily follow ITG
This is why we need schedule priority chartsCertain tasks may need to be done by certain people (domain knowledge, etc)
![Page 8: Tutorial: Estimation and Planning Examplescs446/F2003/...Creating Pert/CPM Graph Integration task diagram often shows what tasks can be done concurrently In real world setting, priorities](https://reader035.vdocument.in/reader035/viewer/2022071517/613aff4df8f21c0c8268c14a/html5/thumbnails/8.jpg)
Vaguely Familiar Ground
![Page 9: Tutorial: Estimation and Planning Examplescs446/F2003/...Creating Pert/CPM Graph Integration task diagram often shows what tasks can be done concurrently In real world setting, priorities](https://reader035.vdocument.in/reader035/viewer/2022071517/613aff4df8f21c0c8268c14a/html5/thumbnails/9.jpg)
CPM Graph
![Page 10: Tutorial: Estimation and Planning Examplescs446/F2003/...Creating Pert/CPM Graph Integration task diagram often shows what tasks can be done concurrently In real world setting, priorities](https://reader035.vdocument.in/reader035/viewer/2022071517/613aff4df8f21c0c8268c14a/html5/thumbnails/10.jpg)
Earliest Completion Times
![Page 11: Tutorial: Estimation and Planning Examplescs446/F2003/...Creating Pert/CPM Graph Integration task diagram often shows what tasks can be done concurrently In real world setting, priorities](https://reader035.vdocument.in/reader035/viewer/2022071517/613aff4df8f21c0c8268c14a/html5/thumbnails/11.jpg)
Latest Completion Times
![Page 12: Tutorial: Estimation and Planning Examplescs446/F2003/...Creating Pert/CPM Graph Integration task diagram often shows what tasks can be done concurrently In real world setting, priorities](https://reader035.vdocument.in/reader035/viewer/2022071517/613aff4df8f21c0c8268c14a/html5/thumbnails/12.jpg)
Fixed CPM Graph
![Page 13: Tutorial: Estimation and Planning Examplescs446/F2003/...Creating Pert/CPM Graph Integration task diagram often shows what tasks can be done concurrently In real world setting, priorities](https://reader035.vdocument.in/reader035/viewer/2022071517/613aff4df8f21c0c8268c14a/html5/thumbnails/13.jpg)
Coming up with Gantt Chart
Try to pick reasonable timelinesUsually earliest completion time is chosenFactor in vacations, breaks, etc
Make note of critical pathHelpful to indicate on Gantt chart
Try to evenly divide up workload
![Page 14: Tutorial: Estimation and Planning Examplescs446/F2003/...Creating Pert/CPM Graph Integration task diagram often shows what tasks can be done concurrently In real world setting, priorities](https://reader035.vdocument.in/reader035/viewer/2022071517/613aff4df8f21c0c8268c14a/html5/thumbnails/14.jpg)
Gantt Chart Example 1
![Page 15: Tutorial: Estimation and Planning Examplescs446/F2003/...Creating Pert/CPM Graph Integration task diagram often shows what tasks can be done concurrently In real world setting, priorities](https://reader035.vdocument.in/reader035/viewer/2022071517/613aff4df8f21c0c8268c14a/html5/thumbnails/15.jpg)
Gantt Chart Example 2
![Page 16: Tutorial: Estimation and Planning Examplescs446/F2003/...Creating Pert/CPM Graph Integration task diagram often shows what tasks can be done concurrently In real world setting, priorities](https://reader035.vdocument.in/reader035/viewer/2022071517/613aff4df8f21c0c8268c14a/html5/thumbnails/16.jpg)
Why are we doing this?Poor management is the downfall of many software projects.Delivered software may be late, unreliable, cost several times the original estimates and often exhibits poor performance characteristics.Software project management is different from other engineering management.Product is intangible to a certain extent.Most software projects are new and technically innovative. (myth?)Good management cannot guarantee project success but bad management usually results in project failure.
![Page 17: Tutorial: Estimation and Planning Examplescs446/F2003/...Creating Pert/CPM Graph Integration task diagram often shows what tasks can be done concurrently In real world setting, priorities](https://reader035.vdocument.in/reader035/viewer/2022071517/613aff4df8f21c0c8268c14a/html5/thumbnails/17.jpg)
COCOMO
COnstructive COst MOdelCreated by Barry Boehm in 1981Essentially: EFF = a * SIZEb
Based on a large number of projects from the 70’sVery simple estimation tool which may or may not work depending on how closely project fits in with original study
![Page 18: Tutorial: Estimation and Planning Examplescs446/F2003/...Creating Pert/CPM Graph Integration task diagram often shows what tasks can be done concurrently In real world setting, priorities](https://reader035.vdocument.in/reader035/viewer/2022071517/613aff4df8f21c0c8268c14a/html5/thumbnails/18.jpg)
Estimating Is Hard To Do
![Page 19: Tutorial: Estimation and Planning Examplescs446/F2003/...Creating Pert/CPM Graph Integration task diagram often shows what tasks can be done concurrently In real world setting, priorities](https://reader035.vdocument.in/reader035/viewer/2022071517/613aff4df8f21c0c8268c14a/html5/thumbnails/19.jpg)
Basic IdeaSmall Projects
Small teams (2-3 people)Easy to have mental modelFewer things in the way of completionEFFORT = a * SIZE + b
Large ProjectsThe more people there are, the harder it becomesEFFORT = a * SIZEb
a and b are scaling factors
![Page 20: Tutorial: Estimation and Planning Examplescs446/F2003/...Creating Pert/CPM Graph Integration task diagram often shows what tasks can be done concurrently In real world setting, priorities](https://reader035.vdocument.in/reader035/viewer/2022071517/613aff4df8f21c0c8268c14a/html5/thumbnails/20.jpg)
Project Types
OrganicRoutine projectWell understood domainTeam works well and efficiently togetherProject expected to run smoothlyTypically a smaller system
![Page 21: Tutorial: Estimation and Planning Examplescs446/F2003/...Creating Pert/CPM Graph Integration task diagram often shows what tasks can be done concurrently In real world setting, priorities](https://reader035.vdocument.in/reader035/viewer/2022071517/613aff4df8f21c0c8268c14a/html5/thumbnails/21.jpg)
Project Types
EmbeddedDifficulties expectedProject that is hard (control software for a nuclear plant, or spacecraft)Team has little experience in domainNew or inexperienced teamTend to be large projects with lots of constraints
![Page 22: Tutorial: Estimation and Planning Examplescs446/F2003/...Creating Pert/CPM Graph Integration task diagram often shows what tasks can be done concurrently In real world setting, priorities](https://reader035.vdocument.in/reader035/viewer/2022071517/613aff4df8f21c0c8268c14a/html5/thumbnails/22.jpg)
Project Types
Semi-DetachedIn the middleComplex system, but something the company is familiar withTeams may be made up of experienced and inexperienced membersSystem not huge, but not small either
![Page 23: Tutorial: Estimation and Planning Examplescs446/F2003/...Creating Pert/CPM Graph Integration task diagram often shows what tasks can be done concurrently In real world setting, priorities](https://reader035.vdocument.in/reader035/viewer/2022071517/613aff4df8f21c0c8268c14a/html5/thumbnails/23.jpg)
What is a and b?
OrganicPerson months = 2.4 * KDSI1.05
Semi-DetachedPerson months = 3.0 * KDSI1.12
EmbeddedPerson months = 3.6 * KDSI1.20
![Page 24: Tutorial: Estimation and Planning Examplescs446/F2003/...Creating Pert/CPM Graph Integration task diagram often shows what tasks can be done concurrently In real world setting, priorities](https://reader035.vdocument.in/reader035/viewer/2022071517/613aff4df8f21c0c8268c14a/html5/thumbnails/24.jpg)
Slightly More Advanced
Add in an adjustment factorEFFORT = EAF * a * SIZEb
Adjustment factors cover wide range of development aspectsFactor all adjustment factors together to get EAF
![Page 25: Tutorial: Estimation and Planning Examplescs446/F2003/...Creating Pert/CPM Graph Integration task diagram often shows what tasks can be done concurrently In real world setting, priorities](https://reader035.vdocument.in/reader035/viewer/2022071517/613aff4df8f21c0c8268c14a/html5/thumbnails/25.jpg)
Slightly More Advanced
The factors a and b differOrganic
a = 3.2, b = 1.05
Semi-Detacheda = 3.0, b = 1.12
Embeddeda = 2.8, b = 1.20
![Page 26: Tutorial: Estimation and Planning Examplescs446/F2003/...Creating Pert/CPM Graph Integration task diagram often shows what tasks can be done concurrently In real world setting, priorities](https://reader035.vdocument.in/reader035/viewer/2022071517/613aff4df8f21c0c8268c14a/html5/thumbnails/26.jpg)
![Page 27: Tutorial: Estimation and Planning Examplescs446/F2003/...Creating Pert/CPM Graph Integration task diagram often shows what tasks can be done concurrently In real world setting, priorities](https://reader035.vdocument.in/reader035/viewer/2022071517/613aff4df8f21c0c8268c14a/html5/thumbnails/27.jpg)
How to use COCOMO
Simply: Plug and ChugWhat if it doesn’t work?
Play with adjustment factorsTweak a and b to make the equation fit the resultUse a more complex metric
![Page 28: Tutorial: Estimation and Planning Examplescs446/F2003/...Creating Pert/CPM Graph Integration task diagram often shows what tasks can be done concurrently In real world setting, priorities](https://reader035.vdocument.in/reader035/viewer/2022071517/613aff4df8f21c0c8268c14a/html5/thumbnails/28.jpg)
![Page 29: Tutorial: Estimation and Planning Examplescs446/F2003/...Creating Pert/CPM Graph Integration task diagram often shows what tasks can be done concurrently In real world setting, priorities](https://reader035.vdocument.in/reader035/viewer/2022071517/613aff4df8f21c0c8268c14a/html5/thumbnails/29.jpg)
![Page 30: Tutorial: Estimation and Planning Examplescs446/F2003/...Creating Pert/CPM Graph Integration task diagram often shows what tasks can be done concurrently In real world setting, priorities](https://reader035.vdocument.in/reader035/viewer/2022071517/613aff4df8f21c0c8268c14a/html5/thumbnails/30.jpg)
![Page 31: Tutorial: Estimation and Planning Examplescs446/F2003/...Creating Pert/CPM Graph Integration task diagram often shows what tasks can be done concurrently In real world setting, priorities](https://reader035.vdocument.in/reader035/viewer/2022071517/613aff4df8f21c0c8268c14a/html5/thumbnails/31.jpg)
In RealityEstimating comes with experienceUsing something like Function Points to come up with code size doesn’t really work
(personal belief)
COCOMO is too simple and too old to really be of use
Good starting point, more advanced models availableTweaking formulas might yield good results
![Page 32: Tutorial: Estimation and Planning Examplescs446/F2003/...Creating Pert/CPM Graph Integration task diagram often shows what tasks can be done concurrently In real world setting, priorities](https://reader035.vdocument.in/reader035/viewer/2022071517/613aff4df8f21c0c8268c14a/html5/thumbnails/32.jpg)
Quick Look At SDL
![Page 33: Tutorial: Estimation and Planning Examplescs446/F2003/...Creating Pert/CPM Graph Integration task diagram often shows what tasks can be done concurrently In real world setting, priorities](https://reader035.vdocument.in/reader035/viewer/2022071517/613aff4df8f21c0c8268c14a/html5/thumbnails/33.jpg)
Credits
Lots of COCOMO info taken from http://www.cs.unc.edu/~stotts/COMP145/cocomo.html
CPM slide “Why Are We Doing This” taken from another presentation (can’t find URL)