Unit 11: Software Metrics



Similar documents
Analysis Of Source Lines Of Code(SLOC) Metric

Software Metrics in Static Program Analysis

Definitions. Software Metrics. Why Measure Software? Example Metrics. Software Engineering. Determine quality of the current product or process

Software Metrics. Lord Kelvin, a physicist. George Miller, a psychologist

The role of Software Metrics on Software Development Life Cycle

Chap 4. Using Metrics To Manage Software Risks

Software Project Management Matrics. Complied by Heng Sovannarith

The «SQALE» Analysis Model An analysis model compliant with the representation condition for assessing the Quality of Software Source Code

EVALUATING METRICS AT CLASS AND METHOD LEVEL FOR JAVA PROGRAMS USING KNOWLEDGE BASED SYSTEMS

SOFTWARE REQUIREMENTS

Measurement Information Model

Quality Analysis with Metrics

Measurement and Metrics Fundamentals. SE 350 Software Process & Product Quality

Fundamentals of Measurements

An Introduction to. Metrics. used during. Software Development

Software Testing & Analysis (F22ST3): Static Analysis Techniques 2. Andrew Ireland

Software Project Measurement

Manufacturing View. User View. Product View. User View Models. Product View Models

Efficiency Metrics. Tamanna Siddiqui 1, Munior Ahmad Wani 2 and Najeeb Ahmad Khan 3

Mining Metrics to Predict Component Failures

Empirical Software Engineering Introduction & Basic Concepts

SOFTWARE MEASUREMENT

EPL603 Topics in Software Engineering

Data Structures and Algorithms Written Examination

A Review and Analysis of Software Complexity Metrics in Structural Testing

Quantitative and qualitative methods in process improvement and product quality assessment.

Useful Automated Software Testing Metrics

Measuring Software Complexity to Target Risky Modules in Autonomous Vehicle Systems

Learning outcomes. Systems Engineering. Software Quality Management. Product reflects Process. Lecture 5. Introduction to Software Quality Management

Software cost estimation

Software cost estimation

Different Approaches to White Box Testing Technique for Finding Errors

Chapter 24 - Quality Management. Lecture 1. Chapter 24 Quality management

Using SPSS, Chapter 2: Descriptive Statistics

Analysis and Evaluation of Quality Metrics in Software Engineering

Personal Software Process (PSP)

Software Engineering Introduction & Background. Complaints. General Problems. Department of Computer Science Kent State University

MEASURES OF VARIATION

Intro to GIS Winter Data Visualization Part I

Software Metrics: Roadmap

Evaluation of Complexity of Some Programming Languages on the Travelling Salesman Problem

Research Article Predicting Software Projects Cost Estimation Based on Mining Historical Data

APPROACHES TO SOFTWARE TESTING PROGRAM VERIFICATION AND VALIDATION

Software Engineering (Set-I)

SPC Response Variable

International Journal of Computer Science Trends and Technology (IJCST) Volume 3 Issue 4, Jul-Aug 2015

Performance Testing Process A Whitepaper

Foundation of Quantitative Data Analysis

Chapter 12 Discovering New Knowledge Data Mining

Comparing internal and external software quality measurements

A Study on Software Metrics and Phase based Defect Removal Pattern Technique for Project Management

Introduction to Software Engineering. 8. Software Quality

Measuring Software Product Quality

CHAPTER 10 Software Metrics

Lecture 2: Descriptive Statistics and Exploratory Data Analysis

Chapter 23 Software Cost Estimation

Complexity Analysis of Simulink Models to improve the Quality of Outsourcing in an Automotive Company. Jeevan Prabhu August 2010

Baseline Code Analysis Using McCabe IQ

Does the Act of Refactoring Really Make Code Simpler? A Preliminary Study

A SIMULATION MODEL FOR RESOURCE CONSTRAINED SCHEDULING OF MULTIPLE PROJECTS

Gamma Distribution Fitting

Why Taking This Course? Course Introduction, Descriptive Statistics and Data Visualization. Learning Goals. GENOME 560, Spring 2012

Topics. Project plan development. The theme. Planning documents. Sections in a typical project plan. Maciaszek, Liong - PSE Chapter 4

Programming by Contract vs. Defensive Programming: A Comparison of Run-time Performance and Complexity

Software Measurement Frameworks

Component visualization methods for large legacy software in C/C++

Unit 10: Software Quality

SERG. Test Code Quality and Its Relation to Issue Handling Performance

Testing Metrics. Introduction

Software cost estimation. Predicting the resources required for a software development process

Software Cost Estimation

not possible or was possible at a high cost for collecting the data.

Software Quality Management

Chapter 5. Choose the answer that mostly suits each of the sentences given:

Quality Management & Process Improvement. Quality Management. Software quality management. What is quality?

McGraw-Hill The McGraw-Hill Companies, Inc.,

Goal Question Metric (GQM) and Software Quality

Process Improvement. Objectives

Industry Metrics for Outsourcing and Vendor Management

Introduction to Computers and Programming. Testing

Medical Information Management & Mining. You Chen Jan,15, 2013 You.chen@vanderbilt.edu

Quality Management. Objectives

Quality Management. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 27 Slide 1

A Case study based Software Engineering Education using Open Source Tools

