software project estimation models - welcome to … cost estimation determine size of the product....

55
Software Project Estimation Models Software Project Estimation Models Dr. Satinder Dr. Satinder Bal Gupta Bal Gupta 1 Dr. Satinder Bal Gupta, VCE, Rohtak

Upload: lamthu

Post on 22-Mar-2018

218 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Software Project Estimation ModelsSoftware Project Estimation Models

Dr. Satinder Dr. Satinder Bal GuptaBal Gupta

1Dr. Satinder Bal Gupta, VCE, Rohtak

Page 2: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Software Cost EstimationSoftware Cost Estimation

�� Determine Determine sizesize of the product.of the product.

�� From the size estimate, From the size estimate,

�� determine the determine the efforteffort needed.needed.

From the effort estimate, From the effort estimate, �� From the effort estimate, From the effort estimate,

�� determine determine project duration, and costproject duration, and cost..

2Dr. Satinder Bal Gupta, VCE, Rohtak

Page 3: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Software Cost EstimationSoftware Cost Estimation

Size

Effort Estimation

Cost Estimation

Staffing Size Estimation

Duration Estimation

Staffing Estimation

Scheduling

3Dr. Satinder Bal Gupta, VCE, Rohtak

Page 4: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Software Cost EstimationSoftware Cost Estimation

�� Three main approaches to estimation:Three main approaches to estimation:

��EmpiricalEmpirical

��HeuristicHeuristic��HeuristicHeuristic

��AnalyticalAnalytical

4Dr. Satinder Bal Gupta, VCE, Rohtak

Page 5: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Software Cost EstimationSoftware Cost Estimation TechniquesTechniques

�� Empirical techniquesEmpirical techniques::�� an educated guess based on past experience.an educated guess based on past experience.

�� Heuristic techniques:Heuristic techniques:�� assume that the characteristics to be assume that the characteristics to be

estimated can be expressed in terms of estimated can be expressed in terms of estimated can be expressed in terms of estimated can be expressed in terms of some mathematical expression. some mathematical expression.

�� Analytical techniques:Analytical techniques:�� derive the required results starting from derive the required results starting from

certain simple assumptions.certain simple assumptions.

5Dr. Satinder Bal Gupta, VCE, Rohtak

Page 6: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Software Size MetricsSoftware Size Metrics

�� LOC (Lines of Code):LOC (Lines of Code):

��Simplest and most widely used Simplest and most widely used metric.metric.metric.metric.

��Comments and blank lines should Comments and blank lines should not be counted.not be counted.

6Dr. Satinder Bal Gupta, VCE, Rohtak

Page 7: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Disadvantages of Using LOCDisadvantages of Using LOC

�� Size can vary with coding style.Size can vary with coding style.

�� Focuses on coding activity alone.Focuses on coding activity alone.

�� Correlates poorly with quality and Correlates poorly with quality and efficiency of code.efficiency of code.Correlates poorly with quality and Correlates poorly with quality and efficiency of code.efficiency of code.

�� Penalizes higher level Penalizes higher level programming languages, code programming languages, code reuse, etc.reuse, etc.

7Dr. Satinder Bal Gupta, VCE, Rohtak

Page 8: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Disadvantages of Using LOC Disadvantages of Using LOC (cont...)(cont...)

�� Measures lexical/textual Measures lexical/textual complexity only. complexity only.

��does not address the issues of does not address the issues of ��does not address the issues of does not address the issues of structural or logical complexity.structural or logical complexity.

�� Difficult to estimate LOC from Difficult to estimate LOC from problem description.problem description.

��So not useful for project planningSo not useful for project planning

8Dr. Satinder Bal Gupta, VCE, Rohtak

Page 9: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Function Point MetricFunction Point Metric

�� Overcomes some of the shortcomings of Overcomes some of the shortcomings of the LOC metricthe LOC metric

�� Proposed by Albrecht in early 80's:Proposed by Albrecht in early 80's:

FP=4 #inputs + 5 #Outputs + 4 FP=4 #inputs + 5 #Outputs + 4 �� FP=4 #inputs + 5 #Outputs + 4 FP=4 #inputs + 5 #Outputs + 4 #inquiries + 10 #files + 10 #interfaces #inquiries + 10 #files + 10 #interfaces

�� Input:Input:

�� A set of related inputs is counted as one input.A set of related inputs is counted as one input.

9Dr. Satinder Bal Gupta, VCE, Rohtak

