Software Engineering Week 5 Planning Managing Projects 2
- Slides: 25
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 – 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: (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) 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 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 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 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
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 * 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
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 – Intermediate COCOMO Model – Detailed COCOMO Model
Thank You Question?
- Managing and leading software projects
- Managing multiple projects objectives and deadlines
- Managing people in software engineering
- Week by week plans for documenting children's development
- Initiating and planning systems development projects
- Crm vision statement example
- Initiating and planning systems development projects
- Industry parks projects in planning stage
- A systematic attempt to specify threats to the project plan
- What is the first activity in software project planning?
- Planning practices in software engineering
- Sliding window planning in software engineering
- Balanced outlook on law
- Web engineering projects
- System procurement process in software engineering
- Forward engineering in software engineering
- What is delivery excellence in software projects
- Software projects for students
- Software maintenance process models ppt
- Who invented software engineering
- What is software metrics in software engineering
- Software engineering crisis
- Software metrics example
- Real time software design in software engineering
- Software design fundamentals in software engineering
- Liquidity planning and managing cash assets