CSSE 372 Software Project Management: Managing Software Projects with Measures

Software Measurement for Semiconductor Manufacturing Equipment. SEMATECH Technology Transfer A-TR

International Journal of Advanced Research in Computer Science and Software Engineering

Design methods. List of possible design methods. Functional decomposition. Data flow design. Functional decomposition. Data Flow Design (SA/SD)

Algorithm & Flowchart & Pseudo code. Staff Incharge: S.Sasirekha

A New Cognitive Approach to Measure the Complexity of Software s

SoftwareCostEstimation. Spring,2012

Quality Management. Objectives. Topics covered. Process and product quality Quality assurance and standards Quality planning Quality control

Transcription:

Unit 11: Software Metrics Objective Ð To describe the current state-of-the-art in the measurement of software products and process. Why Measure? "When you can measure what you are speaking about and express it in numbers, you know something about it; but when you cannot measure it, when you cannot express it in numbers, your knowledge is of a meagre and unsatisfactory kind: it may be the beginnings of knowledge but you have scarcely in your thoughts advanced to the stage of Science." Ð Lord Kelvin (Physicist) "You cannot control what you cannot measure." Ð Tom DeMarco (Software Engineer) 1

What is Measurement measurement is the process by which numbers or symbols are assigned to attributes of entities in the real world in such a way as to describe them according to clearly defined unambiguous rules Examples of Entities and Attributes Entity Attribute Software Design Software Design Specification Defects discovered in design reviews Number of pages Software Code Software Development Team Number of lines of code, number of operations Team size, average team experience 2

Types of Metric direct measurement Ð eg number of lines of code indirect/ derived measurement Ð eg defect density = no. of defects in a software product / total size of product prediction Ð eg predict effort required to develop software from measure of the functionality Ð function point count Types of Metric nominal Ð eg no ordering, simply attachment of labels (language: 3GL, 4GL) ordinal Ð eg ordering, but no quantitative comparison (programmer capability: low, average, high) 3

Types of Metric interval Ð eg between certain values (programmer capability: between 55th and 75th percentile of the population ability) ratio Ð eg (the proposed software is twice as big as the software that has just been completed) absolute Ð eg the software is 350,000 lines of code long Types of Metric product metrics size metrics complexity metrics quality metrics process metrics resource metrics project metrics 4

Example I (product metric - size) Number of Lines of Code (NLOC) Ð number of delivered source instructions (NDSI) Ð number of thousands of delivered source instructions (KDSI) Definition (Conte 1986) Ð "A line of code is any line of program text that is not a comment or a blank line, regardless of the number of statements or fragments of statements on the line. This specifically includes all lines containing program headers, declarations, and executable and non-executable statements." Example II (product metric - size) Function Point Count Ð A measure of the functionality perceived by the user delivered by the software developer. A function count is a weighted sum of the number of Ð inputs to the software application Ð outputs from the software application Ð enquiries to the software application Ð datafiles Ð internal to the software application Ð shared with other software applications 5

Example (product metric - complexity) Graph Theoretic Metric Ð The McCabe Complexity Metric a software module can be described by a control flow graph where Ð each node correspond to a block of sequential code Ð each edge corresponds to a path created by a decision Example (product metric - complexity) V(G) = e Ð n + 2p Ð e = number of edges in the graph Ð n = number of nodes in the graph Ð p = number of connected module components in the graph e=8 n=7 p=2 V(G)=5 6

Example (product metric - quality) Defects - deviation from required product quality attributes Record Ð Type Ð Cause Ð Consequence Ð Severity Ð Detection mechanism Ð Rectification details effort implications portability, reliability, and so on... Example (product metric - quality) density of reported defects calculated at the end of each lifecycle phase total number of field defects reported after customer installation at the end of each suitable time period defect related metrics of this type are simple and can be very revealing! 7

Example (process metrics) many facets of the process yield metrics, for example: Ð application of methods and tools Ð use of standards Ð effectiveness of management Ð performance of development system it is also possible to use product metrics calculated on the process description Example (resource metrics) effort expended Ð on tasks within a project, classified by lifecycle phase software function Ð on extra-project activities training elapsed time computer resources 8

A Metrics Programme software development organisations should have a metrics programme in order to: Ð calibrate models that can be used to forecast project/product behaviour Ð give measures that can be used to control the software development process involves metrics AND data collection GQM (goal-question-metric) Approach Goal to develop software that will meet performance requirements Question can we accurately predict response time at any phase in development? can response time be estimated during specification phase can response time be estimated during design phase Subquestion Subquestion can the size be estimated during specification phase can the number of program iterations be predicted can the number of program iterations be predicted Metric function point count cyclomatic complexity design metrics 9

Data Collection instrument the process can be supported by off-the-shelf tools, for example Krakatau for Java Krakatau supports a full range of object-oriented, procedural, language specific, complexity and size metrics for C/C++ and Java. Ð supported metrics include Cyclomatic Complexity, Enhanced Cyclomatic Complexity, Halstead Software Science metrics, LOC metrics and MOOD metrics. In all over 70 metrics are offered Key Points To survive a software development organisation must make accurate cost estimates and improve productivity and quality. If you do not know where you are now you certainly won't know where you will be in the future. To achieve accurate measurements of productivity and quality requires metrics collection and analysis. 10