Page 10: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Function Point MetricFunction Point Metric

�� Output:Output:

�� A set of related outputs is counted as one output.A set of related outputs is counted as one output.

�� Inquiries:Inquiries:

�� Each user query type is counted.Each user query type is counted.Each user query type is counted.Each user query type is counted.

�� Files:Files:

�� Files are logically related data and thus can be data Files are logically related data and thus can be data structures or physical files.structures or physical files.

�� Interface:Interface:

�� Data transfer to other systems.Data transfer to other systems.

10Dr. Satinder Bal Gupta, VCE, Rohtak

Page 11: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Function Point MetricFunction Point Metric (CONT.)(CONT.)

�� Suffers from a major drawback:Suffers from a major drawback:

�� the size of a function is considered to be the size of a function is considered to be independent of its complexityindependent of its complexity..

Extend function point metric:Extend function point metric:�� Extend function point metric:Extend function point metric:

�� Feature Point metric:Feature Point metric:

�� considers an extra parameter:considers an extra parameter:

�� Algorithm Complexity.Algorithm Complexity.

11Dr. Satinder Bal Gupta, VCE, Rohtak

Page 12: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Function Point MetricFunction Point Metric (CONT.)(CONT.)

�� Proponents claim: Proponents claim:

�� FP is language independent.FP is language independent.

�� Size can be easily derived from problem Size can be easily derived from problem descriptiondescriptiondescriptiondescription

�� Opponents claim: Opponents claim:

�� it is subjective it is subjective ------ Different people can Different people can come up with different estimates for the come up with different estimates for the same problem.same problem.

12Dr. Satinder Bal Gupta, VCE, Rohtak

Page 13: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Empirical Size Estimation Empirical Size Estimation TechniquesTechniques

�� Expert Judgement:Expert Judgement:��A guess made by an expert.A guess made by an expert.

��Suffers from individual bias.Suffers from individual bias.Suffers from individual bias.Suffers from individual bias.

�� Delphi Estimation:Delphi Estimation:��overcomes some of the problems of overcomes some of the problems of

expert judgement.expert judgement.

13Dr. Satinder Bal Gupta, VCE, Rohtak

Page 14: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Expert judgementExpert judgement

�� Experts divide a software product into Experts divide a software product into component units: component units:

�� e.g. GUI, database module, data e.g. GUI, database module, data communication module, billing module, communication module, billing module, communication module, billing module, communication module, billing module, etc. etc.

�� Add up the guesses for each of the Add up the guesses for each of the components.components.

14Dr. Satinder Bal Gupta, VCE, Rohtak

Page 15: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Delphi EstimationDelphi Estimation

�� Team of Experts and a coordinator.Team of Experts and a coordinator.

�� Experts carry out estimation Experts carry out estimation independently:independently:

mention the rationale behind their mention the rationale behind their �� mention the rationale behind their mention the rationale behind their estimation.estimation.

�� coordinator notes down any coordinator notes down any extraordinary rationale:extraordinary rationale:�� circulates among experts.circulates among experts.

15Dr. Satinder Bal Gupta, VCE, Rohtak

Page 16: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Delphi EstimationDelphi Estimation

�� Experts reExperts re--estimate.estimate.

�� Experts never meet each otherExperts never meet each other

�� to discuss their viewpoints.to discuss their viewpoints.�� to discuss their viewpoints.to discuss their viewpoints.

16Dr. Satinder Bal Gupta, VCE, Rohtak

Page 17: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Heuristic Estimation TechniquesHeuristic Estimation Techniques

�� Single Variable Model:Single Variable Model:�� Parameter to be Estimated=C1(Estimated Parameter to be Estimated=C1(Estimated

Characteristic)d1Characteristic)d1

�� Multivariable Model:Multivariable Model:�� Multivariable Model:Multivariable Model:�� Assumes that the parameter to be estimated Assumes that the parameter to be estimated

depends on more than one characteristic.depends on more than one characteristic.�� Parameter to be Estimated=C1(Estimated Characteristic)d1+ Parameter to be Estimated=C1(Estimated Characteristic)d1+

C2(Estimated Characteristic)d2+…C2(Estimated Characteristic)d2+…

�� Usually more accurate than single variable Usually more accurate than single variable models.models.

17Dr. Satinder Bal Gupta, VCE, Rohtak

Page 18: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

COCOMO ModelCOCOMO Model

