Software Engineering Week 5 Planning Managing Projects 2

  • Slides: 25
Download presentation
Software Engineering Week 5 – Planning & Managing Projects #2 A. A. Gde Bagus

Software Engineering Week 5 – Planning & Managing Projects #2 A. A. Gde Bagus Ariana, S. T. gungariana@yahoo. com http: //gungariana. wordpress. com

Content • Software estimation process • Constructive Cost Model (COCOMO) – Basic COCOMO Model

Content • Software estimation process • Constructive Cost Model (COCOMO) – Basic COCOMO Model – Intermediate COCOMO Model – Detailed COCOMO Model

Motivation The software cost estimation provides: • the vital link between the general concepts

Motivation The software cost estimation provides: • the vital link between the general concepts and techniques of economic analysis and the particular world of software engineering. • Software cost estimation techniques also provides an essential part of the foundation for good software management.

Classical view of software estimation process Source: (Vigder and Kark, 1994)

Classical view of software estimation process Source: (Vigder and Kark, 1994)

Actual view of software estimation process Source: (Vigder and Kark, 1994)

Actual view of software estimation process Source: (Vigder and Kark, 1994)

Methods of Cost Estimation • • • Algorithmic (Parametric) model Expert Judgment (Expertise Based)

Methods of Cost Estimation • • • Algorithmic (Parametric) model Expert Judgment (Expertise Based) Top - Down Bottom - Up Estimation by Analogy Price to Win Estimation

Algorithmic (Parametric) model • Use the mathematical equations to perform the software estimation. •

Algorithmic (Parametric) model • Use the mathematical equations to perform the software estimation. • Advantages: – Generate repeatable estimations – Easy to modify input data – Easy to refine and customize formulas – Objectively calibrated to experience • Disadvantages: – Unable to deal with exceptional conditions – Some experience and factors can not be quantified – Sometimes algorithms may be proprietary

Expert Judgment (Expertise Based) • Captures the experience and the knowledge of the estimator

Expert Judgment (Expertise Based) • Captures the experience and the knowledge of the estimator who provides the estimate based on their experience from a similar project to which they have participated. • Advantages: – Useful in the absence of quantified, empirical data. – Can factor in differences between past project experiences and requirements of the proposed project – Can factor in impacts caused by new technologies, applications and languages. • Disadvantages: – Estimate is only as good expert’s opinion – Hard to document the factors used by the expert

Top - Down • Which utilize the global view of the product and then

Top - Down • Which utilize the global view of the product and then partitioned into various low level components. • Advantages: – Requires minimal project detail – Usually faster and easier to implement – Focus on system level activities • Disadvantages: – Tend to overlook low level components – No detailed basis

Bottom - Up • The cost of each software components is estimated first and

Bottom - Up • The cost of each software components is estimated first and then the results are combined to derive the final cost estimation for the project. • Advantages: – More stable – More detailed – Allow each software group to hand an estimate • Disadvantages: – May overlook system level costs – More time consuming

Estimation by Analogy • Utilize the actual data that is extrapolated from a previous

Estimation by Analogy • Utilize the actual data that is extrapolated from a previous completed project and compare that with the proposed project in the same application domain to derive the cost estimate. • Advantages: – Based on actual project data • Disadvantages: – Impossible if no comparable project had been tackled in the past. – How well does the previous project represent this one

Price to Win Estimation • The cost estimate is the price that is necessary

Price to Win Estimation • The cost estimate is the price that is necessary to win the contract or the project. • Advantages: – Often rewarded with the contract • Disadvantages: – Time and money run out before the job is done

Introduction COCOMO • Developed by Boehm (early 80 s) • Predicts the effort and

Introduction COCOMO • Developed by Boehm (early 80 s) • Predicts the effort and schedule for a software product development based on inputs relating to the size of the software and a number of cost drivers that affect productivity Barry W. Boehm (born 1935)

Calc’s are based on SLOC • SLOC = “Source Lines Of Code” • Only

Calc’s are based on SLOC • SLOC = “Source Lines Of Code” • Only Source lines that are DELIVERED as part of the product are included -- test drivers and other support software is excluded • SOURCE lines are created by the project staff -- code created by applications generators is excluded • One SLOC is one logical line of code (an If-Then-Else is one line of code) – In Cocomo, known as Delivered Source Instructions (DSI). One If-Then-Else = X lines of code. • Declarations are counted as SLOC • Comments are not counted as SLOC

COCOMO Models • Basic Model – this model would be applied early in a

COCOMO Models • Basic Model – this model would be applied early in a projects development. It will provide a rough estimate early on that should be refined later on with one of the other models. • Intermediate Model – this model would be used after you have more detailed requirements for a project. • Detailed Model – when your design for a project is complete you can apply this model to further refine your estimate.

COCOMO Modes • Organic Mode – developed in a familiar, stable environment, – similar

COCOMO Modes • Organic Mode – developed in a familiar, stable environment, – similar to the previously developed projects – relatively small and requires little innovation • Semidetached Mode – intermediate between Organic and Embedded • Embedded Mode – tight, inflexible constraints and interface requirements – The product requires great innovation

Equations Used • • Equation 1 Equation 2 Equation 3 Where: E = a(KDSI)b

Equations Used • • Equation 1 Equation 2 Equation 3 Where: E = a(KDSI)b * EAF D = c(E)d N = E/D – E is effort in person-months – EAF is the effort adjustment factor – D is the schedule time – KDSI is the number of lines of code (in thousands) – N is number of personnel required – a, b, c, and d are all constants based on the mode you are using

Equations Used

Equations Used

Exercise 1 In this particular software development project, the developer team has identified that

Exercise 1 In this particular software development project, the developer team has identified that the complete solution would require 50, 000 delivered source instructions and classified as semidetached. • Tasks to do; as follow: – Find out the EFFORT crude – Calculate out the estimated total duration required for the project – Work out the estimated total number of personnel required

Intermediate COCOMO • EFFORTimproved • Estimates using fifteen cost driver variables besides the size

Intermediate COCOMO • EFFORTimproved • Estimates using fifteen cost driver variables besides the size variable used in Basic COCOMO • Attributes/factors divided into 4 classes: – Product – Computer – Personnel – Project FORMULAE EFFORTimproved = EFFORTcrude * m 1 * m 2 ……. m. N Where m 1, m 2 …. . m. N are multipliers representing values of different productivity attributes/ factors 21

Intermediate COCOMO

Intermediate COCOMO

Exercise 2 After working out with the Effortcrude (152 programmer-months), the development team is

Exercise 2 After working out with the Effortcrude (152 programmer-months), the development team is quite sceptical on the following: a) product complexity, which can be quite demanding b) database size, which can increase drastically Tasks to do; as follow: – Find out the EFFORT improved – Calculate out the estimated total duration required for the project – Work out the estimated total number of personnel required

Summary • Software estimation process • Constructive Cost Model (COCOMO) – Basic COCOMO Model

Summary • Software estimation process • Constructive Cost Model (COCOMO) – Basic COCOMO Model – Intermediate COCOMO Model – Detailed COCOMO Model

Thank You Question?

Thank You Question?