Chapter 5 - Software Project Planning
Software Project Estimation
-
Requires:
-
software development experience
-
access to good historical data
-
courage to commit to quantitative measures when only qualitative data exists
-
Risk and uncertainty inherent in estimation
-
Project complexity
-
Project size
-
Solidity of requirements
-
Steps:
-
Determine scope of the project
-
Functional requirements
-
Performance requirements
-
Constraints
-
Schedule
-
Existing hardware and software
-
Existing personnel and procedures
-
Evaluate resources required
-
People available
-
Reusable software available
-
from past projects (use if software team members are experienced with them)
-
from a third party (use if possible)
-
Hardware and software tools (development environment)
-
Estimate Software Costs
-
Options :
-
base estimations on previous projects
-
base estimates on simple decomposition techniques (decompose project and
estimate each portion using FP or LOCs)
-
use an empirical model (based on metrics, LOC or FPs)
-
delay estimation until after analysis and/or design is done
Decomposition Techniques
-
Based on the estimation of the size of each component of a project
-
The greater the degree of decomposition, the better the estimate
-
Techniques
-
Fuzzy logic sizing - approximate reasoning (or guessing) based on
past experience and historical data
-
Function Point Sizing - estimates characteristics of the system
(see chapter 4)
-
Standard Component sizing - count the number of components (reports,
screens, etc.) then apply a conversion factor based on historical data
(i.e. 1000 LOC per report).
-
Change Sizing - estimate the degree of change required to existing
programs (% of code to be modified) then use that as a multiplier to its
existing size.
-
Process Based Estimation - estimate the amount of time to be spent
on a phase by phase basis for each component (rather than using a single
overall metric), phases include Analysis, Design, Code, Test.
-
Final Expected Value or EV is often based on three estimates
-
Sopt optimistic
-
Sm most likely
-
Spess pessimistic
-
To calculate EV, create the three estimates using one of the techniques
list above and apply the following equation.
-
EV = (Sopt +4Sm + Spess)/6
-
To calculate effort E, convert EV of LOC or FP using historical
data from past projects on performance
-
e.g. 620 LOC / person month, then E = EV of LOC / 620, giving the result
in person months
-
Calculate labor cost by the average burdened labor rate of the employees
involved.
Empirical Estimation Models
-
Require the calculation of the EV of LOC or FP using the same techniques
as the Decomposition method.
-
Instead of using a conversion factor based on historical data, they use
a formula based on empirical measurements of many projects.
-
According to Boehm, these methods are considered good if they can predict
the cost to within 20% of the actual cost, 70% of the time.
-
Models should be calibrated using local conditions (programming language
used, amount of documentation required, abilities of programmers, etc.)
-
Generic formulas take the form Effort = A + B(EV)**C where
-
E is effort in months
-
A, B, C are constants derived from data (vary from model to model)
-
EV is the estimated LOC or FP.
-
Examples:
-
Boehm : E = 3.2(KLOC)**1.05
-
Bailey-Basili : E = 5.5 + .73(KLOC)**1.16
-
Matson... : E = 585.7 + 15.12FP
-
Albrecht : E = -13.39 + .0545FP
-
All these models will give very different results, a company needs
to select and calibrate a model to match its past performance.
Cocomo Models
-
Types
-
Basic - computes cost of development and chronological time as a
function of program size (LOC)
-
Intermediate - computes software development as a function of program
size and a set of subjective assessments (cost drivers).
-
Advanced - Intermediate plus an assessment of cost drivers on a
phase by phase basis.
-
Models use different factors based on project type (see table 5.1, 5.2)
-
organic - small simple project, team has experience with all aspects
-
semi-detached - intermediate size project, team has limited experience
-
embedded - project has tight hardware, software, and operation constraints
-
Basic equations:
-
E = Ab(KLOC**Bb) effort in person months
-
D = Cb(E**Db) time in chronological months
-
N = E/D optimum number of people
Software aids
Study Guide:
Key words:
Change sizing
Cocomo Model
embeded
Empirical Estimation Models
Expected Value
Function Point sizing
Fuzzy logic sizing |
likely
optimisic
organic
pessimistic
Proces based estimation |
risk
resources
semi-detached
standard component sizing |
Problems : 2,3,6,10,12
Home
|
|