Software Project Planning Part II. Troutman's Postulates Profanity is the one language understood by all programmers. Not until a program has been in.

Slides:



Advertisements
Similar presentations
Estimation using COCOMO More Science, Less Art. COCOMO History COCOMO History Constructive Cost Model Dr. Barry Boehm TRW in 1970s COCOMO
Advertisements

Copyright 2000, Stephan Kelley1 Estimating User Interface Effort Using A Formal Method By Stephan Kelley 16 November 2000.
程建群 博士(Dr. Jason Cheng) 年03月
Cocomo II Constructive Cost Model [Boehm] Sybren Deelstra.
So far.. We have covered a) Requirements gathering: observation & interview. b) Requirements specification. c) Requirements validation. d) Design/paper.
Project Risks and Feasibility Assessment Advanced Systems Analysis and Design.
May 11, 2004CS WPI1 CS 562 Advanced SW Engineering Lecture #5 Tuesday, May 11, 2004.
Ch8: Management of Software Engineering. 1 Management of software engineering  Traditional engineering practice is to define a project around the product.
1 COST ESTIMATION Basics, COCOMO, FP. 2 What is estimated? TIME MONEY TIME: –duration, chronological weeks, months, years –effort, person-month (man-month)
SOFTWARE PROJECT MANAGEMENT AND COST ESTIMATION © University of LiverpoolCOMP 319slide 1.
SOFTWARE PROJECT MANAGEMENT AND COST ESTIMATION © University of LiverpoolCOMP 319slide 1.
© The McGraw-Hill Companies, Software Project Management 4th Edition Software effort estimation Chapter 5.
Software Engineering: A Practitioner’s Approach
Chapter 5 : Software Project Planning Juthawut Chantharamalee Curriculum of Computer Science Faculty of Science and Technology, Suan Dusit University
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Lecture 22 Instructor Paulo Alencar.
COCOMO Models Ognian Kabranov SEG3300 A&B W2004 R.L. Probert.
Estimation Why estimate? What to estimate? When to estimate?
Error reports as a source for SPI Tor Stålhane Jingyue Li, Jan M.N. Kristiansen IDI / NTNU.
Chapter 6 : Software Metrics
Project Management Estimation. LOC and FP Estimation –Lines of code and function points were described as basic data from which productivity metrics can.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 1 Chapter 23 Software Cost Estimation.
Function Point Analysis What is Function Point Analysis (FPA)? It is designed to estimate and measure the time, and thereby the cost, of developing new.
Software Cost Estimation 1. APPROACHES Traditional: LOC estimation Modern: Functional Point Analysis 2.
By K Gopal Reddy.  Metrics in software are of two types.direct and indirect.  Function points as indirect metrics.  Function points are used to measure.
A Brief Introduction to COCOMO Hossein Saiedian EECS810: Software Engineering.
Quality Assurance vs. Quality Control Quality Assurance An overall management plan to guarantee the integrity of data (The “system”) Quality Control A.
Software cost estimation Predicting the resources required for a software development process 1.
Lecture 4 Software Metrics
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 3 1 Software Size Estimation I Material adapted from: Disciplined.
Cost Estimation. Problem Our ability to realistically plan and schedule projects depends on our ability to estimate project costs and development efforts.
Cost Estimation What is estimated? –resources (humans, components, tools) –cost (person-months) –schedule (months) Why? –Personnel allocation –Contract.
Project Estimation Model By Deepika Chaudhary. Factors for estimation Initial estimates may have to be made on the basis of a high level user requirements.
Project Planning and Estimation
REAL TIME GPS TRACKING SYSTEM MSE PROJECT PHASE I PRESENTATION Bakor Kamal CIS 895.
Estimating Software Projects & Activity Scheduling in the Dynamic, Multi-Project Setting: Choosing Heuristics Through Deterministic Simulation.
Introduction to Software Project Estimation I (Condensed) Barry Schrag Software Engineering Consultant MCSD, MCAD, MCDBA Bellevue.
©Ian Sommerville 2000Software Engineering, 7th edition. Chapter 26Slide 1 Software cost estimation l Predicting the resources required for a software development.
SFWR ENG 3KO4 Slide 1 Management of Software Engineering Chapter 8: Fundamentals of Software Engineering C. Ghezzi, M. Jazayeri, D. Mandrioli.
Software Project Estimation IMRAN ASHRAF
Cost9a 1 Software Estimating Technology: A Survey Richard Stutzke Crosstalk, May96 text pp
Effort Estimation Has been an “art” for a long time because
©Ian Sommerville, adapted by Werner Wild 2004Project Management Slide 1 Software cost estimation u Predicting the resources required for a software development.
Estimation using COCOMO
Function Points Synthetic measure of program size used to estimate size early in the project Easier (than lines of code) to calculate from requirements.
Estimating “Size” of Software There are many ways to estimate the volume or size of software. ( understanding requirements is key to this activity ) –We.
Effort Estimation In WBS,one can estimate effort (micro-level) but needed to know: –Size of the deliverable –Productivity of resource in producing that.
Intermediate 2 Computing Unit 2 - Software Development.
Cost Estimation Cost Estimation “The most unsuccessful three years in the education of cost estimators appears to be fifth-grade arithmetic. »Norman.
Project Planning. Overview Planning and the software process Estimating duration and cost Software project management plan components Software project.
بشرا رجائی برآورد هزینه نرم افزار.
Software Engineering, COMP201 Slide 1 Software Engineering CSE470.
MANAGEMENT INFORMATION SYSTEM
THE FAMU-CIS ALUMNI SYSTEM
Project Cost Management
Software Estimating Technology: A Survey
Software Engineering (CSI 321)
Function Point Analysis
Software Project Estimation
Software Planning
Constructive Cost Model
COCOMO Model Basic.
Chapter 5: Software effort estimation- part 2
Software Metrics “How do we measure the software?”
Activities During SPP Size Estimation
More on Estimation In general, effort estimation is based on several parameters and the model ( E= a + b*S**c ): Personnel Environment Quality Size or.
COCOMO Models.
Software Cost Estimation
COnstructive COst MOdel
Software Effort Estimation
COCOMO MODEL.
Presentation transcript:

