Estimation sharbani bhattacharya

Sharbani Bhattacharya
Sharbani BhattacharyaVisiting Faculty at Govt. Polytechnic Faridabad um Govt. Polytechnic Faridabad
Software Engineering-
Estimate
Govt. Polytechnic(W)
FARIDABAD
1st September 2016

The software project planner must
estimate three things before a project
begins:
how long it will take
how much effort will be required
how many people will be involved
Software Project
Planner

Estimation of resources, cost, and
schedule for a software engineering effort
requires experience, access to good
historical information, and the courage to
commit to quantitative predictions when
qualitative information is all that exists.
Project Estimation

Estimation carries inherent risk1
and this risk leads to uncertainty.
Estimation

Accurate project estimates generally
use at least two of the three
techniques just noted.
Estimation

By comparing and reconciling
estimates derived using different
techniques the planner is more
likely to derive an accurate
estimate.
Estimation

Software cost and effort
estimation will never be an exact
science, but a combination of
good historical data and
systematic techniques can
improve estimation accuracy.
Estimation

To achieve reliable cost and effort estimates, a number
of options arise:
1. Delay estimation until late in the project (obviously,
we can achieve 100% accurate estimates after the project
is complete!).
2. Base estimates on similar projects that have already
been completed.
3. Use relatively simple decomposition techniques to
generate project cost and effort estimates.
4. Use one or more empirical models for software cost
and effort estimation.
Reliable Cost and Effort
Estimates

These automated estimation tools
allow the planner to estimate cost
and effort and to perform "what-if"
analyses for important project
variables such as delivery date or
staffing.
Automated Estimation
Tools

Sizing of project deliverables
Selecting project activities
Predicting staffing levels
Predicting software effort
Predicting software cost
Predicting software schedules
AUTOMATED
ESTIMATION TOOLS

The “size” of one or more software work
products is estimated. Work products
include the external representation of
software (e.g., screen, reports), the
software itself (e.g., KLOC), functionality
delivered (e.g., function points),
descriptive information (e.g. documents).
Sizing of project
deliverables

The appropriate process framework
is selected and the software
engineering task set is specified.
Selecting project activities

The number of people who will be
available to do the work is specified.
Because the relationship between people
available and work (predicted effort) is
highly nonlinear, this is an important
input.
Predicting staffing levels

Estimation tools use one or more
models that relate the size of the
project deliverables to the effort
required to produce them.
Predicting software effort

Given the results of Predicting
software effort, costs can be
computed by allocating labor rates to
the project activities noted in
Selecting project activities.
Predicting software cost

When effort, staffing level, and project
activities are known, a draft schedule can
be produced by allocating labor across
software engineering activities based on
recommended models for effort
distribution.
Predicting software
schedules

Decomposition techniques
Empirical estimation models
Techniques of Estimates

Decomposition techniques require a delineation of
major software functions, followed by estimates of
either
(1) the number of LOC
(2) selected values within the information domain
(3) the number of person-months required to
implement each function
(4) the number of person-months required for each
software engineering activity.
Decomposition
Techniques

Empirical techniques use empirically
derived expressions for effort and
time to predict these project
quantities.
Automated tools can be used to
implement a specific empirical
model.
Empirical Techniques

The accuracy of a software project estimate is
predicated on
(1)the degree to which the planner has properly
estimated the size of the product to be built.
(2) the ability to translate the size estimate into human
effort, calendar time, and dollars (a function of the
availability of reliable software metrics from past
projects).
(3) the degree to which the project plan reflects the
abilities of the software team.
(4) the stability of product requirements and the
environment that supports the software engineering
effort.
Software Sizing

Fuzzy logic sizing
Function point sizing
Standard component sizing
Change sizing
Software Sizing
Problem

This approach uses the approximate reasoning
techniques that are the cornerstone of fuzzy
logic. To apply this approach, the planner must
identify the type of application, establish its
magnitude on a qualitative scale, and then
refine the magnitude within the original range.
Although personal experience can be used, the
planner should also have access to a historical
database of projects so that estimates can be
compared to actual experience.
Fuzzy Logic Sizing

