BY
ANU K LEKSHMY
MCA III SEM
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
estimate.
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.
CONSTRUCTIVE COST MODEL
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
attribute.
The following activities are covered
by the estimates:
a) Covers estimate through
acceptance testing
b) Includes the cost of
documentation and reviews.
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 project
3) Careful definition and validation of
architectural designs is performed by
a small number of capable people.
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 planning.
6) Interface errors are found by unit
testing and by inspections.
Formally there are mainly 10 steps to
estimate the cost using COCOMO:1) Identify all the subsystem and
modules in the product.
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 subsystems.
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.
MODULE LEVEL MULTIPLIERS
Product Complexity
Programmers Capability
Virtual Machine Experience
Programming Language Experience
EFFORT MULTIPLIERS
PERSONAL ATTRIBUTES
Analyst capability
Programmer capability
Application experience
Virtual machine experience
Programming language
experience
PROJECT ATTRIBUTES
Use of modern programming
practices
Use of software tools
Required schedule
PRODUCT ATTRIBUTES
Required Reliability
Data-base Size
Product Complexity
COMPUTER ATTRIBUTES
Execution time constraint
Main storage Constraint
Virtual machine reality
Computer turnaround time
ADVANTAGES:o The model can be used to gain insight
into the cost factors.
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 adjusted.