Software metrics. Jaak Tepandi

Similar documents
Software processes, quality, and standards VTV, fast methods, automation

Software quality management

Software Quality Management

International Standard ISO/IEC 9126

*Sustainability as a. Software Quality Factor

Lecture 2: Software Quality Factors, Models and Standards. Software Quality Assurance (INSE 6260/4-UU) Winter 2016

Quality. And Software Product Management. Autumn 2017 CSM14104 Software Product Management 1

GAIA. GAIA Software Product Assurance Requirements for Subcontractors. Name and Function Date Signature 15/09/05 15/09/05 15/09/05 15/09/05 15/09/05

Software Quality Management

ASSESSING QUALITY IN SOFTWARE ENGINEERING: A PRAGMATIC APPROACH. University of Pretoria

ISO/IEC TR Software engineering Product quality Part 3: Internal metrics. Génie du logiciel Qualité des produits Partie 3: Métrologie interne

ISTQB Sample Question Paper Dump #11

Measuring and Assessing Software Quality

Software Quality and Risk Analysis

Comparing Automated and Human Maintainability Assessment Approaches

How to improve the quality of your processes

Personal Software Process SM for Engineers: Part I

SE420 Software Quality Assurance

ESTIMATION OF ASPECT ORIENTED PROGRAMMING USING DIFFERENT METRICES

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING UNIT-1

KNOWLEDGE AREA: SOFTWARE QUALITY

Software Quality Factors

Software Quality Management

Software Quality Management

1.Which of the items listed below is not one of the software engineering layers?

Software Quality Engineering Courses Offered by The Westfall Team

Software Quality Engineering Courses Offered by The Westfall Team

How to improve the quality of your processes

Developing Software Quality Plans a Ten Step Process. Phil Robinson Lonsdale Systems. Software Quality Plans. We all agree that you need one

Verification of Quality Requirement Method Based on the SQuaRE System Quality Model

DEVELOP QUALITY CHARACTERISTICS BASED QUALITY EVALUATION PROCESS FOR READY TO USE SOFTWARE PRODUCTS

Software engineering Product quality Part 3: Internal metrics

Safety in the Matrix. Siemens AG All rights reserved.

10 metrics for improving the level of management. Pekka Forselius, Senior Advisor, FiSMA ry Risto Nevalainen, Senior Advisor, FiSMA ry

Chapter 6. Software Quality Management & Estimation

Solutions Manual. Object-Oriented Software Engineering. An Agile Unified Methodology. David Kung

Software Quality Assurance

Software engineering Product quality Part 2: External metrics

SWEN 256 Software Process & Project Management

Producing Production Quality Software Lecture 14: Group Programming Practices Data Prof. Arthur P. Goldberg Fall, 2005

Quality Standards in Open Source Lifecycle

Software Metrics & Software Metrology. Alain Abran. Chapter 10 Analysis of Quality Models and Measures in ISO 9126

T Software Testing and Quality Assurance Test Planning

Participation of Testing to Attain a Degree of Quality of Software

Software Metrics Software Engineering 2007

Using a Validation Model to Measure the Agility of Software Development in a Large Software Development Organization

Software Engineering & Architecture

the Advanced Research Project on Software Metrics by the Ministry of Economy, Trade and Industry, Japan (METI)

Software Quality Factors and Software Quality Metrics to Enhance Software Quality Assurance

Software Testing Principles and Strategies