The planner develops estimates of
the information domain
characteristics.
Function Point Sizing
Software is composed of a number of different
“standard components” that are generic to a particular
application area.
For example, the standard components for an information
system are subsystems, modules, screens, reports, interactive
programs, batch programs, files, LOC, and object-level
instructions. The planner estimates that 18 reports will be
generated. Historical data indicates that 967 lines of
COBOL[PUT92] are required per report. This enables the
planner to estimate that17,000 LOC will be required for the
reports component. Similar estimates and computation are made
for other standard components, and a combined size value
(adjusted statistically) results.
Standard Component
Sizing
This approach is used when a project
encompasses the use of existing software that
must be modified in some way as part of a
project.
The planner estimates the number and type
(e.g., reuse, adding code, changing code,
deleting code) of modifications that must be
accomplished. Using
an “effort ratio” [PUT92] for each type of
change, the size of the change may be
estimated.
Change Sizing

LOC and FP data are used in two ways during
software project estimation:
(1) as an estimation variable to "size“ each
element of the software and
(2) as baseline metrics collected from past
projects and used in conjunction with
estimation variables to develop cost and effort
projections.
Problem-Based
Estimation

Baseline productivity metrics (e.g., LOC/pm
or FP/pm9) are then applied to the
appropriate estimation variable, and cost or
effort for the function is derived.
 Function estimates are combined to produce
an overall estimate for the entire project.
Problem-Based
Estimation

The LOC and FP estimation techniques differ
in the level of detail required for
decomposition and the target of the
partitioning.
When LOC is used as the estimation variable,
decomposition10 is absolutely essential and
is often taken to considerable levels of detail.
LOC and FP Estimation

Software engineering activities are contracted
to a third party who does the work at lower
cost and, hopefully, higher quality. Software
work conducted within a company is reduced
to a contract management activity.
Outsourcing

Process-based estimation begins with a
delineation of software functions obtained from
the project scope.
A series of software process activities must be
performed for each function.
Process-Based
Estimation

Functions and related software process activities may
be represented as part of a table similar to the one
presented.
Functions- Software
Process Activities

If process-based estimation is performed
independently of LOC or FP estimation, we
now have two or three estimates for cost and
effort that may be compared and reconciled.
 If both sets of estimates show reasonable
agreement, there is good reason to believe
that the estimates are reliable.
Process-based
Estimation

Estimates of effort (in person-months) for
each software engineering activity are
provided for each CAD software function
(abbreviated for brevity).
Example of Process-Based
Estimation

Total estimated effort for the CAD software range
from a low of 46 person-months (derived using a
process-based estimation approach) to a high of 58
person-months(derived using an FP estimation
approach).
The average estimate (using all three approaches) is
53 person-months. The maximum variation from the
average estimate is approximately 13 percent.
Example of Process-Based
Estimation

Divergent estimates can often be traced to one of two
causes:
1. The scope of the project is not adequately understood
or has been misinterpreted by the planner.
2. Productivity data used for problem-based estimation
techniques is inappropriate for the application, obsolete
(in that it no longer accurately reflects the software
engineering organization), or has been misapplied.
Example of Process-Based
Estimation
A typical estimation model is derived using
regression analysis on data collected from
past software projects. The overall structure of
such models takes the form
E = A + B x (ev)C
Where
A, B, and C are empirically derived constants,
E is effort in person-months, and
ev is the estimation variable (either LOC or FP).
Structure of Estimation
Models

Many LOC-oriented estimation models
proposed in the literature are
E = 5.2 x (KLOC)0.91 Walston-Felix model
E = 5.5 + 0.73 x (KLOC)1.16 Bailey-Basili
model
E = 3.2 x (KLOC)1.05 Boehm simple model
E = 5.288 x (KLOC)1.047 Doty model for
KLOC > 9
LOC-Oriented Estimation
Models

FP-oriented models have also been proposed
E = 13.39 + 0.0545 FP Albrecht and Gaffney
model
E = 60.62 x 7.728 x 10-8 FP3 Kemerer model
E = 585.7 + 15.12 FP Matson, Barnett, and
Mellichamp model
FP-Oriented Models

Decision to outsource can be either
Strategic
Tactical
Outsourcing

At the strategic level, business
managers consider whether a
significant portion of all software
work can be contracted to others.
Strategic Level

At the tactical level, a project
manager determines whether part or
all of a project can be best
accomplished by subcontracting the
software work.
Tactical Level

Software engineering managers are faced with a
make/buy decision that can be further complicated by a
number of acquisition options:
(1) Software may be purchased (or licensed) off-the-
shelf,
(2) “fullexperience” or “partial-experience” software
components maybe acquired and then modified and
integrated to meet specific needs, or
(3) Software may be custom built by an outside
contractor to meet the purchaser's specifications.
Make/Buy Decision

