Software Engineering Week 5 – Planning & Managing Projects #2 A.A. Gde Bagus Ariana, S.T. [email protected] http://gungariana.wordpress.com
Jan 01, 2016
SoftwareEngineeringWeek 5 – Planning & Managing Projects #2
A.A. Gde Bagus Ariana, [email protected]
http://gungariana.wordpress.com
• Software estimation process• Constructive Cost Model (COCOMO)
– Basic COCOMO Model– Intermediate COCOMO Model– Detailed COCOMO Model
Content
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 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
Mode Effort Schedule
Organic E=2.4*(KDSI)1.05 TDEV=2.5*(E)0.38
Semidetached E=3.0*(KDSI)1.12 TDEV=2.5*(E)0.35
Embedded E=3.6*(KDSI)1.20 TDEV=2.5*(E)0.32
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
21
FORMULAEEFFORTimproved = 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 EFFORT improved
– Calculate out the estimated total duration required for the project– Work out the estimated total number of personnel required
• Software estimation process• Constructive Cost Model (COCOMO)
– Basic COCOMO Model– Intermediate COCOMO Model– Detailed COCOMO Model
Summary