Estimating the cost of a Software product is
one of the most difficult and error prone tasks.
Cost estimates can be of two types:
1) Top down approach
2) Bottom up approach
TOP DOWN APPROACH
♣ It focuses on system level cost like computing
resources as well as the cost of configuration
management ,quality assurance ,system integration
,training and publications.
♣ It focuses on system level cost but may overlook
various technical factors.
BOTTOM UP APPROACH
♣ It first estimates the cost to develop each module
and these cost are combined to arrive at an overall
♣ It emphasizes the cost associated with developing
individual system components but fail to account
for system level costs.
METHODS FOR ESTIMATION
1) Expert Judgment
2) Delphi Cost Estimation
3) Work Breakdown Structures
4) Algorithmic Cost Models
Compute the estimate cost of the software system
as the sum of costs of the modules and the
subsystem that comprises the system.
They follow Bottom Up Approach.
☺ This is one of the most widely used and discussed
software cost estimation in the industry.
☺ It has evolved into a more comprehensive
estimation model called COCOMO II.
☺In the COCOMO model Effort Multipliers are
used to adjust the estimate for product attribute
,computer attribute ,personal attribute and project
☺ The following activities are covered by the
a) Covers estimate through acceptance
b) Includes the cost of documentation and
c) Includes the cost of Project Manager.
☺ The cost estimators exclude planning and
analysis costs ,installation and training cost and
cost of computer operators , secretaries.
☺ The DSI (Delivered Source Instruction) estimate
includes job control statement and source
statements but excludes comments
☺ It is considered to be one line or card image.
Following are the assumptions estimated by the
COCOMO concerning the nature of the software:-
1) Careful definition and validation of requirements
is performed by a small number of capable people.
2) Requirements remain stable throughout the
3) Careful definition and validation of architectural
designs is performed by a small number of capable
4) Detailed design ,coding and unit testing are
performed in parallel by group of programmers
working in teams.
5) Integration Testing is based on early test
6) Interface errors are found by unit testing and by
Formally there are mainly 10 steps to estimate
the cost using COCOMO:-
1) Identify all the subsystem and modules in the
2) Estimate the size of each module and calculate the
size of each subsystem and the total system.
3) Specify the module level multipliers.
4) Compute the module effort and the time
estimates for each modules.
5) Specify the effort multipliers for each
6) From Steps 4 and 5 compute the estimated
effort and development time for each subsystems.
7) From Step 6 compute the total system effort
and development time.
8) Perform sensitivity analysis on the estimate.
9) Add other development cost like planning and
analysis that are not included in the estimates.
10) Compare this estimate with the one developed
by Delphi estimation .Identify and Rectify the
differences in the estimates.
• Analyst capability
• Virtual machine experience
• Programming language experience
• Use of modern programming practices
• Use of software tools
• Required schedule
Execution time constraint
Main storage Constraint
Virtual machine reality
Computer turnaround time
o The model can be used to gain insight into the cost
o Systematic techniques of software engineering are
used throughout the development process.
o Data can be collected and analyzed ,new factors
can be identified and effort multipliers can be