�� COCOMO (COCOMO (COCOnstructive nstructive COCOst st MOMOdel) del) proposed by Boehm.proposed by Boehm.

�� Divides software product Divides software product developments into 3 categories: developments into 3 categories: developments into 3 categories: developments into 3 categories:

�� Organic Organic

�� Semidetached Semidetached

�� EmbeddedEmbedded

18Dr. Satinder Bal Gupta, VCE, Rohtak

Page 19: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

COCOMO Product classesCOCOMO Product classes

�� Roughly correspond to: Roughly correspond to:

�� application, utility and system programs application, utility and system programs respectively.respectively.

Data processing and scientific programs are Data processing and scientific programs are �� Data processing and scientific programs are Data processing and scientific programs are considered to be considered to be application programs. application programs.

�� Compilers, linkers, editors, etc., are Compilers, linkers, editors, etc., are utility utility programs. programs.

�� Operating systems and realOperating systems and real--time system time system programs, etc. are programs, etc. are system programs. system programs.

19Dr. Satinder Bal Gupta, VCE, Rohtak

Page 20: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Elaboration of Product classesElaboration of Product classes

�� Organic:Organic:�� Relatively small groups Relatively small groups

�� working to develop wellworking to develop well--understood applications.understood applications.

�� Semidetached:Semidetached:�� Semidetached:Semidetached:�� Project team consists of a mixture of Project team consists of a mixture of

experienced and inexperienced staff. experienced and inexperienced staff.

�� Embedded:Embedded:�� The software is strongly coupled to complex The software is strongly coupled to complex

hardware, or realhardware, or real--time systems.time systems.

20Dr. Satinder Bal Gupta, VCE, Rohtak

Page 21: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

COCOMO ModelCOCOMO Model (CONT.)(CONT.)

�� For each of the three product categories: For each of the three product categories:

�� From size estimation (in KLOC), From size estimation (in KLOC), Boehm provides Boehm provides equations to predict:equations to predict:

�� project duration in months project duration in months �� project duration in months project duration in months

�� effort in programmereffort in programmer--months months

�� Boehm obtained these equations: Boehm obtained these equations:

�� examined historical data collected from a examined historical data collected from a large number of actual projects. large number of actual projects.

21Dr. Satinder Bal Gupta, VCE, Rohtak

Page 22: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

COCOMO ModelCOCOMO Model (CONT.)(CONT.)

�� Software cost estimation is done Software cost estimation is done through three stages: through three stages:

��Basic COCOMO,Basic COCOMO,��Basic COCOMO,Basic COCOMO,

�� Intermediate COCOMO, Intermediate COCOMO,

��Complete COCOMO.Complete COCOMO.

22Dr. Satinder Bal Gupta, VCE, Rohtak

Page 23: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Basic COCOMO ModelBasic COCOMO Model (CONT.)(CONT.)

�� Gives only an approximate Gives only an approximate estimation:estimation:�� Effort = a1*(KLOC)Effort = a1*(KLOC)a2a2

�� Tdev = b1*(Effort)Tdev = b1*(Effort)b2b2

KLOC is the estimated kilo lines of source KLOC is the estimated kilo lines of source �� KLOC is the estimated kilo lines of source KLOC is the estimated kilo lines of source code,code,

�� a1,a2,b1,b2 are constants for different a1,a2,b1,b2 are constants for different categories of software products, categories of software products,

�� Tdev is the estimated time to develop the Tdev is the estimated time to develop the software in months, software in months,

�� Effort estimation is obtained in terms of Effort estimation is obtained in terms of person months (PMs).person months (PMs).

23Dr. Satinder Bal Gupta, VCE, Rohtak

Page 24: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Development Effort EstimationDevelopment Effort Estimation

�� Organic :Organic :

�� Effort = 2.4*(KLOC)Effort = 2.4*(KLOC)1.051.05 PMPM

�� SemiSemi--detached: detached: �� SemiSemi--detached: detached:

��Effort = 3.0*(KLOC)Effort = 3.0*(KLOC)1.121.12 PM PM

�� Embedded: Embedded:

��Effort = 3.6*(KLOC)Effort = 3.6*(KLOC)1.20 1.20 PMPM

24Dr. Satinder Bal Gupta, VCE, Rohtak

Page 25: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Development Time EstimationDevelopment Time Estimation

�� Organic:Organic:

��Tdev = 2.5*(Effort)Tdev = 2.5*(Effort)0.380.38 MonthsMonths