Software Project Planning Part II

Troutman's Postulates Profanity is the one language understood by all programmers. Not until a program has been in production for at least six months will the most harmful error be discovered. If the input editor has been designed to reject all bad input, an ingenious idiot will discover a method to get bad data past it. If a test installation functions perfectly, all subsequent systems will malfunction.

Software Cost Estimation Software cost estimation is used to determine how many resources are needed to complete a project. There are two main approaches: 1.Lines of Code (LOC) estimation (old) 2.Counting function points in the project description (new)

Lines of Code (LOC) Estimation LOC is a Software Size measure It can be obtained only after the project has been completed Estimations are used instead

Lines of Code (LOC) Estimation One estimation method is to estimate:  Max = maximum possible lines of code  Min = minimum possible lines of code  Best = Best guess for the possible lines of code  Estimate = (Max + Min + 4*Best)/6

Lines of Code (LOC) Estimation PartMin SizeBest GuessMax Size Total  Estimate = ( * ) = 1086/6 = 181  We also need an estimate of standard deviation.  Why? Software Company XYZ project “Q”

Lines of Code (LOC) Estimation PartMin SizeBest GuessMax Size Total The standard deviation for each part can be estimated as: (Max – Min)/6 Why can you use (Max – Min)/6 as an estimate for StdDev for each part? StdDev (total) = SQRT( 4.17^ ^ ^ ^ ^2) = 8.70 PartMin SizeBest GuessMax SizeStdDev (55-30)/6 = (40-20)/6 = (35-15)/6 = (60-35)/6= (51-25)/6=4.33 Total

LOC-Based Cost Estimation A software company can determine future costs based on historical data You can “curve fit” data into a polynomial equation.

LOC-Based Cost Estimation The equation your book uses is: a * KLOC ^ b + c KLOC = Thousands of lines of code a = marginal cost per KLOC = added cost per thousand lines of code b = non-linearity of relationship c = fixed cost of doing any project

LOC-Based Cost Estimation a * KLOC ^ b + c –b<1 economy of scale –b=1 linear relationship –b > 1 diseconomy of scale To see how this function behaves:

LOC-Based Cost Estimation a * KLOC ^ b + c Proj IDSize (KLOC)Effort (PM) XYZ Software Company historical data

LOC-Based Cost Estimation KLOC PM XYZ has a linear cost function What are a,b, and c in a*KLOC^b + c?

Constructive Cost Model (COCOMO) Created by Barry Boehm in the 1970’s Uses thousands of delivered source instructions (KDSI) instead of KLOC (Same thing) Unit of effort is programmer-months (PM’s)