Published by: PIONEER RESEARCH & DEVELOPMENT GROUP(

BCS HIGHER EDUCATION QUALIFICATIONS Level 6 Professional Graduate Diploma in IT. October 2012 EXAMINERS REPORT. Software Engineering 2

THE BCS PROFESSIONAL EXAMINATION BCS Level 6 Professional Graduate Diploma in IT September 2018 EXAMINERS REPORT. Software Engineering 2

CS SOFTWARE ENGINEERING QUESTION BANK


Agile Quality Management

Independent Verification and Validation (IV&V)

Introduction To Software Testing. Brian Nielsen. Center of Embedded Software Systems Aalborg University, Denmark CSS

Space Product Assurance

BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2

CSC 408F/CSC2105F Lecture Notes. Quality Matters

Introduction of software product and process quality aspects in the study courses of information technologies

B.H. Far

Communication Model for Cooperative Robotics Simulator. Project Plan. Version 1.0

CTFL - Version: 3. ISTQB Certified Tester Foundation Level

Lecture 6: Non-Functional Requirements (NFRs)

PEARSON. Addison Wesley

Building quality into the software from the. Keeping and. the software. software life cycle

Associate Professor, FCA, Manav Rachna International University, Faridabad, Haryana, India

JOURNAL OF OBJECT TECHNOLOGY

Software Complexity Model

SIG/TÜViT Evaluation Criteria Trusted Product Maintainability

Requirements Engineering: Part I. Software Requirements & Project Management CITS3220

Determining How Much Software Assurance Is Enough?

Darshan Institute of Engineering & Technology for Diploma Studies

A Review of Agile Software Effort Estimation Methods

Software Measurement Pitfalls & @jstvssr

Software Engineering Measurement and Fundamental Estimation Techniques.

Software Engineering

Lecture 1: Software Measurement. Marlon Dumas

Lecture 1: Introduction to Software Quality Assurance. Software Quality Assurance (INSE 6260/4-UU) Winter 2016

Work Plan and IV&V Methodology

Introduction to Software Metrics

Testing 2. Testing: Agenda. for Systems Validation. Testing for Systems Validation CONCEPT HEIDELBERG

Software Estimation 25 Years and Still Guessing

Achieving Excellence In Software Engineering

Software Quality. A Definition of Quality. Definition of Software Quality. Definition of Implicit Requirements

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

Technische Universität München. Software Quality. Management. Dr. Stefan Wagner Technische Universität München. Garching 18 June 2010

WORK PLAN AND IV&V METHODOLOGY Information Technology - Independent Verification and Validation RFP No IVV-B

Contents. Today Project Management. What is Project Management? Project Management Activities. Project Resources

The software process

Safety assurance for a signalling system based on quality management

7. Project Management

Measuring software product quality during testing

Quality Assurance Activities to Support Product Improvement

VEL TECH MULTI TECH Dr RANGARAJAN Dr.SAKUNTHALA ENGINEERING COLLEGE

Contractual Aspects of Testing Some Basic Guidelines CONTENTS

CSSE 372 Software Project Management: Software Estimation Fundamentals

Transcription:

Software metrics, Jekaterina Tšukrejeva, Stanislav Vassiljev, Pille Haug Tallinn University of Technology Department of Software Science Moodle: Software Quality (Tarkvara kvaliteet) Alternate download: tepandi.ee Version 22.11.2017

Software quality and standards Context and content Basic concepts V&V Quality management Software metrics Software quality management Process frameworks IT audit Idea and motivation Quality models and metrics [- Business oriented] - Product oriented - Process oriented - Usage oriented - Data oriented Example: SW dev-nt cost Application of metrics

Idea Metric: defined measurement method and measurement scale Give examples of metrics in everyday life Give examples of metrics in (agile) software development Example: Project velocity - a measure of how much work is getting done on your project (how many user stories were finished during the iteration?) Quality metric: A quantitative measure of the degree to which an item possesses a given quality attribute. Can be measured and/or calculated Product, process, usage, data,... metrics Basis for evaluation of different aspects of quality, eg in development, maintenance etc Is it You can t control what you can t measure (Tom DeMarco) or It is wrong to suppose that if you can t measure it, you can t manage it a costly myth (W. Edwards Deming)?

Why should I use software metrics? In procurement: to predict the project cost; to prepare a realistic proposal;... In project management: to estimate project progress; to decide about project acceptance; to provide input for earned value management;... In development: to evaluate program understandability, maturity, or other quality characteristics In testing: to estimate test coverage; to estimate reliability; to estimate number of errors remaining in the code... In maintenance: to evaluate maintenance cost; to estimate number of personnel needed; to estimate waiting time for customers;... To support management control: to evaluate personnel productivity; to handle projects and investments;... Where are we? Where should we go?

Models Quality models and metrics Quality Characteristics 1:n... Subcharacteristics Metrics Vastavus Täpsus Turvalisus Turvalisus Legaalsus Ühilduvus Turvalisus Turvalisus Kasut. Kasut. lihtsus lihtsus m:n

Which quality characteristics / processes can be supported by software metrics? [Business metrics: measure benefits / risk / resources (eg, measures and targets to monitor the strategic objectives in the Balanced Scorecard)] Software product quality metrics: measure the capability of software product to satisfy stated and implied needs when used under specified conditions Process metrics: measure development and others (see ISO/IEC 12207) Quality in use metrics: measure the extent to which a product used by specific users meets their needs to achieve specific goals with effectiveness, productivity, safety and satisfaction in specific contexts of use Data quality metrics: measure the degree to which the characteristics of data satisfy stated and implied needs when used under specified conditions (SWEBOK, ISO/IEC 25000, ISO/IEC 12207, COBIT)

Product oriented metric examples Length of code - a measure of the size of a program The larger the size of the code of a component, the more complex and error-prone that component is likely to be Length of identifiers - a measure of the average length of identifiers (names for variables, classes, methods, etc.) in a program The longer the identifiers, the more likely they are to be meaningful and hence the more understandable the program Halstead complexity measures, McCabe s Cyclomatic Complexity, SEI Maintainability Index Related to program analysability/understandability Number of function points For estimating project size Number / density of errors remaining in the code (bugs per line of code)

Length of code Source Lines of Code (SLOC) or productivity (SLOC/man-year)? Quality / functionality is more important SLOC value may be computed in different ways SLOC use for evaluation may be conterproductive eg in maintenance, negative LOC/man-year may be a good result Usage in case of fixed SLOC counting standards in certain situations when comparison data is available it provides broad characteristics

Source Lines of Code in COCOMO Only Source lines that are DELIVERED as part of the product are included -- test drivers and other support software is excluded SOURCE lines are created by the project staff -- code created by applications generators is excluded One SLOC is one logical line of code Declarations are counted as SLOC Comments are not counted as SLOC

Models Product quality characteristics (ISO/IEC 25010) Maintainability New environment Compatibility Portability Modification Work Functional suitability Performance efficiency Usability Reliability Security

Product quality (ISO/IEC 25010) ISO/IEC 25010 Functional suitability Functional completeness Functional correctness Functional appropriateness Performance efficiency Time behaviour Resource utilization Capacity Compatibility Co-existence Interoperability Usability Appropriateness recognizability Learnability Operability User error protection User interface aesthetics Accessibility Reliability Maturity Availability Fault tolerance Recoverability Security Confidentiality Integrity Non-repudiation Accountability Authenticity Maintainability Modularity Reusability Analysability Modifiability Testability https://www.iso.org/obp/ui/#iso:std:iso-iec:25010:ed-1:v1:en Portability Adaptability Installability Replaceability

Process oriented metric examples Process/Lifecycle oriented (eg development, maintenance) Coverage of functional/nonfunctional requirements Coverage of equivalence classes / boundary values Percentage of statements / branches /paths covered Reliability Project velocity (XP) Average change request processing time

Analysis of (process) metrics Modification level in specification (D+ M+ A)/O, where D detached functions, M- modified functions, A - added functions, O original number of functions Adequacy between design and specification = (number of functions in design) / (Number of functions in specification). Mean time between failures = (Functioning time) / (Number of failures) (Value range? The best value?) (Value range? The best value?)

ISO/IEC 12207 Information technology- software life cycle processes: versions First version 1995, only software processes => amendments in 2002, 2004 Current version ISO/IEC 12207:2008, 43 software and system processes Version under development - ISO/IEC 12207:2017 2 agreement processes: Acquisition, Supply 6 organisational project-enabling processes: Life Cycle Model Management, Infrastructure Management, Quality Management,... 8 technical management processes: Project Planning, Risk Management, Configuration Management, Quality Assurance, 14 technical processes: Systems/Software Requirements Definition, Architecture Definition, Design Definition, Implementation, Verification, Validation, Maintenance,...

Quality in use metric examples Metrics in Service Level Agreements Some service targets => maintenance and/or operation metrics, eg mean time between failures percentage of a system uptime time to fulfil a service request time to set up a service for a new user time to reinstate a service after a major failure

Quality model for quality in use Effectiveness Efficiency Satisfaction Usefulness Trust Pleasure Comfort Freedom from risk Economic risk mitigation Health and safety risk mitigation Environmental risk mitigation Context coverage Context completeness Flexibility ttps://www.iso.org/obp/ui/#iso:std:iso-iec:25010:ed-1:v1:en

Data quality metric examples Record's field syntactic accuracy: A/B, where - A=number of records with the specified field syntactically accurate - B=number of records (ISO/IEC 25012:2008) Completeness of data within a file: A/B, where - A=number of data required for the particular context in the data file - B=number of data in the specified particular context of intended use Sound data accessibility: A/B, where - A= number of data stored only as sound (e.g. without textual representation) - B= number of data values representing a sound

Data quality Data quality model characteristics (ISO/IEC 25012) Inherent: Accuracy Completeness Consistency Credibility Currentness Inherent + System dependent: Accessibility Compliance Confidentiality Efficiency Precision Traceability Understandability System dependent: Availability Portability Recoverability

Software development cost prognosis needed for example in evaluation of development costs in procurement and bidding ideally: input = software specification, output = development cost / time practically: complicated task what about reliability, security etc? Development environment? Development tools? Level of developers? experience or prior database for comparison is needed planning poker, COCOMO model, function points, SoftStar, etc

Effort prediction 1: Planning Poker Each estimator is given one deck of the cards A Moderator, who will not evaluate, chairs the meeting. The Product Manager provides a short overview + questions + discussion recorded by the Project Manager Each estimator lays a card face down representing her estimate. Units can be duration days, man-days, story points, etc Each estimator opens her card simultaneously by turning it over People with high estimates and low estimates justify their estimate Repeat the estimation process until a consensus is reached. The developer who was likely to own the deliverable has a large portion of the "consensus vote" When the timer runs out all discussion must cease and another round of poker is played http://en.wikipedia.org/wiki/planning_poker https://www.youtube.com/watch?v=paxymek5jy4

Software dev-nt effort and cost prediction 2 COCOMO and other Evaluation of effort needed* Cost evaluation* LoC Function Points Complexity of the task: inputs, outputs, files etc *Empirical models on basis of previous experience: project databases *Even calibrated models can give results that differ from the actual *Literature and software are available, 2014

SystemStar choice of model creation of the tree of components evaluation of LoC, FP cost evaluation, reports, etc choice of programming languages? Databases? http://www.softstarsystems.com/

Introducing metrics Start from the [business] process needs, not from the metrics Define purpose, usage, and type of metric Understand how the metric is used and what are the benefits Understand how the metric is collected and what are the costs Perform cost-benefit analysis Define the metric, analyse if it satisfies the requirements for metrics Define target values, comparison indicators, etc Design and implement processes for metrics data reporting, collection, usage Explain, introduce, improve

Requirements for metrics General - Relevant - Valid - Reliable - Comprehensive - Mutually exclusive Operative - Easy and simple - Does not require additional data collection - Immune to biased interventions

Different organisations / discussion Needs and metrics? IT company Customer company Startup Large organisation Small organisation Discussion on metrics Extensive topic No detailed consensus on classification Relatively little data on usefulness Know the principles Justify cost Use comon sense... looking forward

Software metrics: takeaway Why? Concept, idea, applications What? Content How? How can my organisation benefit? How to implement? Who? Organisation behind. Who might implement? Compare: IT company, customer company, startup, large, small When? When to use it, when not? Advantages, disadvantages? Where? Relationship to other methods Concepts and +/- Metrics for product, product, usage, data[, business] SLOC Function points COCOMO Software cost estimation Tools examples Requirements for metrics Introducing metrics

Additional reading (examples) Daniel Galin, Software Quality assurance from theory to implementation, Pearson - Addison-Wesley. Chapter 21. Ian Sommerville. Software Engineering. Ninth Edition. Addison-Wesley, Ch 24.4. Guide to the Software Engineering Body of Knowledge (SWEBOK), IEEE. Chapter 4 Section 4. Certified Tester Foundation Level Syllabus, ISTQB. Chapter 5.2.5, 5.3.1. Boehm, B. et al. Software Cost Estimation with COCOMO II. Prentice-Hall, 2000 David Garmus, David Herron. Function Point Analysis: Measurement Practices for Successful Software Projects. Addison-Wesley Information Technology Series, 2000