�� SemiSemi--detached:detached:�� SemiSemi--detached:detached:

��Tdev = 2.5*(Effort)Tdev = 2.5*(Effort)0.350.35 MonthsMonths

�� Embedded:Embedded:

��Tdev = 2.5*(Effort)Tdev = 2.5*(Effort)0.320.32 MonthsMonths

25Dr. Satinder Bal Gupta, VCE, Rohtak

Page 26: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Basic COCOMO ModelBasic COCOMO Model (CONT.)(CONT.)

�� Effort is somewhat superEffort is somewhat super--linear in problem linear in problem size.size.

Eff

ort

Size

26Dr. Satinder Bal Gupta, VCE, Rohtak

Page 27: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Basic COCOMO ModelBasic COCOMO Model (CONT.)(CONT.)

�� Development time Development time �� sublinear function sublinear function

of product size.of product size.

�� When product size When product size increases two increases two times, times,

. Tim

etimes, times, �� development time development time

does not double.does not double.

�� Time taken: Time taken: �� almost same for all almost same for all

the three product the three product categories.categories. Size

Dev

. Tim

e

60K

18 Months

14 Months

30K

27Dr. Satinder Bal Gupta, VCE, Rohtak

Page 28: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Basic COCOMO ModelBasic COCOMO Model (CONT.)(CONT.)

�� Development time is roughly the same for Development time is roughly the same for all the three categories of products:all the three categories of products:

�� For example, a 60 KLOC program can be For example, a 60 KLOC program can be developed in approximately 18 monthsdeveloped in approximately 18 monthsdeveloped in approximately 18 monthsdeveloped in approximately 18 months

�� regardless of whether it is of organic, semiregardless of whether it is of organic, semi--detached, or embedded type.detached, or embedded type.

�� There is more scope for parallel activities for There is more scope for parallel activities for system and application programs, system and application programs,

�� than utility programs.than utility programs.

28Dr. Satinder Bal Gupta, VCE, Rohtak

Page 29: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

ExampleExample�� The size of an organic software product The size of an organic software product

has been estimated to be 32,000 lines of has been estimated to be 32,000 lines of source code. source code.

Effort = 2.4*(32)Effort = 2.4*(32)1.051.05 = 91 PM= 91 PM�� Effort = 2.4*(32)Effort = 2.4*(32)1.051.05 = 91 PM= 91 PM

�� Nominal development time = 2.5*(91)Nominal development time = 2.5*(91)0.380.38

= 14 months= 14 months

29Dr. Satinder Bal Gupta, VCE, Rohtak

Page 30: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Intermediate COCOMOIntermediate COCOMO

�� Basic COCOMO model assumes Basic COCOMO model assumes

�� effort and development time depend on effort and development time depend on product size alone. product size alone.

�� However, several parameters affect effort However, several parameters affect effort �� However, several parameters affect effort However, several parameters affect effort and development time:and development time:

�� Reliability requirementsReliability requirements

�� Availability of CASE tools and modern facilities to Availability of CASE tools and modern facilities to the developersthe developers

�� Size of data to be handledSize of data to be handled

30Dr. Satinder Bal Gupta, VCE, Rohtak

Page 31: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Intermediate COCOMOIntermediate COCOMO

�� For accurate estimation, For accurate estimation,

�� the effect of all relevant parameters the effect of all relevant parameters must be considered:must be considered:

Intermediate COCOMO modelIntermediate COCOMO model�� Intermediate COCOMO modelIntermediate COCOMO modelrecognizes this fact: recognizes this fact:

�� refines the initial estimate obtained by the refines the initial estimate obtained by the basic COCOMO by using a set of 15 cost basic COCOMO by using a set of 15 cost drivers (multipliers).drivers (multipliers).

31Dr. Satinder Bal Gupta, VCE, Rohtak

Page 32: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Intermediate COCOMOIntermediate COCOMO (CONT.)(CONT.)

�� If modern programming practices If modern programming practices are used, are used,

�� initial estimates are scaled initial estimates are scaled �� initial estimates are scaled initial estimates are scaled downwards.downwards.

�� If there are stringent reliability If there are stringent reliability requirements on the product :requirements on the product :

�� initial estimate is scaled upwards.initial estimate is scaled upwards.

32Dr. Satinder Bal Gupta, VCE, Rohtak

Page 33: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Intermediate COCOMOIntermediate COCOMO (CONT.)(CONT.)

