CS 435 - Week 8 Lecture 2 - 2014-03-15
playing a little with COCOMO 81:
* say that we estimate that an auction system
would take about 2000 lines of code,
or 2 KLOC
3.9 * 2^.91 ~= 7.33 person-months <-- the initial/
nominal estimate
* let's say you look over the 15 cost drivers,
and decide all are nominal (multipliers of 1)
except:
complexity - high --> 1.15
programmer capability - low --> 1.17
application experience - low --> 1.13
7.33 * 1.15 * 1.17 * 1.13 = 11.14 person-months
* THEN -- you can take this effort estimate
and use it to estimate relative effort needed
for the different phases;
* bottom-up estimation:
one example approach:
1. identify the modules in the system and classify
them as simple, medium, or complex
2. determine the average coding effort for
a simple, a medium, a complex module;
3. get the total coding effort using the coding
efforts of the different types of
modules and the counts for them --
(avg coding effort for simple) * (# of simple modules) +
(avg coding effort for medium) * (# of medium modules) +
(avg coding effort for complex) * (# of complex modules)
4. using the effort distribution for similar
projects, estimate the effort for other
project tasks and add that in
5. refine the estimates based on project-specific factors
SAY you indeed now have an effort estimate --
NOW you want to determine the amount of time,
amount of people that are needed;
* remember: people and months are NOT interchangeable
(what pieces depend on other pieces?
how much communication is necessary? for example)
...but there is SOME wiggle room;
* and there's no simple equation between effort and
schedule that fits really well;
* that IBM Federal Systems Study came up with
for M in calendar months
M = 4.1 E ^ .36
* COCOMO 81 -- for an "organic" type of software --
M = 2.5 E ^ .38
* playing with these:
50 PM project
IBM Fed -> 4.1 * (50 ** .36) ~= 16.8 months
COCOMO 81 -> 2.5 * (50 ** .38) ~= 11.1 months
* NOT a hard-and-fast estimate,
but maybe a useful reality check;
* another approach (for medium-sized?)
... a rule of thumb called the square root check,
that the proposed schedule CAN be around the square root
of the total effort in person-months
IF SUITABLE RESOURCES are assigned to the project;