CPSC 873 John D. McGregor GQM.

Slides:



Advertisements
Similar presentations
David Woo (dxw07u).  What is “White Box Testing”  Data Processing and Calculation Correctness Tests  Correctness Tests:  Path Coverage  Line Coverage.
Advertisements

Software Metrics.
Metrics Project and Process Metrics. Why do we measure? Assessing project status Allows us to track risks Before they go critical Adjust workflow See.
Software Quality Metrics
Software Metrics II Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
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.
Software Process and Product Metrics
Cyclomatic Complexity Dan Fleck Fall 2009 Dan Fleck Fall 2009.
University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec22 1 Lecture 22: Software Measurement Basics of software measurement.
What is Software Engineering? the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software”
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Cmpe 589 Spring Software Quality Metrics Product  product attributes –Size, complexity, design features, performance, quality level Process  Used.
CMSC 345 Fall 2000 Unit Testing. The testing process.
Software Metrics - Data Collection What is good data? Are they correct? Are they accurate? Are they appropriately precise? Are they consist? Are they associated.
1 Software Quality CIS 375 Bruce R. Maxim UM-Dearborn.
Chapter 6 : Software Metrics
Software Engineering 2003 Jyrki Nummenmaa 1 SOFTWARE PRODUCT QUALITY Today: - Software quality - Quality Components - ”Good” software properties.
This chapter is extracted from Sommerville’s slides. Text book chapter
Product Metrics An overview. What are metrics? “ A quantitative measure of the degree to which a system, component, or process possesses a given attribute.”
Version control – Project repository, version management capability, make facility, issue/bug tracking Change control Configuration audit – compliments.
Software Project Management Lecture # 3. Outline Chapter 22- “Metrics for Process & Projects”  Measurement  Measures  Metrics  Software Metrics Process.
OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties.
Software Metrics (Part II). Product Metrics  Product metrics are generally concerned with the structure of the source code (example LOC).  Product metrics.
Software Quality Metrics
CSc 461/561 Information Systems Engineering Lecture 5 – Software Metrics.
Software Engineering 2004 Jyrki Nummenmaa 1 SOFTWARE PRODUCT QUALITY Today: - Software quality - Quality Components - ”Good” software properties.
Software Engineering – University of Tampere, CS DepartmentJyrki Nummenmaa SOFTWARE PRODUCT QUALITY Today: - Software quality -
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 15a: Product Metrics for Software Software Engineering: A Practitioner’s Approach, 6/e Chapter.
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.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Hussein Alhashimi. “If you can’t measure it, you can’t manage it” Tom DeMarco,
CPSC 871 John D. McGregor Module 8 Session 1 Testing.
Metrics "A science is as mature as its measurement tools."
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Cyclomatic complexity (or conditional complexity) is a software metric (measurement). Its gives the number of indepented paths through strongly connected.
CS223: Software Engineering Lecture 21: Unit Testing Metric.
What is a software? Computer Software, or just Software, is the collection of computer programs and related data that provide the instructions telling.
Emilia Mendes Professora Visitante CAPES/ Associate Professor Univ. Auckland, NZ. Introdução a Métricas, Qualidade e Medição de Software.
Code Simplicity: Software Design In Open Source Projects Max Kanat-Alexander
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,
Static Software Metrics Tool
Audit Sampling: An Overview and Application
Configuration Management
Software Metrics 1.
Software Quality Assurance
Software Testing.
John D. McGregor Session 9 Testing Vocabulary
Configuration Management
Lecture 15: Technical Metrics
CS101 Introduction to Computing Lecture 24 Design Heuristics
Software Reliability PPT BY:Dr. R. Mall 7/5/2018.
Etrics XP Metrics.
12 Steps to Useful Software Metrics
Object oriented system development life cycle
John D. McGregor Session 9 Testing Vocabulary
Software Quality Engineering
Goal, Question, and Metrics
John D. McGregor Session 9 Testing Vocabulary
Johanna Rothman Know What “Done” Means Chapter 11
Software testing strategies 2
Software Testing (Lecture 11-a)
Halstead software science measures and other metrics for source code
Chapter 10 – Software Testing
Software metrics.
Presented by Trey Brumley and Ryan Carter
Chapter 19 Technical Metrics for Software
John D. McGregor Module 6 Session 1 More Design
Goal-Driven Continuous Risk Management
Goal-Driven Software Measurement
Scatter Diagrams Slide 1 of 4
Presentation transcript:

