Spm-Unit Ii Chap-Ii
Spm-Unit Ii Chap-Ii
EFFORT
ESTIMATION
S O F T WA R E P R O J E C T M A N A G E M E N T
UNIT II- CHAP – II
T Y. BS C . I T
-MANALI HALDANKAR
INTRODUCTION
Successful project is that the system is delivered
on time and within budget and with the required
quality.
A project manager has to produce estimates of
effort, which affect costs and of activity durations,
which affect the delivery time.
Planning & Estimating are iterative processes
which continue throughout the course of a project.
For long life systems, maintenance costs will be
several times the development costs.
The total cost for developing a software product
can be divided as: 60% development costs 40%
testing costs.
Difficulties in Software Estimation
Political Implications
Different groups within an organization have different
objectives. The IOE information systems development
managers may, for ex. Want to generate work & will
press estimators to reduce cost estimates to encourage
higher management to approve projects.
Changing Technology
Where technologies change rapidly, it is difficult to
use the experience of previous projects on new ones.
1. Expert Opinion:
It is also called as Delphi Cost method, proposed by Dr. Barry
Boehm. It is useful to assess differences between past
projects & new ones for which no historical pattern available.
Advantages:
Little or no historical data needed.
Suitable for new or unique projects.
Disadvantages:
Very subjective.
Experts may do partiality.
Qualification of experts may be questioned.
2. Analogy:
- Estimates costs by comparing proposed programs with similar, previously completed
programs for which historical data is available.
- Actual costs of similar existing system are adjusted for complexity, technical or
physical differences to derive new cost estimates.
- Analogies are used early in a program cycle when there is insufficient actual cost data
to use as a detailed approach.
- Compares similarities & differences.
- Good choice for a new system is derived from an existing subsystem.
Advantages:
Inexpensive
Easily changed
Based on actual experience
Disadvantages:
Very subjective
Large amount of uncertainty
Similar projects must exist & it is difficult to find
Requires detailed technical knowledge of program & analogous system.
3. Parametric:
- Utilizes statistical techniques.
- It is used prior to development.
Advantages:
Can be excellent predictors when implemented correctly
Once created, CERs are fast & simple to use.
Easily changed
Useful early on in a program
Objective
Disadvantages:
Lack of data on software intensive systems for statistically significant CER.
It does not provides access to slight changes.
Top level, lower level may not be visible.
Need to be correctly validated & relevant to system.
4. Engineering:
- Also referred to as bottom up or detailed method.
- Start with component level & estimate the effort required for each component.
- Add these efforts to find a final estimate.
- Future costs of the system is predicated from historical costs of that system.
- It involves examining separate work segments in detail manner.
- Estimate is built up from the lower level of system costs.
Advantages:
Objective
Reduced uncertainty
Disadvantages:
Expensive.
Time consuming.
Not useful early on.
May leave out software integration efforts.
5. Actual:
- It decides future costs on recent historical costs of same system.
- Used later in development or production.
- Costs are calibrated to actual development or production productivity of the
organization.
Advantages:
Most accurate
Most objective of the five methodologies.
Disadvantages:
Data not available early.
Time consuming.
Labour intensive to collect all the data necessary.
SOFTWARE EFFORT ESTIMATION TECHNIQUES
1. Top-down estimation
A top-down estimate is used in the initial stages of a project.
A top-down estimate compares historical data with experience.
This is sometimes called a guesstimate.
System costs are first estimated & these include computing resources,
personnel required to develop the system, configuration management costs,
quality assurance, system integration, training & publications.
Then the personnel costs are estimated with the help of previous project costs.
Top-down estimating results in high-level estimates of projects or their
summary tasks based on expert judgment.
It is less costly & less accurate than other techniques.
It is a good approach when used during proposal phase especially when
detailed information & time are not available.
2. Bottom-up estimation
A bottom-up cost estimate involves receiving estimates from all
estimators & then summarizing them into a cost estimate for the
project.
This method could involve inflated pricing as estimators add
contingency to their estimate.
The cost & accuracy are driven by the size of the individual work
items.
Smaller work items increase both cost & accuracy to the project
estimate.
Initially each module of subsystem is estimated.
Then those costs are combined to prepare an overall estimate.
These are helpful for estimating the costs of developing
individual components but they do not help in estimating system
costs, configuration management costs & quality control.
3. Expert Judgment
This is the information provided by a group or a person with
specialized knowledge & training.
It depends on the experience, background & business sense of
one or more key people in the organization.
The biggest advantage of expert judgment can also be a danger
with overconfidence.
Experts may overlook some factors, if he feels project is
similar to previous one & make estimate accordingly but the
project being different, there is a possibility estimate variation.
The major disadvantage is Individuals in the expert group are
being affected by interpersonal group dynamics.
To overcome these disadvantages, Delphi Technique is used.
4. Analogy(estimate based on similar completed
project)
It is also called as ‘Case Based Analogy’ i.e. effort of the source
case is used as base estimate for the target.
Estimates costs by comparing proposed programs with similar,
previously completed programs for which historical data is
available.
Angel software tool is used for estimating by analogy.
Actual costs of similar existing system are adjusted for
complexity, technical or physical differences to derive new cost
estimates.
Compares similarities & differences.
Good choice for a new system is derived from an existing
subsystem.
COST ESTIMATION PARAMETERS
1. Size
The size of the proposed software product is
weighed in terms of components i.e. in terms of
the number of source code instructions or the
number of functions required to develop the
proposed product.
2. Process
The process includes:
Phases
Activities carried out in each phase
3. Personnel
It means capabilities & experience of software engineering personnel in the field of
Computer science & the applications of the project.
It also depends upon the personnel’s familiarity with the Development Tools &
Technology Platform.
4. Environment
The environment contains the tools & techniques that are required to develop efficient
Software & to automate the process.
5. Quality
The expected quality of the proposed product depends upon:
Features
Performance
Reliability
Adaptability
The above mentioned five parameters size, process, personnel, environment & quality can
be related with each other to calculate the estimated cost for the proposed software
development.
Effort/Cost = (Personnel)(Environment)(Quality)(Size^
Process)
- Input by a user.
1.Organic: A development project can be treated of the organic type, if the project deals with
developing a well-understood application program, the size of the development team is
reasonably small, and the team members are experienced in developing similar methods of
projects. Examples of this type of projects are simple business systems, simple
inventory management systems, and data processing systems.
Intermediate Model
Detailed Model
1. Basic COCOMO Model: The basic COCOMO model provide an accurate size of the project parameters. The following
expressions give the basic COCOMO estimation model:
Effort=a1*(KLOC)^a2PM
Tdev=b1*(efforts)^b2 Months
Where
KLOC is the estimated size of the software product indicate in Kilo Lines of Code,
a1,a2,b1,b2 are constants for each group of software products,
Tdev is the estimated time to develop the software, expressed in months,
Effort is the total effort required to develop the software product, expressed in person months (PMs).
(i)Organic Mode
E = 2.4 * (400)1.05 = 1295.31 PM
D = 2.5 * (1295.31)0.38=38.07 PM
(ii)Semidetached Mode
E = 3.0 * (400)1.12=2462.79 PM
D = 2.5 * (2462.79)0.35=38.45 PM
(iii) Embedded Mode
E = 3.6 * (400)1.20 = 4772.81 PM
D = 2.5 * (4772.8)0.32 = 38 PM
Example 2: A project size of 200 KLOC is to be developed.
Software development team has average experience on
similar type of projects. The project schedule is not very
tight. Calculate the Effort, development time, average
staff size, and productivity of the project.
Hardware attributes -
Run-time performance constraints
Memory constraints
The volatility of the virtual machine environment
Required turnabout time
Personnel attributes -
Analyst capability
Software engineering capability
Applications experience
Virtual machine experience
Programming language experience
Project attributes -
Use of software tools
Application of software engineering methods
Required development schedule