The software equation [PUT92] is a
dynamic multivariable model that
assumes a specific distribution of effort
over the life of a software development
project.
The model has been derived from
productivity data collected for over 4000
contemporary software projects.
Software Equation

Based on these data, an estimation model of the form
E = [LOC B0.333/P]3 (1/t4) (5-3)
where E = effort in person-months or person-years
t = project duration in months or years
B = “special skills factor”16
P = “productivity parameter” that reflects:
• Overall process maturity and management practices
• The extent to which good software engineering practices are used
• The level of programming languages used
• The state of the software environment
• The skills and experience of the software team
• The complexity of the application
Estimation Model

The estimation process and use a
more common form for their
estimation model, Putnam and
Myers.
Estimation Process

Minimum development time is defined as
 tmin = 8.14 (LOC/P)0.43 in months for tmin > 6 months (5-4a)
 E = 180 Bt3 in person-months for E ≥ 20 person-months (5-4b)
 Note that t in Equation (5-4b) is represented in years.
 Using Equations (5-4) with P = 12,000 (the recommended value
for scientific software)
 for the CAD software discussed earlier in this chapter,
 tmin = 8.14 (33200/12000)0.43
 tmin = 12.6 calendar months
 E = 180 0.28 (1.05)3
 E = 58 person-months
Estimation Process
Equation

Project complexity
Project size
Degree of Structural Uncertainty
Estimation Process

Project complexity has a strong effect on the uncertainty
inherent in planning. Complexity,however, is a relative
measure that is affected by familiarity with past effort.
The first-time developer of a sophisticated e-commerce
application might consider it to be exceedingly
complex.
Project Complexity

It is important factor that can affect the accuracy and
efficacy of estimates. As size increases, the
interdependency among various elements of the
software grows rapidly.
Problem decomposition, an important approach to
estimating, becomes more difficult because
decomposed elements may still be formidable.
To paraphrase Murphy's law: "What can go wrong will
go wrong”—and if there are more things that can fail,
more things will fail.
Project Size

It has an effect on estimation risk. In this context,
structure refers to the degree to which requirements
have been solidified, the ease with which functions can
be compartmentalized, and the hierarchical nature of
the information that must be processed.
Degree of Structural
Uncertainty

Barry Boehm [BOE81] introduced a hierarchy of
software estimation models bearing the name
COCOMO, for
COnstructive COst Model
It has evolved into a more comprehensive estimation
model, called COCOMO II.
COCOMO Model
 Application composition model-
Used during the early stages of software engineering, when
prototyping of user interfaces, consideration of software
and system interaction, assessment of performance, and
evaluation of technology maturity are paramount.
 Early design stage model-
Used once requirements have been stabilized and basic
software architecture has been established.
 Post-architecture-stage model-
Used during the construction of the software.
COCOMO II

The COCOMO II application composition model uses
object points and is illustrated in the following
paragraphs.
COCOMO II

The object point is an indirect software measure that is
computed using counts of the number of
(1) screens (at the user interface)
(2) reports,
(3) components likely to be required to build the
application.
Each object instance (e.g., a screen or report) is
classified into one of three complexity levels (i.e.,
simple, medium, or difficult) using criteria suggested
by Boehm.
Object Point

Once complexity is determined, the number of screens,
reports, and components are weighted.
The object point count is then determined by
multiplying the original number of object instances by
the weighting factor and summing to obtain a total
object point count.
When component-based development or general
software reuse is to be applied, the percent of reuse
(%reuse) is estimated and the object point count is
adjusted:
Estimated Effort

NOP = (object points) x [(100 %reuse)/100]
where NOP is defined as new object points.
To derive an estimate of effort based on the computed
NOP value, a “productivity rate” must be derived.
Table 5.2 presents the productivity rate
PROD = NOP/person-month
Estimated Effort

Productivity Rates for Object
Points

Once the productivity rate has been determined, an
estimate of project effort can be derived as
Estimated effort = NOP/PROD
Estimated Effort

The software equation [PUT92] is a dynamic multivariable
model that assumes a specific
distribution of effort over the life of a software
development project.
An estimation model of the form
E = [LOC B0.333/P]3 (1/t4)
Where
E = effort in person-months or person-years
t = project duration in months or years
B = “special skills factor”16
P = “productivity parameter”
Software Equation

