m3 Project Planing
m3 Project Planing
Basic COCOMO computes software development effort (and cost) as a function of program size.
Program size is expressed in estimated thousands of source lines of code (SLOC, KLOC).
Software
ab bb cb db
project
Semi-
3.0 1.12 2.5 0.35
detached
This approach of determining total effort from the total size is what we refer
to as the top-down approach, as overall effort is first determined and then
from this the effort for different parts are obtained.
Another approach for effort estimation is the bottom-up approach. In this approach, the
project is first divided into tasks and then estimates for the different tasks of the project
are first obtained. Prom the estimates of the different tasks, the overall estimate is
determined. That is, the overall estimate of the project is derived from the estimates of its
parts. This type of approach is also called activity-based estimation
The basic steps in the COCOMO model are:
1. Obtain an initial estimate of the development effort from the estimate of thousands
of delivered lines of source code (KLOC).
2. Determine a set of 15 multiplying factors from different attributes of the project.
3. Adjust the effort estimate by multiplying the initial estimate with all the multiplying
factors.
To determine the initial effort Ei in person-months the equation used is of the type
The value of the constants a and b depend on the project type. In COCOMO
projects are categorized into three types-organic, semidetached, and embedded
Intermediate COCOMO
The sizes for the different modules and the overall system are estimated to be:
Total Size is 3.0 KLOC And for the Organic category the constant values for a=3.2 and for b=1.05
The final effort estimate, E, is obtained by multiplying the initial estimate by the EAF. That is, E = EAF * Ei
The office automation system's size estimate is 3 KLOC, so we will have to use
interpolation to get the appropriate percentage (the two end values for interpolation
will be the percentages for 2 KLOC and 8 KLOC). The percentages for the different
phases are: design—16%, detailed design—25.83%, code and unit test—41.66%, and
integration and testing—16.5%. With these, the effort estimates for the different
phases are:
The office automation system's size estimate is 3 KLOC, so we will have to use
interpolation to get the appropriate percentage (the two end values for interpolation
will be the percentages for 2 KLOC and 8 KLOC). The percentages for the different
phases are: design—16%, detailed design—25.83%, code and unit test—41.66%, and
integration and testing—16.5%. With these, the effort estimates for the different
phases are:
In COCOMO, the schedule is determined by using the equation, for an organic type of software is
For other project types, the constants vary only slightly. The duration or schedule of the different phases is
obtained in the same manner as in effort distribution. The percentages for the different phases are given in
Table
In this COCOMO table, the detailed design, coding, and unit testing phases are combined
into one "programming phase."
overall size estimate for the project is 3 KDLOC, and the final effort estimate obtained
was 16.34 PM. As this is an organic system, the overall duration will be determined by
the equation
Using this we get the project duration D as
Using the preceding table, which gives the duration of the different phases as a percentage of the total project duration,
we can obtain the duration of the different phases. The duration of the different phases is:
Software Size Metrics
13
Disadvantages of Using LOC
15
Function Point Metric
• Output:
– A set of related outputs is counted as one output.
• Inquiries:
– Each user query type is counted.
• Files:
– Files are logically related data and thus can be
data structures or physical files.
• Interface:
– Data transfer to other systems.
16
Function Point Metric (CONT.)
• adv:
– • Gives almost an actual value
– • Independent of Programming
language used
• Experts re-estimate.
• Experts never meet each other
– to discuss their viewpoints.
21
Heuristic Estimation Techniques
• Single Variable Model:
– Parameter to be Estimated(effort,duration
etc.)=C1(constants ,data collected from past
projects)*e(characteristics of s/w such as size)^D1
• Multivariable Model:
– Assumes that the parameter to be
estimated depends on more than one
characteristic.
– Parameter to be Estimated=C1(Estimated
Characteristic)d1+ C2(Estimated
Characteristic)d2+…
– Usually more accurate than single
variable models. 22
COCOMO Model
23
COCOMO Product classes
• Roughly correspond to:
– application, utility and system
programs respectively.
• Data processing and scientific programs are
considered to be application programs.
• Compilers, linkers, editors, etc., are utility
programs.
• Operating systems and real-time system
programs, etc. are system programs.
24
Elaboration of Product classes
• Organic:
– Relatively small groups
• working to develop well-understood applications.
• Semidetached:
– Project team consists of a mixture of experienced
and inexperienced staff.
• Embedded:
– The software is strongly coupled to complex
hardware, or real-time systems.
25
COCOMO Model (CONT.)
26
COCOMO Model (CONT.)
27
Basic COCOMO Model (CONT.)
• Organic :
– Effort = 2.4 (KLOC)1.05 PM
• Semi-detached:
– Effort = 3.0(KLOC)1.12 PM
• Embedded:
– Effort = 3.6 (KLOC)1.20PM
29
Development Time Estimation
• Organic:
– Tdev = 2.5 (Effort)0.38 Months
• Semi-detached:
– Tdev = 2.5 (Effort)0.35 Months
• Embedded:
– Tdev = 2.5 (Effort)0.32 Months
30
Basic COCOMO Model (CONT.)
• Effort is Effort
somewhat super-
linear in
problem size.
Size
31
Basic COCOMO Model (CONT.)
• Development time
– sublinear
Dev. Time
• product
function of size.
• When product size
18 Months
increases two times,
– development time does
14 Months
not double.
• Time taken:
– almost same for all the 30K
Size
60K
32
Basic COCOMO Model (CONT.)
33
Basic COCOMO Model (CONT.)
• Effort = 2.4*(32)1.05 = 91 PM
• Nominal development time = 2.5*(91)0.38 = 14
months
35
Intermediate COCOMO
• Both models:
– consider a software product as a single
homogeneous entity:
– However, most large systems are made up of
several smaller sub-systems.
• Some sub-systems may be considered as organic
type, some may be considered embedded, etc.
• for some the reliability requirements may be
high,
and so on.
39
Complete COCOMO
40
Complete COCOMO Example
41
Staffing Level Estimation
specified by two
parameters: Effort
– td the time at
which the curve
reaches its
maximum td
Time
– K the total area
under the curve.
• L=f(K, td)
43
Putnam’s Work:
44
Putnam’s Work (CONT.) :
49
Effect of Schedule Change on Cost
50
Effect of Schedule Change on Cost (CONT.)
• Observe:
– a relatively small compression in
delivery schedule
• can result in substantial penalty on human
effort.
• Also, observe:
– benefits can be gained by using fewer
people over a somewhat longer time span.
51
Example
53
Effect of Schedule Change on Cost (CONT.)
• Boehm observed:
– “There is a limit beyond which the
schedule of a software project cannot
be reduced
by buying any more personnel or
equipment.”
– This limit occurs roughly at 75% of
the nominal time estimate.
54
Effect of Schedule Change on Cost (CONT.)
55
Jensen Model
56
Jensen Model
57