2. Contents
Fundamentals of Software Cost Estimation &
Pricing
Cost Estimation During the Software Life Cycle
Software Cost Estimation Process
Methods for Cost Estimation
Conclusion
References
3. Fundamentals of Software Cost Estimation
& Pricing
Hardware and software costs.
Travel and training costs.
Effort costs (the dominant factor in most
projects)
The salaries of engineers involved in the project;
Social and insurance costs.
Effort costs must take overheads into account
Costs of building, heating, lighting.
Costs of networking and communications.
Costs of shared facilities (e.g library, staff
restaurant, etc.).
Software Cost Components
4. Fundamentals of Software Cost Estimation
& Pricing
Costing & Pricing
Estimates are made to discover the cost, to the
developer, of producing a software system.
There is not a simple relationship between the
development cost and the price charged to the
customer.
Broader organisational, economic, political and
business considerations influence the price
charged.
5. Fundamentals of Software Cost Estimation
& Pricing
Software Pricing Factors
Market
opportunity
A development organisation may quote a low price because it
wishes to move into a new segment of the software market.
Accepting a low profit on one project may give the opportunity
of more profit later. The experience gained may allow new
products to be developed.
Cost estimate
uncertainty
If an organisation is unsure of its cost estimate, it may increase
its price by some contingency over and above its normal profit.
Contractual terms A customer may be willing to allow the developer to retain
ownership of the source code and reuse it in other projects. The
price charged may then be less than if the software source code
is handed over to the customer.
Requirements
volatility
If the requirements are likely to change, an organisation may
lower its price to win a contract. After the contract is awarded,
high prices can be charged for changes to the requirements.
Financial health Developers in financial difficulty may lower their price to gain
a contract. It is better to make a smaller than normal profit or
break even than to go out of business.
6. Cost Estimation During the Software Life Cycle
Cost estimation should be done throughout the
software life cycle to allow for refinement
Need effective monitoring and control of the
software costs to verify and improve accuracy of
estimates
At appropriate level of detail
Gathering data should not be difficult
Success of a cost estimate method is not
necessarily the accuracy of the initial estimates,
but rather the rate at which estimates converge to
the actual cost
7. General steps for Cost Estimation
Establish Plan
What data should we gather
Why are we gathering this data
What do we hope to accomplish
Do cost estimation for initial requirements
Decomposition
Use several methods
There is no perfect technique
If get wide variances in methods, then should re-
evaluate the information used to make estimates
Do re-estimates during life cycle
Make any required changes to development
Do a final assessment of cost estimation at the end
of the project
8. Software Cost Estimation Process
Definition
A set of techniques and procedures that is used to
derive the software cost estimate
Set of inputs to the process and then the process will
use these inputs to generate the output
Input & Output for the Estimation Process
9. Methods for Software Cost Estimation
Algorithmic (Parametric) model
Expert Judgment (Expertise Based)
Top – Down
Bottom – Up
Estimation by Analogy
Price to Win Estimation
10. Algorithmic (Parametric model)
Use of mathematical equations to perform software
estimation
Equations are based on theory or historical data
Use input such as SLOC, number of functions to
perform and other cost drivers
Accuracy of model can be improved by calibrating
the model to the specific environment
Advantages
Generate repeatable
estimations
Easy to modify input data
Easy to refine and
customize formulas
Objectively calibrated to
experience
Advantages & Disadvantages
Disadvantages
Unable to deal with
exceptional conditions
Some experience and
factors can not be
quantified
Sometimes algorithms
may be proprietary
11. Expert Judgment
Capture the knowledge and experience of the practitioners and
providing estimates based upon all the projects to which the expert
participated.
Examples
Delphi
Developed by Rand Corporation in 1940 where participants
are involved in two assessment rounds.
Work Breakdown Structure (WBS)
A way of organizing project element into a hierarchy that
simplifies the task of budget estimation and control
Advantages
Useful in the absence of
quantified, empirical data.
Can factor in differences
between past project
experiences and requirements of
the proposed project
Can factor in impacts caused by
new technologies, applications
Advantages & Disadvantages
Disadvantages
Estimate is only as good
expert’s opinion
Hard to document the
factors used by the experts
12. Top-Down
Also called Macro Model
Derived from the global properties of the product and
then partitioned into various low level components
Example – Putnam model
Advantages
Requires minimal project detail
Usually faster and easier to implement
Focus on system level activities
Disadvantages
Tend to overlook low level components
No detailed basis
Advantages & Disadvantages
13. Bottom-Up
Cost of each software components is estimated and
then combine the results to arrive the total cost for
the project
The goal is to construct the estimate of the system
from the knowledge accumulated about the small
software components and their interactions
An example – COCOMO’s detailed modelAdvantages & Disadvantages
Advantages
More stable
More detailed
Allow each software group to hand an estimate
Disadvantages
May overlook system level costs
More time consuming
14. Estimation by Analogy
Comparing the proposed project to previously
completed similar project in the same application
domain
Actual data from the completed projects are
extrapolated
Can be used either at system or component levelAdvantages & Disadvantages
Advantages
Based on actual project data
Disadvantages
Impossible if no comparable project had been tackled
in the past.
How well does the previous project represent this one
15. Price to Win Estimation
Price believed necessary to win the contract
Advantages & Disadvantages
Advantages
Often rewarded with the contract
Disadvantages
Time and money run out before the job is
done
16. Conclusion
Accurate software cost estimation is a primary &
essential task for a successful software project
Project costs are being poorly estimated
The accuracy of cost estimation has to be
improved
Data collection
Use of tools
Use several methods of estimation
17. References
Boehm B., Clark B., Horowitz E., Madachy R., Shelby R., Westland C.
(1995). Cost Models for Future Software Life Cycle Processes: COCOMO
2.0, Annals of Software Engineering.
http://sunset.usc.edu/research/COCOMOII/Docs/stc.pdf.
Boehm B., Clark B., Horowitz E., Madachy R., Shelby R., Westland C.
(1995). An Overview of the COCOMO 2.0 Software Cost Model.
http://sunset.usc.edu/research/COCOMOII/Docs/stc.pdf.
Boehm B., Chulani S., Clark B. (1997). Calibration Results of COCOMO
II.1997. http://sunset.usc.edu/publications/TECHRPTS/1998/usccse98-
502/CalPostArch.pdf.
Boehm B., Chulani S., Clark B. (1997). Calibrating the COCOMO II Post
Architecture Model.
http://sunset.usc.edu/Research_Group/Sunita/down/calpap.pdf.
Boehm B., Chulani S., Reifer D., The Rosetta Stone: Making COCOMO 81
Files Work With COCOMO II.
http://sunset.usc.edu/publications/TECHRPTS/1998/usccse98-
516/usccse98-516.pdf.
Chulani, S. (1998). Software Development Cost Estimation Approaches – A
Survey. IBM Research.
Humphrey, W.S. (1990). Managing the Software Process. Addison-Wesley
Publishing Company, New York, NY.