��Rate different parameters on a Rate different parameters on a scale of one to three: scale of one to three:

��Depending on these ratings, Depending on these ratings, ��Depending on these ratings, Depending on these ratings,

��multiply cost driver values with multiply cost driver values with the estimate obtained using the the estimate obtained using the basic COCOMO.basic COCOMO.

33Dr. Satinder Bal Gupta, VCE, Rohtak

Page 34: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Intermediate COCOMOIntermediate COCOMO (CONT.)(CONT.)

�� Cost driver classes:Cost driver classes:

�� Product:Product: Inherent complexity of the product, Inherent complexity of the product, reliability requirements of the product, etc.reliability requirements of the product, etc.

�� Computer:Computer: Execution time, storage Execution time, storage �� Computer:Computer: Execution time, storage Execution time, storage requirements, etc. requirements, etc.

�� Personnel:Personnel: Experience of personnel, etc.Experience of personnel, etc.

�� Development Environment:Development Environment: Sophistication of Sophistication of the tools used for software development.the tools used for software development.

34Dr. Satinder Bal Gupta, VCE, Rohtak

Page 35: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Shortcoming of basic and intermediate Shortcoming of basic and intermediate COCOMOCOCOMO modelsmodels

�� Both models:Both models:

�� consider a software product as a single consider a software product as a single homogeneous entity:homogeneous entity:

�� However, most large systems are made up of However, most large systems are made up of �� However, most large systems are made up of However, most large systems are made up of several smaller subseveral smaller sub--systems.systems.

�� Some subSome sub--systems may be considered as organic systems may be considered as organic type, some may be considered embedded, etc.type, some may be considered embedded, etc.

�� for some the reliability requirements may be high, for some the reliability requirements may be high, and so on.and so on.

35Dr. Satinder Bal Gupta, VCE, Rohtak

Page 36: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Complete COCOMOComplete COCOMO

�� Cost of each subCost of each sub--system is estimated system is estimated separately.separately.

�� Costs of the subCosts of the sub--systems are added systems are added to obtain total cost.to obtain total cost.to obtain total cost.to obtain total cost.

�� Reduces the margin of error in the Reduces the margin of error in the final estimate.final estimate.

36Dr. Satinder Bal Gupta, VCE, Rohtak

Page 37: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Complete COCOMO ExampleComplete COCOMO Example

�� A Management Information System (MIS) for an A Management Information System (MIS) for an organization having offices at several places organization having offices at several places across the country:across the country:

�� Database part Database part (semi(semi--detached)detached)

Graphical User Interface (GUI) part Graphical User Interface (GUI) part (organic)(organic)�� Graphical User Interface (GUI) part Graphical User Interface (GUI) part (organic)(organic)

�� Communication part Communication part (embedded)(embedded)

�� Costs of the components are estimated Costs of the components are estimated separately:separately:

�� summed up to give the overall cost of the system.summed up to give the overall cost of the system.

37Dr. Satinder Bal Gupta, VCE, Rohtak

Page 38: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

PUTNAM (PUTNAM (Staffing Level Estimation)Staffing Level Estimation)

�� Number of personnel required during Number of personnel required during any development project:any development project:�� not constant.not constant.

�� Norden in 1958 analyzed many R&D Norden in 1958 analyzed many R&D projects, and observed:projects, and observed:projects, and observed:projects, and observed:�� Rayleigh curve represents the number Rayleigh curve represents the number

of fullof full--time personnel required at any time personnel required at any time.time.

38Dr. Satinder Bal Gupta, VCE, Rohtak

Page 39: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Rayleigh CurveRayleigh Curve�� Rayleigh curve is Rayleigh curve is

specified by two specified by two parameters:parameters:

�� td the time at td the time at which the which the curve reaches curve reaches

Rayleigh Curve

curve reaches curve reaches its maximum its maximum

�� K the total area K the total area under the under the curve.curve.

�� L=f(K, td)L=f(K, td)

Eff

ort

Time

td

39Dr. Satinder Bal Gupta, VCE, Rohtak

Page 40: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Putnam’s WorkPutnam’s Work�� In 1976, Putnam studied the problem of In 1976, Putnam studied the problem of

staffing of software projects:staffing of software projects:

�� observed that the level of effort required in observed that the level of effort required in software development efforts has a similar software development efforts has a similar software development efforts has a similar software development efforts has a similar envelope.envelope.