Constructive Cost Model (COCOMO) Historical project data is divided into three types: 1.Applications 2.Utility programs 3.System programs

Constructive Cost Model (COCOMO Applications - allow users to do things like creating text documents, playing games, listening to music or surfing the web. Utility programs - focuses on how the computer infrastructure (including the computer hardware, operating system, application software and data storage) operates. More technical than applications. Systems programs – at the register level. Requires intimate knowledge of the system (device drivers, etc.)

Constructive Cost Model (COCOMO) Boehm developed the following formula’s from data: o Applications programs: PM = 2.4 * (KDSI)^1.05 o Utility programs: PM = 3.0*(KDSI)^1.12 o System programs: PM = 3.6*(KDSI)^1.20

Constructive Cost Model (COCOMO) Boehm also determined that there was a standard development time (TDEV) based on the type of project and the cost of effort: o Applications programs: TDEV = 2.5*(PM)^0.38 o Utility programs: TDEV = 2.5*(PM)^0.35 o Systems programs: TDEV = 2.5*(PM)^0.32

Constructive Cost Model (COCOMO) This model seems a little outdated There is no longer a clear breakdown between applications, utilities, and systems programs. There are many more “virtual levels” of programming than the three in his model

COCOMO-II Provides more support for modern software development COCOMO was developed during the mainframe/batch era. COCOMO-II was developed during the desktop/applications era. We need a COCOMO-III for the mobile device/ mobile apps era.

COCOMO-II COCOMO II can be used for the following major decision situations: –Making investment or other financial decisions involving a software development effort –Setting project budgets and schedules as a basis for planning and control –Deciding on or negotiating tradeoffs among software cost, schedule, functionality, performance or quality factors –Making software cost and schedule risk management decisions –Deciding which parts of a software system to develop, reuse, lease, or purchase –Making legacy software inventory decisions: what parts to modify, phase out, outsource, etc –Setting mixed investment strategies to improve organization's software capability, via reuse, tools, process maturity, outsourcing, etc –Deciding how to implement a process improvement strategy COCOMO-II Calculator

Function Point Analysis Function point analysis involves identifying and quantifying the functionality requirements for a project. You identify “function points” which are units of functionality. Each function point has an associated “cost” depending on how hard it is to implement the function point. The is no standard for counting function points. Specific rules are not as important as is consistency within the organization.

Function Point Analysis The classic items to count are: –Inputs –Outputs –Inquiries –Internal files –External interfaces

Function Point Analysis Inquiries – request/response pairs that do not change internal data (e.g. – requesting the address of an employee) Inputs – a logical unit of data supplied to the program (e.g. records - individual fields are not counted as 1 input) Outputs – displays of application data (e.g. a report, a screen display, an error message) Internal files – logical files maintained by the system External interfaces – data shared with other programs

Function points are very often weighted as to whether or not they are simple, average, or complex. Function Point Analysis SimpleAverageComplex Outputs457 Inquiries346 Inputs346 Files71015 Interfaces5710 Sample weighting for XYZ software company

Function Point Analysis The function points are multiplied by their corresponding weights and the values are totaled. The total is called the unadjusted function points

Function Point Analysis For example, suppose a table showing the number of each function point category was determined Find the unadjusted function points SimpleAverageComplex Outputs410 Inquiries350 Inputs103 Files215 Interfaces100 XYZ Software Company project “Q”

Productivity Productivity = Total size of project Total effort of all programmers = Total LOC Total PD LOC = Lines Of CodePD = Programmer Days

Productivity PhasePD’s Requirements20 Design10 Implementation10 Testing15 Documentation10 Total PD = = 65 Suppose there were 950 LOC produced Then the Productivity = 950/65 = 14.6 LOC/PD XYZ Software Company project “Q”

Evaluating Estimations Methods have been developed to help determine if your estimates are correct or not. To do this, Tom DeMarco (Bell Labs) developed the estimate quality factor (EQF)

Estimate Quality Factor To determine EQF, you must revise your estimates as the project continues. For example, consider the following estimates: V = |2.3—3.5|*1.5 + | |*4 + | |*2.5 + | |*3.5 = 4.75 EQF = 11.5*3.5/ V = 40.25/4.75 = 8.7 The higher the EQF, the better were the series of estimates Time of estimate0 months1.5 months5.5 months8 months11.5 Months (done) Estimate2.3 million3.1 million3.9 million3.4 million3.5 million