Overall process maturity and management
practices
The extent to which good software
engineering practices are used
The level of programming languages used
The state of the software environment
The skills and experience of the software
team
The complexity of the application
Productivity Parameter

It is important to note that the software
equation has two independent
parameters:
(1)An estimate of size (in LOC) and
(2)An indication of project duration in
calendar months or years.
Parameters Software
Equation

Minimum development time is defined as
tmin = 8.14 (LOC/P)0.43 in months for tmin
> 6 months
E = 180 Bt3 in person-months for E ≥ 20
person-months
Minimum
Development Time

with P = 12,000 for the CAD software
tmin = 8.14 (33200/12000)0.43
tmin = 12.6 calendar months
E = 180 0.28 (1.05)3
E = 58 person-months
Minimum
Development Time

Halstead proposed metrics or length and volume
of a program based on the number of operators
and operands.
n1 is the number of distinct operators
n2 is the number of distinct operands
f1 is the number of occurrences of the jth most
frequent operator
f2 is the number of occurrences of the jth most
frequent operand
Halstead’s Measure

Vocublary n of a program is defined as
n= n1 + n1
N1 = ∑ f1,j N2 = ∑ f2,j
N1 Total number of occurrence of different
operators in the program
N2 Total number of occurrence of different
operands in the program
The length of program is
N=N1+ N2
Halstead’s Measure

The Volume V of program is defined as
V= Nlog2(n)
log2(n)is the number of bits needed to represent
every element in the program
N is the total occurrences of the different
elements.
Volume is used as size metric for a program.
Halstead’s Measure
n1 is the number of unique operators
n2 is the number of unique operands
N1 is total frequency of operator
N2 is total frequency of operand
n1 /2 relative level of difficulty due to the larger
number of operators in the program
N1 / n2 represents the average number of times an
operand is used
Halstead’s Measure

Ease of reading and writing is defined by
D= N1 *n2 /2 * n2
Halstead’s Measure

 Software Engineering by Somerville
 Software Engineering-Pressman
 Software Engineering- Pankaj Jalote
 Software Engineering Tutorial Point
 Software Engineering Wikipedia
REFERENCES

THANK YOU
1 von 70

Más contenido relacionado

Destacado(8)

Software Estimation Part ISoftware Estimation Part I
Software Estimation Part I
sslovepk1.3K views
Ch26Ch26
Ch26
phanleson1.3K views
Software Project Estimation Survival GuideSoftware Project Estimation Survival Guide
Software Project Estimation Survival Guide
michaelcummings6.8K views
Software Project Planning 1Software Project Planning 1
Software Project Planning 1
Gagan Deep8.8K views
Software cost estimationSoftware cost estimation
Software cost estimation
Haitham Ahmed8.2K views
Estimation techniques and software metricsEstimation techniques and software metrics
Estimation techniques and software metrics
Mae Abigail Banquil19.7K views

Similar a Estimation sharbani bhattacharya(20)

Unit   5Unit   5
Unit 5
Jignesh Kariya4.6K views
Lecture5Lecture5
Lecture5
soloeng1.1K views
CS8494 SOFTWARE ENGINEERING Unit-5CS8494 SOFTWARE ENGINEERING Unit-5
CS8494 SOFTWARE ENGINEERING Unit-5
SIMONTHOMAS S331 views
Cost effort.pptCost effort.ppt
Cost effort.ppt
Jayaprasanna41 view
SE-Lecture-5.pptxSE-Lecture-5.pptx
SE-Lecture-5.pptx
vishal choudhary3 views
Comparison of available Methods to Estimate Effort, Performance and Cost with...Comparison of available Methods to Estimate Effort, Performance and Cost with...
Comparison of available Methods to Estimate Effort, Performance and Cost with...
International Journal of Engineering Inventions www.ijeijournal.com997 views
Lecture6Lecture6
Lecture6
soloeng2.1K views
Software  cost estimation projectSoftware  cost estimation project
Software cost estimation project
Shashank Puppala21.1K views
Project SchedulingProject Scheduling
Project Scheduling
MSharmilaDeviITDEPT364 views
Extreme software estimation (xsoft estimation)Extreme software estimation (xsoft estimation)
Extreme software estimation (xsoft estimation)
eSAT Publishing House290 views
Web Engineering - Web Effort EstimationWeb Engineering - Web Effort Estimation
Web Engineering - Web Effort Estimation
Nosheen Qamar3.9K views
Project managementProject management
Project management
Ahmed Said4.3K views
Basic-Project-Estimation-1999Basic-Project-Estimation-1999
Basic-Project-Estimation-1999
Michael Wigley61 views