�� found that the Rayleighfound that the Rayleigh--Norden curve Norden curve

�� relates the number of delivered lines of code to relates the number of delivered lines of code to effort and development time.effort and development time.

40Dr. Satinder Bal Gupta, VCE, Rohtak

Page 41: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Putnam’s WorkPutnam’s Work (CONT.)(CONT.)

�� Putnam analyzed a large number of army Putnam analyzed a large number of army projects, and derived the expression:projects, and derived the expression:

L=CL=Ckk KK1/3 1/3 ttdd4/34/3

�� K is the effort expended and L is the size in K is the effort expended and L is the size in �� K is the effort expended and L is the size in K is the effort expended and L is the size in KLOC.KLOC.

�� ttdd is the time to develop the software.is the time to develop the software.

�� CCkk is the state of technology constant and is the state of technology constant and reflects factors that affect programmer productivity. reflects factors that affect programmer productivity.

41Dr. Satinder Bal Gupta, VCE, Rohtak

Page 42: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Putnam’s WorkPutnam’s Work (CONT.)(CONT.)

�� CCkk=2 for poor development environment =2 for poor development environment

�� no methodology, poor documentation, and no methodology, poor documentation, and review, etc.review, etc.

�� CCkk=8 for good software development =8 for good software development �� CCkk=8 for good software development =8 for good software development environment environment

�� software engineering principles used software engineering principles used

�� CCkk=11 for an excellent environment=11 for an excellent environment

42Dr. Satinder Bal Gupta, VCE, Rohtak

Page 43: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Rayleigh CurveRayleigh Curve

�� Very small number of engineers are Very small number of engineers are needed at the beginning of a projectneeded at the beginning of a project

�� carry out planning and specification. carry out planning and specification.

As the project progresses:As the project progresses:�� As the project progresses:As the project progresses:

�� more detailed work is required, more detailed work is required,

�� number of engineers slowly increases number of engineers slowly increases and reaches a peak.and reaches a peak.

43Dr. Satinder Bal Gupta, VCE, Rohtak

Page 44: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Rayleigh CurveRayleigh Curve

�� Putnam observed that:Putnam observed that:

�� the time at which the Rayleigh curve the time at which the Rayleigh curve reaches its maximum value reaches its maximum value

corresponds to system testing and product corresponds to system testing and product �� corresponds to system testing and product corresponds to system testing and product release.release.

�� After system testing, After system testing,

�� the number of project staff falls till product the number of project staff falls till product installation and delivery.installation and delivery.

44Dr. Satinder Bal Gupta, VCE, Rohtak

Page 45: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Rayleigh CurveRayleigh Curve

�� From the Rayleigh curve observe From the Rayleigh curve observe that:that:

�� approximately 40% of the area under approximately 40% of the area under �� approximately 40% of the area under approximately 40% of the area under the Rayleigh curve is to the left of tthe Rayleigh curve is to the left of tdd

�� and 60% to the right.and 60% to the right.

45Dr. Satinder Bal Gupta, VCE, Rohtak

Page 46: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Effect of Schedule Change on CostEffect of Schedule Change on Cost

�� Using the Putnam's expression for L,Using the Putnam's expression for L,K=LK=L33/C/Ckk

3 3 ttdd44

Or, K=C /tOr, K=C /tdd44

For the same product size, C=LFor the same product size, C=L33/C/C 33�� For the same product size, C=LFor the same product size, C=L33/C/Ckk

33

is a constant.is a constant.

�� Or, Or, KK11/K/K22 = t= td2d244/t/td1d1

44

46Dr. Satinder Bal Gupta, VCE, Rohtak

Page 47: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Effect of Schedule Change onEffect of Schedule Change onCostCost (CONT.)(CONT.)

�� Observe:Observe:�� a relatively small compression in a relatively small compression in

delivery schedule delivery schedule �� can result in substantial penalty on human can result in substantial penalty on human �� can result in substantial penalty on human can result in substantial penalty on human

effort. effort.

�� Also, observe: Also, observe: �� benefits can be gained by using fewer benefits can be gained by using fewer

people over a somewhat longer time people over a somewhat longer time span.span.

47Dr. Satinder Bal Gupta, VCE, Rohtak

Page 48: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

ExampleExample�� If the estimated development time is If the estimated development time is

