Sunteți pe pagina 1din 4

Software Cost Estimation

Major Issues in Estimating Software Cost

Companies and/or projects do not collect project cost data


on past projects.

Precision of estimate is far greater than its accuracy.

Estimates are usually based on lines of code, which in


itself is an estimate.

Software cost estimates are hard to justify.

Cost models are not perceived to be very reliable;


therefore they are not used with any degree of regularity.

Software cost estimates are convenient to reduce when


developers want to lower their bid.

Why Are Software Estimations So Unreliable?

Lack of historical data from past projects on which to base


estimates.

First-of-a-kind systems. Past history on similar projects


does not exist.

Lack of expertise by the estimator in making estimates.

Things left out. There are often large pieces that just never
get put on the list of things to do and are discovered later.

Premature estimation. Estimates must be given before a


proper understanding of the project is available or developed.

Productive time is not 40 hours per week, yet many


schedules are built as if it were.
1


Failure to update estimates when the project or
environment changes.

Undue (unfounded) optimism on the part of the


developers.

Cost (and Schedule) Estimation Techniques

Algorithmic models - Algorithms for producing a software


cost estimate (COCOMO is an example)

Rules of thumb - Guidelines that have evolved over time

Expert judgment - Consulting one or more experts

Estimation by analogy - Comparisons with completed


projects

Design to cost - Product is matched to the effort (cost)


available

Price-to-win estimating - Price believed to be necessary to


win the job (not a cost estimate)

Top-down estimating - Overall estimate derived from global


properties (Intermediate COCOMO is an example)

Bottom-up estimating-Each component is separately


estimated and the results aggregated (WBS a useful tool)

Difficulty with Estimation

Conflicting project goals

Lack of detailed product description

Wide variation in effort needed to reuse code


Emergence of new development processes, methods, and
tools

COCOMO Model of Estimation

Constructive Cost Model (COCOMO): A software cost


estimation method based on a set of empirically derived
equations.

Provides effort estimates for the development life cycle


phases only (i.e. software design, programming, and integration
and testing)

Different versions of COCOMO:

Basic COCOMO used mostly for rough, early


estimates

Intermediate COCOMO Includes 15 different


factors to account for the influence of various project
attributes such as personnel capability, use of modern
tools, hardware constraints, etc.

Detailed COCOMO Account for the influence of


different factors on individual phases of the project

COCOMO models include 3 software development types:

Organic: relatively small software teams develop


familiar types of software in an in-house environment.
Most personnel have previous experience on similar
system in the organization

Embedded: the project may require new


technology, unfamiliar algorithms, or an innovative new
method for solving the problem

Semi-detached: having a mixture between


organic and embedded types

Basic COCOMO

Type

Effort

Organic
PM=2.4 (KDSI) 1.05
Semi-detached PM=3.0 (KDSI) 1.12
Embedded
PM=3.6 (KDSI) 1.20

Schedule

TD=2.5 (PM) 0.38


TD=2.5 (PM) 0.35
TD=2.5 (PM) 0.32

Where,
PM = person-month (man-month)
KDSI = delivered source instructions, in thousands
TD = number of months estimated for software development

Example Basic COCOMO Calculation

Assuming an organic type project with an


estimated size = 128,000 lines of code.

Effort: PM = 2.4(128) 1.05 = 392 person-months

Productivity: 128,000 DSI / 392 PM = 327


DSI/PM
0.38

Schedule: TD = TD=2.5 (PM)

Avg. Staffing: 392 PM / 24 months = 16 FSP


Where,
FSP = full-time-equivalent staff person

= 24 months

S-ar putea să vă placă și