250 likes | 262 Views
Learn about the software cost estimation process and various techniques such as algorithmic models, expert judgment, top-down and bottom-up approaches, estimation by analogy, and price-to-win estimation. Explore the COCOMO models for accurate software project planning.
E N D
SoftwareEngineering Week 5 – Planning & Managing Projects #2 A.A. GdeBagusAriana, S.T. gungariana@yahoo.com http://gungariana.wordpress.com
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 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: (Vigderand Kark, 1994)
Actual view of software estimation process Source: (Vigderand Kark, 1994)
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. • 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 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 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 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 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 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 80s) • 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 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 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 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 E = a(KDSI)b * EAF • Equation 2 D = c(E)d • Equation 3 N = E/D • Where: • 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
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 variable used in Basic COCOMO • Attributes/factors divided into 4 classes: • Product • Computer • Personnel • Project FORMULAE EFFORTimproved = EFFORTcrude * m1 * m2 ……. mN Where m1, m2 ….. mN are multipliers representing values of different productivity attributes/ factors
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 EFFORTimproved • 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 • Intermediate COCOMO Model • Detailed COCOMO Model