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;