Más de Sharbani Bhattacharya(20)

JavascriptJavascript
Javascript
Sharbani Bhattacharya168 views
PHP programmimgPHP programmimg
PHP programmimg
Sharbani Bhattacharya939 views
Sharbani Bhattacharya SE design & ImplementationSharbani Bhattacharya SE design & Implementation
Sharbani Bhattacharya SE design & Implementation
Sharbani Bhattacharya175 views
Visual Basic –User Interface- VVisual Basic –User Interface- V
Visual Basic –User Interface- V
Sharbani Bhattacharya685 views
Visual Basic User Interface-VIVisual Basic User Interface-VI
Visual Basic User Interface-VI
Sharbani Bhattacharya329 views
Microsoft Front PageMicrosoft Front Page
Microsoft Front Page
Sharbani Bhattacharya326 views
Visual Basic User Interface-IIIVisual Basic User Interface-III
Visual Basic User Interface-III
Sharbani Bhattacharya183 views
Visual Basic User Interface -IVVisual Basic User Interface -IV
Visual Basic User Interface -IV
Sharbani Bhattacharya220 views
Sharbani Bhattacharya VB User Interface1Sharbani Bhattacharya VB User Interface1
Sharbani Bhattacharya VB User Interface1
Sharbani Bhattacharya91 views
Sharbani bhattacharya VB StructuresSharbani bhattacharya VB Structures
Sharbani bhattacharya VB Structures
Sharbani Bhattacharya132 views
Slcm sharbani bhattacharyaSlcm sharbani bhattacharya
Slcm sharbani bhattacharya
Sharbani Bhattacharya431 views
SE Introduction sharbani bhattacharyaSE Introduction sharbani bhattacharya
SE Introduction sharbani bhattacharya
Sharbani Bhattacharya80 views
Sharbani bhattacharya Macromedia-flashSharbani bhattacharya Macromedia-flash
Sharbani bhattacharya Macromedia-flash
Sharbani Bhattacharya88 views
Sharbani bhattacharya Visual BasicSharbani bhattacharya Visual Basic
Sharbani bhattacharya Visual Basic
Sharbani Bhattacharya122 views
Sharbani bhattacharya gyanodya 2014Sharbani bhattacharya gyanodya 2014
Sharbani bhattacharya gyanodya 2014
Sharbani Bhattacharya326 views
Sharbani bhattacharya sacta 2014Sharbani bhattacharya sacta 2014
Sharbani bhattacharya sacta 2014
Sharbani Bhattacharya178 views

