T. E. Potok - University of Tennessee CS 594 Software Engineering Lecture 2 Dr. Thomas E. Potok 865-574-0834.

Slides:



Advertisements
Similar presentations
T. E. Potok - University of Tennessee Software Engineering Dr. Thomas E. Potok Adjunct Professor UT Research Staff Member ORNL.
Advertisements

1 Estimating Software Development Using Project Metrics.
Metrics for Process and Projects
Software Cost Estimation Main issues:  What factors determine cost/effort?  How to relate effort to development time?
Important concepts in software engineering The tools to make it easy to apply common sense!
Software Engineering II - Topic: Software Process Metrics and Project Metrics Instructor: Dr. Jerry Gao San Jose State University
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)
Statistics 350 Lecture 1. Today Course outline Stuff Section
RESOURCE MEASUREMENT: PRODUCTIVITY, TEAMS AND TOOLS.
1 BA 555 Practical Business Analysis Review of Statistics Confidence Interval Estimation Hypothesis Testing Linear Regression Analysis Introduction Case.
1 Cost Estimation CIS 375 Bruce R. Maxim UM-Dearborn.
1 CHAPTER M4 Cost Behavior © 2007 Pearson Custom Publishing.
Information System Economics Software Project Cost Estimation.
Software Metric capture notions of size and complexity.
T. E. Potok - University of Tennessee Software Engineering Dr. Thomas E. Potok Adjunct Professor UT Research Staff Member ORNL.
Inference for regression - Simple linear regression
Graphical Analysis. Why Graph Data? Graphical methods Require very little training Easy to use Massive amounts of data can be presented more readily Can.
Cmpe 589 Spring Software Quality Metrics Product  product attributes –Size, complexity, design features, performance, quality level Process  Used.
COCOMO Models Ognian Kabranov SEG3300 A&B W2004 R.L. Probert.
T. E. Potok - University of Tennessee Software Engineering Dr. Thomas E. Potok Adjunct Professor UT Research Staff Member ORNL.
Database Design - Lecture 2
Software Estimation and Function Point Analysis Presented by Craig Myers MBA 731 November 12, 2007.
Chapter 6 : Software Metrics
T. E. Potok - University of Tennessee Software Engineering Dr. Thomas E. Potok Adjunct Professor UT Research Staff Member ORNL.
CS 350, slide set 6 M. Overstreet Old Dominion University Spring 2005.
©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.
CEN th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi Effort estimation.
CS /39 Illinois Institute of Technology CS487 Software Engineering David A. Lash.
Software Engineering EKT 420 MOHAMED ELSHAIKH KKF 8A – room 4.
Software cost estimation Predicting the resources required for a software development process 1.
T. E. Potok - University of Tennessee CS 594 Software Engineering Lecture 3 Dr. Thomas E. Potok
Software Project Management Lecture # 3. Outline Chapter 22- “Metrics for Process & Projects”  Measurement  Measures  Metrics  Software Metrics Process.
Lecture 4 Software Metrics
Example 11.2 Explaining Overhead Costs at Bendrix Scatterplots: Graphing Relationships.
10/27/20151Ian Sommerville.  Fundamentals of software measurement, costing and pricing  Software productivity assessment  The principles of the COCOMO.
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.
Software Project Planning Part II. Troutman's Postulates Profanity is the one language understood by all programmers. Not until a program has been in.
1 Multiple Regression A single numerical response variable, Y. Multiple numerical explanatory variables, X 1, X 2,…, X k.
Disciplined Software Engineering Lecture #3 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
Estimation - Software Metrics Managers frequently have to measure the productivity of software engineers.
Project Estimation techniques Estimation of various project parameters is a basic project planning activity. The important project parameters that are.
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.
Chapter 8: Simple Linear Regression Yang Zhenlin.
ANOVA, Regression and Multiple Regression March
1 Statistics & R, TiP, 2011/12 Neural Networks  Technique for discrimination & regression problems  More mathematical theoretical foundation  Works.
540f07cost12oct41 Reviews Postmortem u Surprises? u Use white background on slides u Do not zip files on CD u Team leader should introduce team members.
Personal Estimation with PROBE CS3300 Fall Process Everybody has one !!! Formal – Completely defined and documented Informal – Just the way things.
Advanced Software Engineering Lecture 4: Process & Project Metrics.
Chapter 10: Software Size Estimation Omar Meqdadi SE 273 Lecture 10 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Introduction. We want to see if there is any relationship between the results on exams and the amount of hours used for studies. Person ABCDEFGHIJ Hours/
بشرا رجائی برآورد هزینه نرم افزار.
Software Engineering, COMP201 Slide 1 Software Engineering CSE470.
Software Engineering, COMP201 Slide 1 Software Engineering CSE470.
Determining How Costs Behave
Why Do We Measure? assess the status of an ongoing project
Function Point Analysis
Chapter 5: Software effort estimation- part 2
Software Metrics “How do we measure the software?”
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.
Why Do We Measure? assess the status of an ongoing project
COCOMO Models.
Software metrics.
Statistical Data Analysis
Why Do We Measure? assess the status of an ongoing project
CHAPTER 3 Describing Relationships
Why Do We Measure? assess the status of an ongoing project
Presentation transcript:

