Metrics Project and Process Metrics. Why do we measure? Assessing project status Allows us to track risks Before they go critical Adjust workflow See.

Slides:



Advertisements
Similar presentations
Software Engineering: A Practitioner’s Approach Chapter 25 Process and Project Metrics copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Advertisements

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Project Estimation: Metrics and Measurement
Chapter 4 Software Process and Project Metrics
1 Estimating Software Development Using Project Metrics.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Chapter 22 Process and Project Metrics
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Process and Project Metrics
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Metrics for Process and Projects
Metrics for Process and Projects
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
PRJ270: Essentials of Rational Unified Process
A Good Manager Measures
Software Process and Product Metrics
Cyclomatic Complexity Dan Fleck Fall 2009 Dan Fleck Fall 2009.
Cmpe 589 Spring Software Quality Metrics Product  product attributes –Size, complexity, design features, performance, quality level Process  Used.
Software Engineering Software Process and Project Metrics.
Chapter 6 : Software Metrics
Product Metrics An overview. What are metrics? “ A quantitative measure of the degree to which a system, component, or process possesses a given attribute.”
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
1 Chapter 4 Software Process and Project Metrics.
Software Project Management Lecture # 3. Outline Chapter 22- “Metrics for Process & Projects”  Measurement  Measures  Metrics  Software Metrics Process.
Software Quality Metrics
Software Metrics – part 2 Mehran Rezaei. Software Metrics Objectives – Provide State-of-art measurement of software products, processes and projects Why.
Lecture 4 Software Metrics
Computing and SE II Chapter 15: Software Process Management Er-Yu Ding Software Institute, NJU.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
1 Software Engineering: A Practitioner’s Approach Chapter 25 Process and Project Metrics Software Engineering: A Practitioner’s Approach Chapter 25 Process.
Software Engineering B.Tech IT/II Sem-II Term: Unit-7 PPT SLIDES Text Books:1.Software Engineering, A practitioner’s approach Roger s. Pressman.
SOFTWARE PROCESS AND PROJECT METRICS. Topic Covered  Metrics in the process and project domains  Process, project and measurement  Process Metrics.
Hussein Alhashimi. “If you can’t measure it, you can’t manage it” Tom DeMarco,
Advanced Software Engineering Lecture 4: Process & Project Metrics.
Chapter 22 Metrics for Process and Projects Software Engineering: A Practitioner’s Approach 6 th Edition Roger S. Pressman.
Software Project Management Lecture # 3. Outline Metrics for Process and Projects  Introduction  Software Metrics Process metrics Project metrics Direct.
1 These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
1 Software Engineering: A Practitioner’s Approach Chapter 25 Process and Project Metrics Software Engineering: A Practitioner’s Approach Chapter 25 Process.
Software Test Metrics When you can measure what you are speaking about and express it in numbers, you know something about it; but when you cannot measure,
Cyclomatic Complexity
Software Metrics 1.
Chapter 22 Process and Project Metrics
Software Engineering B.Tech Ii csE Sem-II
Chapter 4 Software Process and Project Metrics
CPSC 873 John D. McGregor GQM.
Why Do We Measure? assess the status of an ongoing project
Cyclomatic Complexity
Cyclomatic Complexity
Cyclomatic Complexity
Cyclomatic Complexity
For University Use Only
Software Engineering: A Practitioner’s Approach Chapter 25 Process and Project Metrics copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Why Do We Measure? assess the status of an ongoing project
Chapter 25 Process and Project Metrics
Software Engineering: A Practitioner’s Approach, 6/e Chapter 22 Process and Project Metrics copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
Cyclomatic Complexity
Software metrics.
Why Do We Measure? assess the status of an ongoing project
Why Do We Measure? assess the status of an ongoing project
Chapter 32 Process and Project Metrics
Chapter 22 Process and Project Metrics
Metrics for Process and Projects
Presentation transcript:

Metrics Project and Process Metrics

Why do we measure? Assessing project status Allows us to track risks Before they go critical Adjust workflow See if the team can control the quality of artifacts

Example metric Can you calculate a metric that records the number of ‘e’ that appear in a program – Should you?

Effective Metrics Simple and computable Empirically and intuitively persuasive Consistent and objective Consistent in use of units and dimensions Programming language independent Should be actionable

Example metric If I calculate the number of defects per developer and rank them, then using that rank assign salary raises based on that.

Metrics Guidelines Don’t use a single metric to the exclusion of others Metrics should not be used to appraise or threaten individuals – Negative metric should be viewed as an opportunity for improvement

Process vs Project Metrics Process across multiple projects – i.e. Waterfall vs Agile – Quality: correctness, maintainability, usability, integrity – Productivity: earned value analysis – Statistical SQA data: MTTF, MTTR – Defect removal efficiency (later) – Reuse data: percent of components

Defect Removal Efficiency E is the number of errors found before delivery of the software to the end-user D is the number of defects found after delivery. DRE = E /(E + D)

DRE Example DRE = E /(E + D) Defects found during phase: Requirements (10) Design (20) Construction Implementation (5) Unit Testing (50) Testing Integration Testing (100) System Testing (250) Acceptance Testing (5) By Customer (10) 10 / ( ) = 33% What are the rest?

Size Oriented Metrics errors per KLOC (thousand lines of code) defects per KLOC $ per LOC pages of documentation per KLOC errors per person-month Errors per review hour LOC per person-month $ per page of documentation

LOC is dangerous A Function Point is an estimate of a unit of utility/productivity LOC does not generalize across multiple languages

Other problems with LOC At IBM in the 70s or 80s (I don’t remember) they paid people per line-of-code they wrote

Object Oriented Metrics Number of scenario scripts (use-cases) Number of support classes (required to implement the system but are not immediately related to the problem domain) Average number of support classes per key class (analysis class) Number of subsystems (an aggregation of classes that support a function that is visible to the end- user of a system)

Questions/Review What are some reasons NOT to use lines of code to measure size? What do you expect the DRE rate will be for the implementation (or construction) phase of the software lifecycle? What about for testing? Give an example of a usability metric? According to the chart, Smalltalk is much more efficient than Java and C++. Why don’t we use it for everything?

Code Metrics Static – Cyclomatic complexity – Readability – etc. Dynamic – CPU performance – Memory usage – Threading

Cyclomatic Complexity A software metric used to measure the complexity of software Developed by Thomas McCabe Described (informally) as the number of simple decision points + 1

What is cyclomatic complexity? Essentially the number of linearly independent paths through the code – The code has no decision statements: complexity = 1 – The code has an if statement, there are two paths through the code: complexity = 2 Used as a basis for path testing

Example What is the complexity: public void howComplex(int i) { while (i<10) { i++; System.out.printf("i is %d", i); if (i%2 == 0) { System.out.println("even"); } else { System.out.println("odd"); }

When do we care? A number of industry studies have indicated that the higher V(G), the higher the probability or errors. V(G) modules modules in this range are more error prone

Tools will automatically calculate NCSS = Non Commenting Source Statements CCN = cyclomatic complexity number