Estimation sharbani bhattacharya

  • 2.  The software project planner must estimate three things before a project begins: how long it will take how much effort will be required how many people will be involved Software Project Planner
  • 3.  Estimation of resources, cost, and schedule for a software engineering effort requires experience, access to good historical information, and the courage to commit to quantitative predictions when qualitative information is all that exists. Project Estimation
  • 4.  Estimation carries inherent risk1 and this risk leads to uncertainty. Estimation
  • 5.  Accurate project estimates generally use at least two of the three techniques just noted. Estimation
  • 6.  By comparing and reconciling estimates derived using different techniques the planner is more likely to derive an accurate estimate. Estimation
  • 7.  Software cost and effort estimation will never be an exact science, but a combination of good historical data and systematic techniques can improve estimation accuracy. Estimation
  • 8.  To achieve reliable cost and effort estimates, a number of options arise: 1. Delay estimation until late in the project (obviously, we can achieve 100% accurate estimates after the project is complete!). 2. Base estimates on similar projects that have already been completed. 3. Use relatively simple decomposition techniques to generate project cost and effort estimates. 4. Use one or more empirical models for software cost and effort estimation. Reliable Cost and Effort Estimates
  • 9.  These automated estimation tools allow the planner to estimate cost and effort and to perform "what-if" analyses for important project variables such as delivery date or staffing. Automated Estimation Tools
  • 10.  Sizing of project deliverables Selecting project activities Predicting staffing levels Predicting software effort Predicting software cost Predicting software schedules AUTOMATED ESTIMATION TOOLS
  • 11.  The “size” of one or more software work products is estimated. Work products include the external representation of software (e.g., screen, reports), the software itself (e.g., KLOC), functionality delivered (e.g., function points), descriptive information (e.g. documents). Sizing of project deliverables
  • 12.  The appropriate process framework is selected and the software engineering task set is specified. Selecting project activities
  • 13.  The number of people who will be available to do the work is specified. Because the relationship between people available and work (predicted effort) is highly nonlinear, this is an important input. Predicting staffing levels
  • 14.  Estimation tools use one or more models that relate the size of the project deliverables to the effort required to produce them. Predicting software effort
  • 15.  Given the results of Predicting software effort, costs can be computed by allocating labor rates to the project activities noted in Selecting project activities. Predicting software cost
  • 16.  When effort, staffing level, and project activities are known, a draft schedule can be produced by allocating labor across software engineering activities based on recommended models for effort distribution. Predicting software schedules
  • 18.  Decomposition techniques require a delineation of major software functions, followed by estimates of either (1) the number of LOC (2) selected values within the information domain (3) the number of person-months required to implement each function (4) the number of person-months required for each software engineering activity. Decomposition Techniques
  • 19.  Empirical techniques use empirically derived expressions for effort and time to predict these project quantities. Automated tools can be used to implement a specific empirical model. Empirical Techniques
  • 20.  The accuracy of a software project estimate is predicated on (1)the degree to which the planner has properly estimated the size of the product to be built. (2) the ability to translate the size estimate into human effort, calendar time, and dollars (a function of the availability of reliable software metrics from past projects). (3) the degree to which the project plan reflects the abilities of the software team. (4) the stability of product requirements and the environment that supports the software engineering effort. Software Sizing
  • 21.  Fuzzy logic sizing Function point sizing Standard component sizing Change sizing Software Sizing Problem
  • 22.  This approach uses the approximate reasoning techniques that are the cornerstone of fuzzy logic. To apply this approach, the planner must identify the type of application, establish its magnitude on a qualitative scale, and then refine the magnitude within the original range. Although personal experience can be used, the planner should also have access to a historical database of projects so that estimates can be compared to actual experience. Fuzzy Logic Sizing
  • 23.  The planner develops estimates of the information domain characteristics. Function Point Sizing
  • 24. Software is composed of a number of different “standard components” that are generic to a particular application area. For example, the standard components for an information system are subsystems, modules, screens, reports, interactive programs, batch programs, files, LOC, and object-level instructions. The planner estimates that 18 reports will be generated. Historical data indicates that 967 lines of COBOL[PUT92] are required per report. This enables the planner to estimate that17,000 LOC will be required for the reports component. Similar estimates and computation are made for other standard components, and a combined size value (adjusted statistically) results. Standard Component Sizing
  • 25. This approach is used when a project encompasses the use of existing software that must be modified in some way as part of a project. The planner estimates the number and type (e.g., reuse, adding code, changing code, deleting code) of modifications that must be accomplished. Using an “effort ratio” [PUT92] for each type of change, the size of the change may be estimated. Change Sizing
  • 26.  LOC and FP data are used in two ways during software project estimation: (1) as an estimation variable to "size“ each element of the software and (2) as baseline metrics collected from past projects and used in conjunction with estimation variables to develop cost and effort projections. Problem-Based Estimation
  • 27.  Baseline productivity metrics (e.g., LOC/pm or FP/pm9) are then applied to the appropriate estimation variable, and cost or effort for the function is derived.  Function estimates are combined to produce an overall estimate for the entire project. Problem-Based Estimation
  • 28.  The LOC and FP estimation techniques differ in the level of detail required for decomposition and the target of the partitioning. When LOC is used as the estimation variable, decomposition10 is absolutely essential and is often taken to considerable levels of detail. LOC and FP Estimation
  • 29.  Software engineering activities are contracted to a third party who does the work at lower cost and, hopefully, higher quality. Software work conducted within a company is reduced to a contract management activity. Outsourcing
  • 30.  Process-based estimation begins with a delineation of software functions obtained from the project scope. A series of software process activities must be performed for each function. Process-Based Estimation
  • 31.  Functions and related software process activities may be represented as part of a table similar to the one presented. Functions- Software Process Activities
  • 32.  If process-based estimation is performed independently of LOC or FP estimation, we now have two or three estimates for cost and effort that may be compared and reconciled.  If both sets of estimates show reasonable agreement, there is good reason to believe that the estimates are reliable. Process-based Estimation
  • 33.  Estimates of effort (in person-months) for each software engineering activity are provided for each CAD software function (abbreviated for brevity). Example of Process-Based Estimation
  • 34.  Total estimated effort for the CAD software range from a low of 46 person-months (derived using a process-based estimation approach) to a high of 58 person-months(derived using an FP estimation approach). The average estimate (using all three approaches) is 53 person-months. The maximum variation from the average estimate is approximately 13 percent. Example of Process-Based Estimation
  • 35.  Divergent estimates can often be traced to one of two causes: 1. The scope of the project is not adequately understood or has been misinterpreted by the planner. 2. Productivity data used for problem-based estimation techniques is inappropriate for the application, obsolete (in that it no longer accurately reflects the software engineering organization), or has been misapplied. Example of Process-Based Estimation
  • 36. A typical estimation model is derived using regression analysis on data collected from past software projects. The overall structure of such models takes the form E = A + B x (ev)C Where A, B, and C are empirically derived constants, E is effort in person-months, and ev is the estimation variable (either LOC or FP). Structure of Estimation Models
  • 37.  Many LOC-oriented estimation models proposed in the literature are E = 5.2 x (KLOC)0.91 Walston-Felix model E = 5.5 + 0.73 x (KLOC)1.16 Bailey-Basili model E = 3.2 x (KLOC)1.05 Boehm simple model E = 5.288 x (KLOC)1.047 Doty model for KLOC > 9 LOC-Oriented Estimation Models
  • 38.  FP-oriented models have also been proposed E = 13.39 + 0.0545 FP Albrecht and Gaffney model E = 60.62 x 7.728 x 10-8 FP3 Kemerer model E = 585.7 + 15.12 FP Matson, Barnett, and Mellichamp model FP-Oriented Models
  • 39.  Decision to outsource can be either Strategic Tactical Outsourcing
  • 40.  At the strategic level, business managers consider whether a significant portion of all software work can be contracted to others. Strategic Level
  • 41.  At the tactical level, a project manager determines whether part or all of a project can be best accomplished by subcontracting the software work. Tactical Level
  • 42.  Software engineering managers are faced with a make/buy decision that can be further complicated by a number of acquisition options: (1) Software may be purchased (or licensed) off-the- shelf, (2) “fullexperience” or “partial-experience” software components maybe acquired and then modified and integrated to meet specific needs, or (3) Software may be custom built by an outside contractor to meet the purchaser's specifications. Make/Buy Decision
  • 43.  The software equation [PUT92] is a dynamic multivariable model that assumes a specific distribution of effort over the life of a software development project. The model has been derived from productivity data collected for over 4000 contemporary software projects. Software Equation
  • 44.  Based on these data, an estimation model of the form E = [LOC B0.333/P]3 (1/t4) (5-3) where E = effort in person-months or person-years t = project duration in months or years B = “special skills factor”16 P = “productivity parameter” that reflects: • Overall process maturity and management practices • The extent to which good software engineering practices are used • The level of programming languages used • The state of the software environment • The skills and experience of the software team • The complexity of the application Estimation Model
  • 45.  The estimation process and use a more common form for their estimation model, Putnam and Myers. Estimation Process
  • 46.  Minimum development time is defined as  tmin = 8.14 (LOC/P)0.43 in months for tmin > 6 months (5-4a)  E = 180 Bt3 in person-months for E ≥ 20 person-months (5-4b)  Note that t in Equation (5-4b) is represented in years.  Using Equations (5-4) with P = 12,000 (the recommended value for scientific software)  for the CAD software discussed earlier in this chapter,  tmin = 8.14 (33200/12000)0.43  tmin = 12.6 calendar months  E = 180 0.28 (1.05)3  E = 58 person-months Estimation Process Equation
  • 47.  Project complexity Project size Degree of Structural Uncertainty Estimation Process
  • 48.  Project complexity has a strong effect on the uncertainty inherent in planning. Complexity,however, is a relative measure that is affected by familiarity with past effort. The first-time developer of a sophisticated e-commerce application might consider it to be exceedingly complex. Project Complexity
  • 49.  It is important factor that can affect the accuracy and efficacy of estimates. As size increases, the interdependency among various elements of the software grows rapidly. Problem decomposition, an important approach to estimating, becomes more difficult because decomposed elements may still be formidable. To paraphrase Murphy's law: "What can go wrong will go wrong”—and if there are more things that can fail, more things will fail. Project Size
  • 50.  It has an effect on estimation risk. In this context, structure refers to the degree to which requirements have been solidified, the ease with which functions can be compartmentalized, and the hierarchical nature of the information that must be processed. Degree of Structural Uncertainty
  • 51.  Barry Boehm [BOE81] introduced a hierarchy of software estimation models bearing the name COCOMO, for COnstructive COst Model It has evolved into a more comprehensive estimation model, called COCOMO II. COCOMO Model
  • 52.  Application composition model- Used during the early stages of software engineering, when prototyping of user interfaces, consideration of software and system interaction, assessment of performance, and evaluation of technology maturity are paramount.  Early design stage model- Used once requirements have been stabilized and basic software architecture has been established.  Post-architecture-stage model- Used during the construction of the software. COCOMO II
  • 53.  The COCOMO II application composition model uses object points and is illustrated in the following paragraphs. COCOMO II
  • 54.  The object point is an indirect software measure that is computed using counts of the number of (1) screens (at the user interface) (2) reports, (3) components likely to be required to build the application. Each object instance (e.g., a screen or report) is classified into one of three complexity levels (i.e., simple, medium, or difficult) using criteria suggested by Boehm. Object Point
  • 55.  Once complexity is determined, the number of screens, reports, and components are weighted. The object point count is then determined by multiplying the original number of object instances by the weighting factor and summing to obtain a total object point count. When component-based development or general software reuse is to be applied, the percent of reuse (%reuse) is estimated and the object point count is adjusted: Estimated Effort
  • 56.  NOP = (object points) x [(100 %reuse)/100] where NOP is defined as new object points. To derive an estimate of effort based on the computed NOP value, a “productivity rate” must be derived. Table 5.2 presents the productivity rate PROD = NOP/person-month Estimated Effort
  • 57.  Productivity Rates for Object Points
  • 58.  Once the productivity rate has been determined, an estimate of project effort can be derived as Estimated effort = NOP/PROD Estimated Effort
  • 59.  The software equation [PUT92] is a dynamic multivariable model that assumes a specific distribution of effort over the life of a software development project. An estimation model of the form E = [LOC B0.333/P]3 (1/t4) Where E = effort in person-months or person-years t = project duration in months or years B = “special skills factor”16 P = “productivity parameter” Software Equation
  • 60.  Overall process maturity and management practices The extent to which good software engineering practices are used The level of programming languages used The state of the software environment The skills and experience of the software team The complexity of the application Productivity Parameter
  • 61.  It is important to note that the software equation has two independent parameters: (1)An estimate of size (in LOC) and (2)An indication of project duration in calendar months or years. Parameters Software Equation
  • 62.  Minimum development time is defined as tmin = 8.14 (LOC/P)0.43 in months for tmin > 6 months E = 180 Bt3 in person-months for E ≥ 20 person-months Minimum Development Time
  • 63.  with P = 12,000 for the CAD software tmin = 8.14 (33200/12000)0.43 tmin = 12.6 calendar months E = 180 0.28 (1.05)3 E = 58 person-months Minimum Development Time
  • 64.  Halstead proposed metrics or length and volume of a program based on the number of operators and operands. n1 is the number of distinct operators n2 is the number of distinct operands f1 is the number of occurrences of the jth most frequent operator f2 is the number of occurrences of the jth most frequent operand Halstead’s Measure
  • 65.  Vocublary n of a program is defined as n= n1 + n1 N1 = ∑ f1,j N2 = ∑ f2,j N1 Total number of occurrence of different operators in the program N2 Total number of occurrence of different operands in the program The length of program is N=N1+ N2 Halstead’s Measure
  • 66.  The Volume V of program is defined as V= Nlog2(n) log2(n)is the number of bits needed to represent every element in the program N is the total occurrences of the different elements. Volume is used as size metric for a program. Halstead’s Measure
  • 67. n1 is the number of unique operators n2 is the number of unique operands N1 is total frequency of operator N2 is total frequency of operand n1 /2 relative level of difficulty due to the larger number of operators in the program N1 / n2 represents the average number of times an operand is used Halstead’s Measure
  • 68.  Ease of reading and writing is defined by D= N1 *n2 /2 * n2 Halstead’s Measure
  • 69.   Software Engineering by Somerville  Software Engineering-Pressman  Software Engineering- Pankaj Jalote  Software Engineering Tutorial Point  Software Engineering Wikipedia REFERENCES