T. E. Potok - University of Tennessee CS 594 Software Engineering Lecture 2 Dr. Thomas E. Potok

2 Software Engineering CS 594T. E. Potok - University of Tennessee Agenda  Review Requirements, JAD, and Use Case Modeling  Project Size Estimates  Software Development Life-Cycles  Software Development Productivity

3 Software Engineering CS 594T. E. Potok - University of Tennessee Admin  Power point files accessible?  Articles accessible?  AMI - American Magnetics Main requirements Estimate how much time the project will take Estimate the cost of the project

4 Software Engineering CS 594T. E. Potok - University of Tennessee What is relevant?  Test are open book and open notes  Know CMM – What are the benefits to a company adopting CMM?  Know requirements modeling – What is the fundamental difference between the output of a JAD session and use cases?

T. E. Potok - University of Tennessee Review

6 Software Engineering CS 594T. E. Potok - University of Tennessee Entity Relationship Modeling  Entities represent things  Attributes represent characteristics of the things  Relationship represent associations between things  Entities: Cat, Dog, Person, Car, Building  Attributes: name, age, height, weight  Relationships: owns, drives, pets, builds

T. E. Potok - University of Tennessee Project Size Estimations

8 Software Engineering CS 594T. E. Potok - University of Tennessee Metrics  Measuring the output of a process is the first step to analyzing the process.  Automobile companies measure how many manufacturing hours go into producing a car.  As with any measurement, there are problems. You are trying to summarize a great deal of information into a single or small number of values.  How much does the high and low temperatures really tell you about the weather, or the barometric pressure, or the wind direction.  Looking at any one of these measures it is easy to find flaws, and short comings. – Should the temperature be recorded at ground level? or a top a central tower? in the shade or in the sunlight.

9 Software Engineering CS 594T. E. Potok - University of Tennessee Lines-of-code  What unit of measure should be used to measure software output?  The traditional and much maligned metric is called lines-of-code or LOC.  A summary of concerns with LOC: – Capers Jones notes: – 1) should the code count include non-executable code, such as comments, or explanatory information. – 2) how are differences between high-level and low-level languages represented. – 3) Whether non-delivered code should be represented in a LOC count. – So, it appears that LOC counts may not be the best way to measure software development output.

10 Software Engineering CS 594T. E. Potok - University of Tennessee Function Points  If not LOC, then what??  Many other metrics have been developed. Most of these metrics have major flaws.  Albrecht developed Function Point Analysis (FPA) in the late 70’s  This method assumes that “the amount of function to be provided by the application (program) can be estimated from an itemization of the major components of data to be used or provided by it”.  Albrecht believes that the complexity of a software project is determined by the functions of the software.

11 Software Engineering CS 594T. E. Potok - University of Tennessee More on Function Points  FPA breaks the functionality of a software project into five areas.  Then for each area, the number of simple, average, and complex functions is determined, followed by a technical complexity factor calculated from 14 software system characteristics.  These 14 characteristics are tied to Halstead’s Software Science Metrics which are tied to Putnam’s cost estimation models, which are based on Norden’s Rayleigh Curve model first published in the late 50’s based on computer hardware development.

