Chapter 10: Software Size Estimation Omar Meqdadi SE 273 Lecture 10 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.

Slides:



Advertisements
Similar presentations
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 4 1 Software Size Estimation II Material adapted from: Disciplined.
Advertisements

This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
SE 501 Software Development Processes Dr. Basit Qureshi College of Computer Science and Information Systems Prince Sultan University Lecture for Week 7.
T. E. Potok - University of Tennessee CS 594 Software Engineering Lecture 2 Dr. Thomas E. Potok
Personal Software Process
Questions? Cycle 1 Process details Process Dashboard Coding vs. Testing ??? SE-280 Dr. Mark L. Hornick 1.
1 CHAPTER M4 Cost Behavior © 2007 Pearson Custom Publishing.
Cost Estimation Van Vliet, chapter 7 Glenn D. Blank.
Estimating Software Size Part I. This chapter first discuss the size estimating problem and then describes the PROBE estimating method used in this book.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #5 Software Engineering.
Metody statystyczne Copyright, 2001 © Jerzy R. Nawrocki Doskonalenie Procesów Programowych.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
SE 501 Software Development Processes Dr. Basit Qureshi College of Computer Science and Information Systems Prince Sultan University Lecture for Week 8.
1 9/19/2015ã 2007, Spencer Rugaber Personal Software Process (PSP) Application of CMM principles to individuals Developed by Watts Humphrey of the Software.
Chapter 3: Software Maintenance Process Omar Meqdadi SE 3860 Lecture 3 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Chapter 6 : Software Metrics
Disciplined Software Engineering Lecture #4 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
Disciplined Software Engineering Lecture #6 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
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 Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass of 39 CS3600: Software Engineering: Standards in Process Modeling CMM and PSP.
Chapter 11: Software Prototyping Omar Meqdadi SE 273 Lecture 11 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
Lecture: The Personal Software Process. 2 Overview  Personal Software Process assumptions process stages measures and quality strategy results.
© 1998 Carnegie Mellon UniversityTutorial The Personal Software Process (PSP) The overview of the PSP that follows has been built from material made.
T. E. Potok - University of Tennessee CS 594 Software Engineering Lecture 3 Dr. Thomas E. Potok
Lecture 4 Software Metrics
Software Engineering Prof. Dr. Bertrand Meyer March–June 2007 Chair of Software Engineering Lecture 2: The Personal Software Process.
Chapter 15: Risk Management
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 3 1 Software Size Estimation I Material adapted from: Disciplined.
Quality Software Project Management Software Size and Reuse Estimating.
Time Management Personal and Project. Why is it important Time management is directly relevant to Project Management If we cannot manage our own time.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #4 Software Engineering.
Software Project Planning Part II. Troutman's Postulates Profanity is the one language understood by all programmers. Not until a program has been in.
CS 350: Introduction to Software Engineering Slide Set 3 Estimating with Probe I C. M. Overstreet Old Dominion University Fall 2005.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
Disciplined Software Engineering Lecture #3 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
Disciplined Software Engineering Lecture #2 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #2 Software Engineering.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
Project Management All projects need to be “managed” –Cost (people-effort, tools, education, etc.) –schedule –deliverables and “associated” characteristics.
SOFTWARE METRICS. Software Process Revisited The Software Process has a common process framework containing: u framework activities - for all software.
Watts Humphrey IBM director of programming and vice-president of technical development Joined CMU Software Engineering Institute in 1986 Initiator and.
CS 350: Introduction to Software Engineering Slide Set 2 Process Measurement C. M. Overstreet Old Dominion University Fall 2005.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
Chapter 2: Software Maintenance Omar Meqdadi SE 3860 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Personal Estimation with PROBE CS3300 Fall Process Everybody has one !!! Formal – Completely defined and documented Informal – Just the way things.
CS 350, slide set 2 M. Overstreet Old Dominion University Spring 2005.
Chapter 6: System Models Omar Meqdadi SE 273 Lecture 6 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
(6) Estimating Computer’s efficiency Software Estimation The objective of Software Estimation is to provide the skills needed to accurately predict the.
CS 350: Introduction to Software Engineering Slide Set 3 Estimating with Probe I C. M. Overstreet Old Dominion University Spring 2006.
Chapter 9: Coupling & Cohesion Omar Meqdadi SE 273 Lecture 9 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Watts Humphrey IBM director of programming and vice-president of technical development Joined CMU Software Engineering Institute in 1986 Initiator and.
Software Metrics 1.
Disciplined Software Engineering Lecture #6
Why Do We Measure? assess the status of an ongoing project
Function Point Analysis
Estimating with PROBE II
Software Project Planning &
Personal Software Process Software Estimation
Software Metrics “How do we measure the software?”
Extending the Embedded Software Process (ESP) to DSP applications
Why Do We Measure? assess the status of an ongoing project
Cost Estimation Van Vliet, chapter 7 Glenn D. Blank.
The role of Planning in the Software Development Process
Why Do We Measure? assess the status of an ongoing project
Why Do We Measure? assess the status of an ongoing project
Presentation transcript:

Chapter 10: Software Size Estimation Omar Meqdadi SE 273 Lecture 10 Department of Computer Science and Software Engineering University of Wisconsin-Platteville

2 Topics covered Size Estimating Principles Size Estimating Model

3 Why estimate size? To make better plans  to better size the job  to divide the job into separable elements To assist in tracking progress  can judge when job scope changes  can better measure the work

4 Size estimating principles - 1 Estimating is an uncertain process  no one knows how big the product will be  the earlier the estimate, the less is known  estimates can be biased by business and other pressures Estimating is an intuitive learning process  ability improves with experience  some people will be better at estimating than others

5 Estimating is a skill  improvement will be gradual  you may never get very good The objective, however, is to get consistent  you will then understand the variability of your estimates  you seek an even balance between under and over estimates Size estimating principles - 2

6 The principal advantages of using a defined estimating method are  you have known practices that you can work to improve  it provides a framework for gathering estimating data  by using consistent methods and historical data, your estimates will get more consistent Size estimating principles - 3

7 Size oriented metrics Size of the software produced Lines Of Code (LOC) 1000 Lines Of Code KLOC  Effort measured in person months  Errors/KLOC  Defects/KLOC  Cost/LOC  Documentation Pages/KLOC  LOC is programmer & language dependent

8 LOC metrics Easy to use Easy to compute Can compute LOC of existing systems but cost and requirements traceability may be lost Language & programmer dependent

9 The LOC estimating method Conceptual Design Start Identify Objects Number of Methods Object Type Relative Size Reuse Categories Calculate Added and Modified LOC Estimate Program Size Calculate Prediction Interval Estimate

10 Conceptual Design A conceptual design is needed  to relate the requirements to the product  to define the product elements that will produce the desired functions  to estimate the size of what will be built For understood designs, conceptual designs can be done quickly. If you do not understand the design, you do not know enough to make an estimate.

11 Identify the objects - 1 Where possible, select application entities. Judge how many methods each object will likely contain. Determine the type of the object, i.e.: data, calculation, file, control, etc. Judge the relative size of each object: very small (VS), small (S), medium (M), large (L), very large (VL).

12 Identify the objects - 2 From historical object data, determine the size in LOC/method of each object. Multiply by the number of methods to get the estimated object LOC. Judge which objects will be added to the reuse library and note as “New Reused.”

13 Identify the objects - 3 When objects do not fit an existing type, they are frequently composites.  Ensure they are sufficiently refined  Refine those that are not elemental objects Watch for new object types

14 Estimate program size - 1 Total program size consists of  newly developed code (adjusted with the regression parameters)  reused code from the library  base code from prior versions, less deletions Newly developed code consists of  base additions (BA) - additions to the base  new objects (NO) - newly developed objects  modified code (M) - base LOC that are changed

15 Estimate program size - 2 Code used from the reuse library should be counted and included in the total LOC size estimate. Base code consists of:  LOC from the previous version  subtract deleted code  subtract modified code (or it would be counted twice)

16 Estimate program size - 3 Calculate the new and changed LOC from the newly developed code  BA+NO+M  use regression to get new and changed LOC The regression parameters are calculated from historical data on prior estimated newly developed (object) LOC and actual new and changed LOC.

17 Size estimating calculations When completing a size estimate, you start with the following data  new and changed LOC (N): estimate  modified (M): estimated  the base LOC (B): measured  deleted (D): estimated  the reused LOC (R): measured or estimated And calculate  added (A): N-M  total (T): N+B-M-D+R

18 Completed example - 1 Base Program (B) 695 LOC Deleted (D) 0 LOC Modified (M) 5 LOC Base Additions (BA) 0 LOC New Objects: NO = = 361 LOC Reused Programs 169 LOC

19 Completed example - 2 Use the regression parameters to calculate New and Changed LOC (N): Added code: BA + NO +M = 366 LOC New and changed: N = *1.3 = 538 LOC Total: T = = 1397 LOC

20 To make size estimates, you need several items Data on historical objects, divided into types Estimating factors for the relative sizes of each object type Regression parameters for computing new and changed LOC from:  estimated object LOC  LOC added to the base  modified LOC

21 Historical data on objects Object size is highly variable  depends on language  influenced by design style  helps to normalize by number of methods Pick basic types  logic, control  I/O, files, display  data, text, calculation  set-up, error handling

22 Estimating factors for objects You seek size ranges for each type that will help you judge the sizes of new objects. To calculate these size ranges  take the mean  take the standard deviation  very small: VS = mean - 2*standard deviations  small: S = mean - standard deviation  medium: M = mean  large: L = mean + standard deviation  very large: VL = mean + 2*standard deviations

23 Example: C++ object size ranges Type VS VL M S L Calculation Data I/O Logic Set-up Text LOC per method