CPSC 873 John D. McGregor GQM

Size Speed Money Reliability and quality Healthy/smells

attributes Simple and computable Empirical and intuitively persuasive Consistent and objective Consistent in the use of units and dimensions Independent of programming language, so directed at models (analysis, design, test, etc.) or structure of program Effective mechanism for quality feedback

McCall’s model

GQM We measure to be able to quantify our decisions. We measure Process and Product Goal – desired end result Question – clarification of what we need to know if goal has been achieved Metric – measurement that answers questions

Defining a Goal Object – the “thing” being examined Purpose – why it is being examined Focus – specific attribute of the object Viewpoint – from which stakeholder’s perspective Environment – context within which the examination happens

Example Goal creation Object – Source code of product under development Purpose – to decide when fit to ship Focus – remaining defects Viewpoint – customer Environment – upgrade of legacy product for internal use Goal: Determine whether the source code is of acceptable correctness for our customer to be delighted with the new release.

Questions More concrete than the goals Essentially “have we achieved the goals?” How many defects remain in the code? How significant are those defects? How difficult will it be to remove those defects?

Goals again Are all defects the same? Should I rank them? Goal: Determine whether the source code has sufficiently few major defects for our customer to be delighted with the new release. Questions drive revision of Goals.

Metrics Data is needed to answer the questions. Involves the Focus element of the Goal May be counted – there are 234 writes in this program May be inferred – It is 95% certain that there are 64 major defects remaining in this code

Attributes of measures Objective - Counts of things or events Absolute - Size of something independent of other things Relative – a comparison between two measures Explicit - Obtained directly Derived - Computed from explicit and/or inferred from statistical models Dynamic – related to time Static – independent of time

Product vs Process vs Project What have we got versus how we got it LOC is a product measure LOC/day is a process measure LOC/day/developer is a project measure

Agile metrics Leadtime—how long it takes you to go from idea to delivered software. Cycle time—how long it takes you to make a change to your software system and deliver that change into production. Team velocity—how many “units” of software the team typically completes in an iteration (a.k.a. “sprint”). Open/close rates—how many production issues are reported and closed within a specific time period.

Production metrics Mean time between failures (MTBF) Mean time to recover/repair (MTTR) Application crash rate—how many times an application fails divided by how many times it was used. This metric is related to MTBF and MTTR.

Metric heuristics Metrics cannot tell you the story; only the team can do that. Comparing snowflakes is waste. You can measure almost anything, but you can't pay attention to everything. Business success metrics drive software improvements, not the other way round. Every feature adds value; either measure it or don't do it. Measure only what matters now.

Standards Need standard definitions A line of code is counted as the line or lines between semicolons, where intrinsic semicolons are assumed at both the beginning and the end of the source file. This specifically includes all lines containing program headers, declarations, ex-ecutable and non-executable statements. (NASA)

Halstead’s Textual Complexity Metrics The four base measurements are n1 - number of distinct operators n2 - number of distinct operands N1 - number of operators N2 - total number of operands Program Length N = N1 + N2 This is Halstead’s definition of the length of a program.

Program Difficulty D = [(n1)/2] (N2/n2) This is an indication of the difficulty in developing and understanding a program component. Mental Effort E = [(n1) (N2) (N1+N2) ln(n1+n2)] / 2(n2) This is an indication of the effort required to understand and develop a program.

Estimated Number of Errors This is an estimate of the amount of errors resident in a program module. Most static analysis tools provide the Halstead metrics

McCabe’s cyclomatic complexity where V(G)=McCabe’s cyclomatic number E = number of edges in the control graph N = number of nodes in the control graph P = number of connected components or subprograms (for calculating V(G) for single components or modules, p = 1) V(G) = |E| - |N| + p

Kafura and Henry’s complexity length * (fan-in * fan-out)**2 Where length is the number of lines of code in a program fan-in is the number of data objects passed into a called procedure plus the number of global data structures from which the procedure retrieves its information fan-out is the number of data objects received from a called procedure plus the number of global data structures which the procedure updates

Collect and aggragate

Process

References https://www.cs.umd.edu/~basili/publications/technical/T89.pdf https://ston.jsc.nasa.gov/collections/trs/_techrep/TM-1994-104799.pdf http://techbeacon.com/9-metrics-can-make-difference-todays-software-development-teams http://www.slideshare.net/swatisinghal/software-metrics-5079475