12 Software Engineering CS 594T. E. Potok - University of Tennessee So LOC is not so bad after all  A big problem with Rayleigh Curves is that for early software development data, the curves appear to fit, but no one can explain why.  Beside that fact that function points have a shaky theoretical background, it is much harder to generate function points than LOC, therefore few use them.  Like the imperial measurement system, it is clearly inferior to the metric system, however, until people use the metric system, it will be of little relevance to most people.  Therefore, we will proceed with using line-of-code, being careful to minimize Jone’s issues

13 Software Engineering CS 594T. E. Potok - University of Tennessee How long will the project take?  Estimate of the size of a project – Lines of code – Function points – Person-months  Based on requirements and experience or mathematical model

T. E. Potok - University of Tennessee Software Development Life- cycle

15 Software Engineering CS 594T. E. Potok - University of Tennessee Typical Life-cycle  Requirements  Design  Code  Test  Maintenance

16 Software Engineering CS 594T. E. Potok - University of Tennessee Software Development Effort  A team of programmers puts effort into developing software  Ideally measured in person-months, with distinctions made for the type of effort – Design – Programming – Testing – Training  Often all that is available is the calendar time spend on developing software

17 Software Engineering CS 594T. E. Potok - University of Tennessee Productivity  Team Productivity = Project Output/Project Effort  Programmer productivity = Programmer Output/Programmer Effort  Productivity typically measured in LOC/Person-month

18 Software Engineering CS 594T. E. Potok - University of Tennessee Productivity Example  Need to produce 10,000 LOC, 10 KLOC.  Average programmer productivity = 200 LOC/Person-month (US average)  How many people do I need?  How long will it take?

19 Software Engineering CS 594T. E. Potok - University of Tennessee Productivity Example

20 Software Engineering CS 594T. E. Potok - University of Tennessee Productivity Example

21 Software Engineering CS 594T. E. Potok - University of Tennessee People vs Months

22 Software Engineering CS 594T. E. Potok - University of Tennessee Results  We can develop 10 KLOC in one month with 50 people, or  2 People in 25 months  Assumes that the interaction among people does not results in a productivity penalty  Total of 50 Person-months of effort needed

23 Software Engineering CS 594T. E. Potok - University of Tennessee Productivity Loading Curve Assumes two people can start immediately and work full-time on the project

24 Software Engineering CS 594T. E. Potok - University of Tennessee Software development life- cycle  Early researchers found that labor distribution of hardware and software development follows a Rayleigh distribution Where t = month, t D = month at peak effort

25 Software Engineering CS 594T. E. Potok - University of Tennessee Rayleigh Curves Peak effort at 7 months - Requiring 5 People 50 total person-months of effort required

26 Software Engineering CS 594T. E. Potok - University of Tennessee Life-Cycle RequirementsDesignCodeTestMaintenance

27 Software Engineering CS 594T. E. Potok - University of Tennessee Putnam’s Slim Model Where S is the number of lines of code PR is the average productivity y is the Rayleigh loading curve t is time C is the state of technology K is the effort applied

28 Software Engineering CS 594T. E. Potok - University of Tennessee Effort Comparisons

T. E. Potok - University of Tennessee Productivity Studies

30 Software Engineering CS 594T. E. Potok - University of Tennessee Background  Statistical Model – Little knowledge of the underlying system – Given there is sufficient data, and that the data is normally and independently distributed! – Regression provides a linear model that provides a least squares fit to the data

31 Software Engineering CS 594T. E. Potok - University of Tennessee Linear Regression Where is an estimate of the mean of Y, and are numerical estimated of the parameters

32 Software Engineering CS 594T. E. Potok - University of Tennessee Multiple Regression Similar processing to linear regression Provides the ability to determine what factors are most significant

33 Software Engineering CS 594T. E. Potok - University of Tennessee Many early studies applied regression  Data gathered from multiple software project  Log-linear relationship found between project size and effort  Where PM are person-months, KLOC is thousands of lines of code

34 Software Engineering CS 594T. E. Potok - University of Tennessee Typical Effort Vs Project Size Curve

35 Software Engineering CS 594T. E. Potok - University of Tennessee Some interesting results  Diseconomy of scale - larger projects need proportionately more effort  Many factors influencing productivity – Early studies show people are the major factor in productivity – High productivity project have experienced, well trained people

36 Software Engineering CS 594T. E. Potok - University of Tennessee Summary  Project Size Estimates  Software Development Life-Cycles  Software Development Productivity