Top Banner
Software Engineering Week 5 – Planning & Managing Projects #2 A.A. Gde Bagus Ariana, S.T. [email protected] http://gungariana.wordpress.com
25

Software Engineering

Jan 01, 2016

Download

Documents

winchell-vance

Software Engineering. Week 5 – Planning & Managing Projects #2. A.A. Gde Bagus Ariana , S.T. [email protected] http://gungariana.wordpress.com. Content. Software estimation process Constructive Cost Model (COCOMO) Basic COCOMO Model Intermediate COCOMO Model - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Software Engineering

SoftwareEngineeringWeek 5 – Planning & Managing Projects #2

A.A. Gde Bagus Ariana, [email protected]

http://gungariana.wordpress.com

Page 2: Software Engineering
Page 3: Software Engineering

• Software estimation process• Constructive Cost Model (COCOMO)

– Basic COCOMO Model– Intermediate COCOMO Model– Detailed COCOMO Model

Content

Page 4: Software Engineering

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.

Page 7: Software Engineering

Methods of Cost Estimation

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

Page 8: Software Engineering

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

Page 9: Software Engineering

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

Page 10: Software Engineering

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

Page 11: Software Engineering

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

Page 12: Software Engineering

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

Page 13: Software Engineering

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

Page 14: Software Engineering

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)

Page 15: Software Engineering

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

Page 16: Software Engineering

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.

Page 17: Software Engineering

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

Page 18: Software Engineering

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

Page 19: Software Engineering

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

Page 20: Software Engineering

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

Page 21: Software Engineering

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

Page 22: Software Engineering

Intermediate COCOMO

Page 23: Software Engineering

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

Page 24: Software Engineering

• Software estimation process• Constructive Cost Model (COCOMO)

– Basic COCOMO Model– Intermediate COCOMO Model– Detailed COCOMO Model

Summary

Page 25: Software Engineering

Thank YouQuestion?