Lecture 4 Software Metrics

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.
Metrics. A Good Manager Measures measurement What do we use as a basis? size? size? function? function? project metrics process metrics process product.
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 4 Software 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.
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.
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 Engineering II - Topic: Software Process Metrics and Project Metrics Instructor: Dr. Jerry Gao San Jose State University
A Good Manager Measures
Software Process and Product Metrics
Software Metric capture notions of size and complexity.
Cmpe 589 Spring Software Quality Metrics Product  product attributes –Size, complexity, design features, performance, quality level Process  Used.
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Lecture 22 Instructor Paulo Alencar.
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.
CS460 © 2003 Ray S. Babcock Metrics The term metrics refers to any measurement related to software development. ● Lines of Code ● number of defects ● defects.
Software Engineering SM ? 1. Outline of this presentation What is SM The Need for SM Type of SM Size Oriented Metric Function Oriented Metric 218/10/2015.
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 Metrics – part 2 Mehran Rezaei. Software Metrics Objectives – Provide State-of-art measurement of software products, processes and projects Why.
Introduction to Software Project Estimation I (Condensed) Barry Schrag Software Engineering Consultant MCSD, MCAD, MCDBA Bellevue.
Computing and SE II Chapter 15: Software Process Management Er-Yu Ding Software Institute, NJU.
Chapter 3: Software Project Management Metrics
1 Software Engineering: A Practitioner’s Approach Chapter 25 Process and Project Metrics Software Engineering: A Practitioner’s Approach Chapter 25 Process.
SOFTWARE PROCESS AND PROJECT METRICS. Topic Covered  Metrics in the process and project domains  Process, project and measurement  Process Metrics.
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.
FUNCTION POINT ANALYSIS & ESTIMATION
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.
Objectives Introduce the necessity for software metrics Differentiate between process, project and product metrics Compare and contrast Lines-Of-Code (LOC)
Chapter 22 Process and Project Metrics
Software Engineering (CSI 321)
Chapter 4 Software Process and Project Metrics
Software Project Sizing and Cost Estimation
Why Do We Measure? assess the status of an ongoing project
Software Metrics “How do we measure the software?”
For University Use Only
Why Do We Measure? assess the status of an ongoing project
Chapter 25 Process and Project Metrics
COCOMO Models.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 22 Process and Project Metrics copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
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
Software Effort Estimation
Presentation transcript:

Lecture 4 Software Metrics Software Engineering Lecture 4 Software Metrics

Why do we Measure? To characterize To evaluate To predict To improve

A Good Manager Measures process process metrics project metrics measurement product metrics product What do we use as a basis? • size? • function?

Process Metrics majority focus on quality achieved as a consequence of a repeatable or managed process statistical SQA data error categorization & analysis defect removal efficiency propagation from phase to phase reuse data

Project Metrics Effort/time per SE task Errors uncovered per review hour Scheduled vs. actual milestone dates Changes (number) and their characteristics Distribution of effort on SE tasks

Product Metrics focus on the quality of deliverables measures of analysis model complexity of the design internal algorithmic complexity architectural complexity data flow complexity code measures (e.g., Halstead) measures of process effectiveness e.g., defect removal efficiency

Metrics Guidelines Use common sense and organizational sensitivity when interpreting metrics data. Provide regular feedback to the individuals and teams who have worked to collect measures and metrics. Don’t use metrics to appraise individuals. Work with practitioners and teams to set clear goals and metrics that will be used to achieve them. Never use metrics to threaten individuals or teams. Metrics data that indicate a problem area should not be considered “negative.” These data are merely an indicator for process improvement. Don’t obsess on a single metric to the exclusion of other important metrics.

Normalization for Metrics Normalized data are used to evaluate the process and the product (but never individual people) size-oriented normalization — the line of code approach function-oriented normalization — the function point approach

Typical Size-Oriented Metrics errors per KLOC (thousand lines of code) defects per KLOC $ per LOC page of documentation per KLOC errors / person-month LOC per person-month $ / page of documentation

The LOC-based Estimation (p. 128) Determining the major software functions Develop an estimation table based on historical data An Example: Estimated lines of code (total): 33,200 LOC Average productivity: 620 LOC / pm Labor rate: $8000 per month Cost per LOC: $13 (8000 / 620) Total estimated project cost: $431,000 (13 x 33200) Estimated effort: 54 pm (33200 / 620)

Typical Function-Oriented Metrics errors per FP (thousand lines of code) defects per FP $ per FP pages of documentation per FP FP per person-month

Why Opt for FP Measures? independent of programming language uses readily countable characteristics of the "information domain" of the problem does not "penalize" inventive implementations that require fewer LOC than others makes it easier to accommodate reuse and the trend toward object-oriented approaches

Computing Function Points Analyze information domain of the application and develop counts Weight each count by assessing complexity Assess influence of global factors that affect the application Compute function points Establish count for input domain and system interfaces Assign level of complexity or weight to each count Grade significance of external factors, F such as reuse, concurrency, OS, ... degree of influence: N = F i complexity multiplier: C = (0.65 + 0.01 x N) function points = (count x weight) x C where:

Analyzing the Information Domain weighting factor measurement parameter count simple avg. complex number of user inputs X 3 4 6 = number of user outputs X 4 5 7 = number of user inquiries X 3 4 6 = number of files X 7 10 15 = number of ext.interfaces X 5 7 10 = count-total complexity multiplier function points

Taking Complexity into Account Factors are rated on a scale of 0 (not important) to 5 (very important): data communications on-line update distributed functions complex processing heavily used configuration installation ease transaction rate operational ease on-line data entry multiple sites end user efficiency facilitate change

FP-based Estimation (p. 129) Estimating the information domain values (input, output, inquiries, files, external interfaces), calculating the count-total Calculating the complexity adjustment factor (0.65 + 0.01 x S Fi) FP estimated = count-total x complexity adjustment factor. An Example: Estimated FP (total): 375 FP Average productivity: 6.5 FP / pm Labor rate: $8000 per month Cost per FP: $1230 (8000 / 6.5) Total estimated project cost: $461,000 (375 x 1230) Estimated effort: 58 pm (375 / 6.5)

Measuring Quality Correctness — the degree to which a program operates according to specification Maintainability—the degree to which a program is amenable to change Integrity—the degree to which a program is impervious to outside attack Usability—the degree to which a program is easy to use

Defect Removal Efficiency DRE = (errors) / (errors + defects) where errors = problems found before release defects = problems found after release

Summary Measurement enables managers and practitioners to improve the software process; assist in the planning, tracking, and control of a software project; and assess the quality of the product (software) that is produced. Both size and function oriented metrics are used throughout the industry. Size oriented metrics use the LOC. Function oriented metrics use the information domain and a subjective assessment of problem complexity.

References Pressman, Chapter 4