1 year, then in order to develop the 1 year, then in order to develop the product in 6 months,product in 6 months,�� the total effort and hence the cost the total effort and hence the cost �� the total effort and hence the cost the total effort and hence the cost

increases 16 times.increases 16 times.

�� In other words, In other words, �� the relationship between effort and the the relationship between effort and the

chronological delivery time is highly chronological delivery time is highly nonlinear. nonlinear.

48Dr. Satinder Bal Gupta, VCE, Rohtak

Page 49: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Effect of Schedule Change onEffect of Schedule Change onCostCost (CONT.)(CONT.)

�� Putnam model indicates extreme penalty Putnam model indicates extreme penalty for schedule compression for schedule compression

�� and extreme reward for expanding the and extreme reward for expanding the schedule.schedule.schedule.schedule.

�� Putnam estimation model works Putnam estimation model works reasonably well for very large systems,reasonably well for very large systems,

�� but seriously overestimates the effort for but seriously overestimates the effort for medium and small systems.medium and small systems.

49Dr. Satinder Bal Gupta, VCE, Rohtak

Page 50: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Effect of Schedule Change onEffect of Schedule Change onCostCost (CONT.)(CONT.)

�� Boehm observed:Boehm observed:

�� “There is a limit beyond which the “There is a limit beyond which the schedule of a software project cannot schedule of a software project cannot be reduced by buying any more be reduced by buying any more be reduced by buying any more be reduced by buying any more personnel or equipment.”personnel or equipment.”

�� This limit occurs roughly at 75% of the This limit occurs roughly at 75% of the nominal time estimate.nominal time estimate.

50Dr. Satinder Bal Gupta, VCE, Rohtak

Page 51: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Effect of Schedule Change on Effect of Schedule Change on CostCost (CONT.)(CONT.)

�� If a project manager accepts a customer If a project manager accepts a customer demand to compress the development demand to compress the development time by more than 25% time by more than 25%

�� very unlikely to succeedvery unlikely to succeed. . �� very unlikely to succeedvery unlikely to succeed. .

�� every project has only a limited amount of parallel every project has only a limited amount of parallel activitiesactivities

�� sequential activities cannot be speeded up by sequential activities cannot be speeded up by hiring any number of additional engineers.hiring any number of additional engineers.

�� many engineers have to sit idle.many engineers have to sit idle.

51Dr. Satinder Bal Gupta, VCE, Rohtak

Page 52: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Key PointsKey Points

�� To estimate software cost:To estimate software cost:

�� Determine size of the product.Determine size of the product.

�� Using size estimate, Using size estimate,

�� determine effort needed.determine effort needed.�� determine effort needed.determine effort needed.

�� From the effort estimate, From the effort estimate,

�� determine project duration, and cost.determine project duration, and cost.

52Dr. Satinder Bal Gupta, VCE, Rohtak

Page 53: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Key Points (Cont.) Key Points (Cont.)

�� Cost estimation techniques:Cost estimation techniques:

�� Empirical TechniquesEmpirical Techniques

�� Heuristic TechniquesHeuristic Techniques

�� Analytical TechniquesAnalytical Techniques�� Analytical TechniquesAnalytical Techniques

�� Empirical techniques:Empirical techniques:

�� based on systematic guesses by experts.based on systematic guesses by experts.

�� Expert JudgementExpert Judgement

�� Delphi EstimationDelphi Estimation

53Dr. Satinder Bal Gupta, VCE, Rohtak

Page 54: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Key Points (Cont.)Key Points (Cont.)

�� Heuristic techniques: Heuristic techniques: �� assume that characteristics of a software assume that characteristics of a software

product can be modeled by a mathematical product can be modeled by a mathematical expression.expression.expression.expression.

�� COCOMOCOCOMO

�� Analytical techniques: Analytical techniques: �� derivederive the estimates starting with some basic the estimates starting with some basic

assumptions:assumptions:

54Dr. Satinder Bal Gupta, VCE, Rohtak

Page 55: software project estimation models - Welcome to … Cost Estimation Determine size of the product. From the size estimate, determine the effort needed. From the effort estimate, determine

Key Points (Cont.)Key Points (Cont.)

�� The staffing level during the life cycle of a The staffing level during the life cycle of a software product development: software product development:

�� follows Rayleigh curvefollows Rayleigh curve

�� maximum number of engineers required maximum number of engineers required �� maximum number of engineers required maximum number of engineers required during testing.during testing.

55Dr. Satinder Bal Gupta, VCE, Rohtak