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

Similar documents
Quality Management. What is quality? Managing the quality of the software process and products ISO 9000

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

Quality Management. Objectives

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

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

Quality Management. Managing the quality of the software process and products

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

What do you think? Definitions of Quality

Software Engineering: Analysis and Design - CSE3308

CSC 408F/CSC2105F Lecture Notes

Introduction to Software Engineering. 8. Software Quality

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

Chap 1. Software Quality Management

SOFTWARE QUALITY MODELS: A COMPARATIVE STUDY

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

Kunal Jamsutkar 1, Viki Patil 2, P. M. Chawan 3 (Department of Computer Science, VJTI, MUMBAI, INDIA)

Software Engineering Compiled By: Roshani Ghimire Page 1

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

Software Quality Assurance. Software Engineering: A Practitionerʼs Approach, 7/e by Roger S. Pressman

Darshan Institute of Engineering & Technology Unit : 7

Introducing Formal Methods. Software Engineering and Formal Methods

Formal Software Testing. Terri Grenda, CSTE IV&V Testing Solutions, LLC

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

HOW TO CREATE USEFUL SOFTWARE PROCESS DOCUMENTATION ABSTRACT

Software Quality Management

Requirements engineering

Comparative Analysis of Different Software Quality Models

Fundamentals of Measurements

Software Engineering 9.1. Quality Control

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

Software Test Plan (STP) Template

Software Quality. Software Quality Assurance and Software Reuse. Three Important Points. Quality Factors

Software Testing. Quality & Testing. Software Testing

Testing Metrics. Introduction

Peer Review Process Description

Use Cases. Massimo Felici. Massimo Felici Use Cases c

Unit 11: Software Metrics

Software Metrics & Software Metrology. Alain Abran. Chapter 4 Quantification and Measurement are Not the Same!

How To Improve Software Quality

copyright 1996, 2001, 2005 R.S. Pressman & Associates, Inc.

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

Evaluation of the Iceland State Financial and Human Resource System REPORT OF THE INDIVIDUAL EVALUATOR. Annex 2 SYSTEM AND SOFTWARE QUALITY

Description of Services for A Quality Assurance Engineer for SQA Assignment for eservices Development Projects ICTA/CON/IC/P5/411B

Software Quality Assurance

Peer Review Process Description

Software testing. Objectives

Empirical Software Engineering Introduction & Basic Concepts

CSTE Mock Test - Part I - Questions Along with Answers

International Journal of Advance Research in Computer Science and Management Studies


Measurement Information Model

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

Meeting DO-178B Software Verification Guidelines with Coverity Integrity Center

Keywords: SQA,Black Box Testing( BBT), White Box testing(wbt).

Unit 10: Software Quality

How To Understand Software Quality

VAIL-Plant Asset Integrity Management System. Software Development Process

CSTE Mock Test - Part III Questions Along with Answers

How To Write Software

Standard Glossary of Terms Used in Software Testing. Version 3.01

MTAT Software Engineering Management

TPI a model for Test Process Improvement

Requirements engineering and quality attributes

ISO/IEC Software Product Quality Model

IT3203 Fundamentals of Software Engineering (Compulsory) BIT 2 nd YEAR SEMESTER 3

Software Requirements Specification

An Introduction to. Metrics. used during. Software Development

SOFTWARE DEVELOPMENT STANDARD FOR SPACECRAFT

Your Software Quality is Our Business. INDEPENDENT VERIFICATION AND VALIDATION (IV&V) WHITE PAPER Prepared by Adnet, Inc.

Quality Management. Lecture 12 Software quality management

Volume I, Section 4 Table of Contents


How To Understand Software Engineering

How To Write Software

1.0 INTRODUCTION 1.1 Overview

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

Engineering Process Software Qualities Software Architectural Design

Implementation of a Quality Management System for Aeronautical Information Services -1-

Noorul Islam College of Engineering M. Sc. Software Engineering (5 yrs) IX Semester XCS592- Software Project Management

Process Improvement. Objectives

Comparison ISO/TS (1999) to VDA 6.1 (1998)

Software Quality Management II

Karunya University Dept. of Information Technology

Organizational Requirements Engineering

Baseline Code Analysis Using McCabe IQ

The Role of Information Technology Studies in Software Product Quality Improvement

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

Software Requirements Metrics

Standard Glossary of Terms Used in Software Testing. Version 3.01

IT3205: Fundamentals of Software Engineering (Compulsory)

Moving from ISO9000 to the Higher Levels of the Capability Maturity Model (CMM)

Software Project Audit Process

Compliance ow - managing the compliance of dynamic and complex processes

Certification criteria for. Internal QMS Auditor Training Course

Transcription:

Why SQA Activities Pay Off? Software Quality & Metrics Sources: 1. Roger S. Pressman, Software Engineering A Practitioner s Approach, 5 th Edition, ISBN 0-07- 365578-3, McGraw-Hill, 2001 (Chapters 8 & 19) 2. Measurement for Software Process Improvement by Barbara Kitchenham (Chapter 4) (out of print) SYSC 4106 - Software Project Management: Software Quality 1 1 SYSC 4106 - Software Project Management: Software Quality 2 2 McCall s Triangle of Quality Flexibility Testability PRODUCT REVISION Interoperability PRODUCT TRANSITION PRODUCT OPERATION Correctness Efficiency Integrity Quality Concepts general objective: reduce the variation between samples... but how does this apply to software? quality control: a series of inspections, reviews, tests quality assurance: analysis, auditing and reporting activities cost of quality appraisal costs failure costs external failure costs SYSC 4106 - Software Project Management: Software Quality 3 3 SYSC 4106 - Software Project Management: Software Quality 4 4 Software Quality Assurance SQA Process Definition & Standards Analysis & Reporting Measurement Formal Technical Reviews Test Planning & Review Software Quality Quality is a complex and multifaceted concept: 1. The transcendental view of philosophy which regards quality as something that can be recognised but not defined; 2. The user view, which is usually encapsulated in the phrase "fitness for purpose"; 3. The manufacturing view, which is usually encapsulated in the phrase "conance to specification"; 4. The product view, which relates quality to the inherent characteristics of the product; 5. The value for money view, which considers quality to be conditional on the amount a customer is willing to pay. SYSC 4106 - Software Project Management: Software Quality 5 5 SYSC 4106 - Software Project Management: Software Quality 6 6

User View The user view regards a quality product as one with the characteristics (functions and attributes) that meet its user's needs. The user view of quality is based on an evaluation of the product in the context of the task it is intended to per. It is the viewpoint that is inherent in reliability and perance modelling which are based on the concept of assessing product behaviour with respect to operational profiles. Manufacturing View This is the approach implicit in process standards such as ISO 9001 and the Capability Maturity Model. Advocates of this approach usually concentrate on conance to process rather than conance to specification. However, in the world of software, there is no guarantee that either conance to process standards such as ISO 9001, or achieving high maturity levels will deliver good products. The process standards are based on the principle of Documenting what you do and doing what you say. SYSC 4106 - Software Project Management: Software Quality 7 7 SYSC 4106 - Software Project Management: Software Quality 8 8 Product View The product view considers the inherent characteristics of the product. This view is frequently adopted by advocates of software metrics who assume that measuring and controlling internal product properties (i.e. internal quality indicators) will result in improved external product behaviour (i.e. quality in use). Assessing quality by measuring internal properties is attractive because it offers an objective and context independent view of quality. Software engineering researchers have developed models that attempt to link the product view to the user view. User View Models One important class of measures taking the user view of software are related to software reliability measurement. Software reliability concerns the frequency with which a software product fails when it is being used - a concept of understandable importance to a user. The relationship between reliability model and the user view of quality depends on either being able to observe the behaviour of software in the field, or simulate user behaviour by means of operational profiles. Operational profiles are also important for assessing software and system perance where we are interested in measuring characteristics such as job throughput, response times, central processing unit occupancy etc. For usability, we need to think in terms of task profiles rather than operational profiles. assessment can be measured in terms of times to per tasks, and task error rates. SYSC 4106 - Software Project Management: Software Quality 9 9 SYSC 4106 - Software Project Management: Software Quality 10 10 Quality Characteristic Efficiency Product View Models Definition A set of attributes that bear on the existence of a set of functions and their specified properties. The functions are those that satisfy stated or implied needs. A set of attributes that bear on the capability of so ftw are to maintain its level of perance und er stated conditions for a stated period of time. A set of attributes that bear on the effort needed for use, and on the individual assessment of such use, by a stated or implied set of users. A set of attributes that bear on the relationship between the level of perance of the software and the amount of resources used, under stated conditions. A set of attributes that bear on the effort needed to make specified modifications. Note. Modifications may include corrections, improvements or adaptions of software to changes in the environment and in the requirements and functional specifications. A set of attributes that bear on the ability of software to be transferred from one environment to another. N ote. The environment may include organisational, hardware or software environment. SYSC 4106 - Software Project Management: Software Quality 11 11 Procedure Identify for each component which quality-carrying properties must be satisfied and which high-level quality attribute each property affects From the top down, you need to consider for each quality attribute which quality-carrying properties imply that attribute and which components possess those properties Categories of Properties 1. correctness properties (minimal generic requirements for correctness); 2. structural properties (low-level, intramodule design issues); 3. modularity properties (high-level, intermodule design issues); 4. descriptive properties (various s of specification/documentation). SYSC 4106 - Software Project Management: Software Quality 12 12

Correctness Properties C1 Computable Result obeys standard Expressions theory of computation C2 Complete All elements of Objects structural satisfied Modules Statements C3 Assigned Variable given value before use. C4 Precise Adequate accuracy is preserved in calculations Subscript out of range Divide by zero Self assignment Module generating no output Unreachable code in a selection mechanism Use of undefined variable on right hand side of expression Use of single precision when double is required Structural Properties S1 Structured Single entry and exit Sequences Guards Expressions S2 Resolved Matched data and Sequences control structure Guards Efficiency S3 Homogeneous Only conjunctive invariants for loops S4 Effective No computational redundancy Expressions Loops Modules (recursive) Expression Statements Efficiency Exit from middle of loop Multiple returns from function Use of a single loop to process two-dimensional array Loop structure with noncohesive functionality Expression with unnecessary computation SYSC 4106 - Software Project Management: Software Quality 13 13 SYSC 4106 - Software Project Management: Software Quality 14 14 Modularity Properties M1 Parameterized All inputs accessed via a Modules parameter list M2 Loosely coupled Data coupled Module calls M3 Encapsulated Uses no global variables Types M4 Cohesive Relationships between elements of an entity are maximized Sequences Module with no parameters Modules exhibiting other s of coupling (e.g. links based on use of common data). Use of variable in a module that has not been declared within the module s scope Loop with dispersed initialisation Descriptive Properties D1 Specified Preconditions and Post Objects conditions provided Modules Loops Sequences D2 Documented Comments associated with all blocks D3 Specification is ambiguous, inaccurate or inconsistent No pre- or postconditions Selfdescriptive Identifiers have meaningful names Objects Modules Loops Sequences Module calls Data structures Types Objects Modules Module calls Data structures More comments than required Documentation misleading or wrong Name is misleading, ambiguous or wrong Names bear no relation to function SYSC 4106 - Software Project Management: Software Quality 15 15 SYSC 4106 - Software Project Management: Software Quality 16 16 Manufacturing View Defect Counts Defect counts are the number of known defects recorded against the product during its development and live use For comparison purposes it is important that defect counting is always applied to the same stages in the lifecycle. For more detailed analysis it is useful to categorise defects on the basis of the phase/activity that introduced the defect and the phase/activity in which the defect was detected. To measure product quality using defect counts, it is important to note that pre-release defect rates are a surrogate measure of quality. Post-release defect rates are the real measure of the quality of the delivered product. SYSC 4106 - Software Project Management: Software Quality 17 17 Manufacturing View Defect Counts II It is also important to ensure that defects are recorded at comparable stages post-release (e.g. up to six months after release). In order to compare the quality of different products, defect counts should be "normalised" by dividing by product size to give defect rates. In addition, post-release defect counts should be normalised with respect to the number of different product users and/or number of different computer installations which use the software product, and the amount of use by each installation/user SYSC 4106 - Software Project Management: Software Quality 18 18

Manufacturing View Rework Effort In software development, rework costs are usually equated to staff effort spent correcting defects before and after release. It is important to define what is meant by rework during software development. It is best to exclude end-phase verification and validation, and include only rework of documents and code that have been ally signed-off. Debugging effort expended during integration and system testing should be included. To compare different products, rework effort is normalised by being calculated as a percentage of development effort. Manufacturing View Rework Effort II Only defect correction should count as re-work because it is a cost of non-conance. The ability to enhance software to include new facilities is not a cost, it is usually a benefit! It is important to separate pre- and post-release rework effort. Post-release rework effort is a measure of delivered quality. Pre-release rework effort is a measure of manufacturing efficiency. It is also a cost of non-conance, but if the effort can be attributed to specific phases/activities it can also be used to identify areas of maximum leverage for process improvement. SYSC 4106 - Software Project Management: Software Quality 19 19 SYSC 4106 - Software Project Management: Software Quality 20 20 Software Quality Metrics Conance to software requirements is the foundation from which quality is measured. Specified standards define a set of development criteria that guide the manner in which software is engineered. Software quality is suspect when a software product cons to its explicitly stated requirements and fails to con to the customer's implicit requirements (e.g. ease of use). Metrics for specification Quality Davis and his colleagues propose a list of characteristics that can be used to assess the quality of the analysis model and the corresponding requirements specification: specificity (lack of ambiguity), completeness, correctness, understandability, verifiability, internal and external consistency, achievability, concision, traceability, modifiability, precision, and reusability. Although many of these characteristics appear to be qualitative in nature, Davis et al. suggest that each can be represented using one or more metrics. For example, we assume that there are n r requirements in a specification, such that n r = n f + n nf where n f is the number of functional requirements and n nf is the number of non-functional (e.g., perance) requirements. SYSC 4106 - Software Project Management: Software Quality 21 21 SYSC 4106 - Software Project Management: Software Quality 22 22 The specificity (lack of ambiguity) of requirements can be determined: Q 1 = n ui /n r where n ui is the number of requirements for which all reviewers had identical interpretations. The closer the value of Q to 1, the lower is the ambiguity of the specification. The completeness of functional requirements can be determined by computing the ratio: Q 2 = n u /[n i x n s ] where n u is the number of unique function requirements, n i is the number of inputs (stimuli) defined or implied by the specification, and n s is the number of states specified. The Q 2 ratio measures the percentage of necessary functions that have been specified for a system. However, it does not address nonfunctional requirements. To incorporate these into an overall metric for completeness, we must consider the degree to which requirements have been validated: Q 3 = n c /[n c + n nv ] where n c is the number of requirements that have been validated as correct and n nv is the number of requirements that have not yet been validated. SYSC 4106 - Software Project Management: Software Quality 23 23 Architectural Design Metrics Architectural design metrics Structural complexity = g(fan-out) Data complexity = f(input & output variables, fan-out) System complexity = h(structural & data complexity) HK metric: architectural complexity as a function of fan-in and fan-out Morphology metrics: a function of the number of modules and the number of interfaces between modules SYSC 4106 - Software Project Management: Software Quality 24 24

Component-Level Design Metrics Cohesion metrics: a function of data objects and the locus of their definition Coupling metrics: a function of input and output parameters, global variables, and modules called Complexity metrics: hundreds have been proposed (e.g., Cyclomatic complexity) We will now look at the cyclomatic complexity McCabe s Cyclomatic Number The premise is that complexity is related to the control flow of program. Graph theory uses a ula, C=e-n+1 to calculate cyclomatic number. McCabe uses the slightly modified ula: C=e-n+2p, where: e = Number of edges n = Number of nodes p = Number of strongly connected components (which is normally 1) SYSC 4106 - Software Project Management: Software Quality 25 25 SYSC 4106 - Software Project Management: Software Quality 26 26 Example 1: Determine the cyclomatic number from the control flow graph shown below: Planar Graph A planar graph is a graph that can be drawn without lines crossing. Euler L (1707-1783) proved that for planar graph that 2 = n e + r, where r = number of regions, e = number of edges, and n = number of nodes. A region is an area enclosed (or defined) by arcs, r = e n + 2. Therefore, the number of regions on a planar graph equals the cyclomatic number. Example: Label the regions in the control flow graph above - There are 8 nodes, so n = 8. There are 11 arcs, so e = 11. The cyclomatic number is C = 11 8 + 2 = 5 As shown, there are 5 regions. Region I is the outside of the graph SYSC 4106 - Software Project Management: Software Quality 27 27 SYSC 4106 - Software Project Management: Software Quality 28 28 Calculating the cyclomatic number from control graph is time-consuming. Constructing a control graph from a large program would be prohibitively time-consuming. McCabe found that the number of region is usually equal to one more than the number of decisions in a program, C = Π + 1, where Π is the number of decisions. In source code, an IF, a WHILE loop, or a FOR loop is considered one decision. A CASE statement or other multiple branch is counted as one less decision than the number of possible branches. Control flow graphs are required to have a distinct starting node and a distinct stopping node. If this is violated, the number of decisions will not be one less than the number of regions Example2 : Label the decisions in the control flow graph of example 1 above with lower case letters. As shown below, from node a, there are three arcs, so there must be two decisions, labeled a and b. From nodes c and f, there are two arcs and so one decision each. The other nodes have at most one exit and so no decisions. There are four decisions, so C = 4 + 1 = 5 SYSC 4106 - Software Project Management: Software Quality 29 29 SYSC 4106 - Software Project Management: Software Quality 30 30

Quality assurance and standards Standards are the key to effective quality management. They may be international, national, organizational or project standards. Product standards define characteristics that all components should exhibit e.g. a common programming style. Process standards define how the software process should be enacted. Importance of standards Encapsulation of best practice- avoids repetition of past mistakes. They are a framework for quality assurance processes - they involve checking compliance to standards. They provide continuity - new staff can understand the organisation by understanding the standards that are used. SYSC 4106 - Software Project Management: Software Quality 31 31 SYSC 4106 - Software Project Management: Software Quality 32 32 Product and process standards Product standards Design review Requirements document structure Method header at Java programming style Project plan at Change request Process standards Design review conduct Submission of documents to CM Version release process Project plan approval process Change control process Test recording process Problems with standards They may not be seen as relevant and up-to-date by software engineers. They often involve too much bureaucratic filling. If they are unsupported by software tools, tedious manual work is often involved to maintain the documentation associated with the standards. SYSC 4106 - Software Project Management: Software Quality 33 33 SYSC 4106 - Software Project Management: Software Quality 34 34 Standards development Involve practitioners in development. Engineers should understand the rationale underlying a standard. Review standards and their usage regularly. Standards can quickly become outdated and this reduces their credibility amongst practitioners. Detailed standards should have associated tool support. Excessive clerical work is the most significant complaint against standards. Summary Quality is a complex concept that means different things to different individuals. It can be highly context dependent No simple measure of quality that will be accepted by everyone Define what aspect of quality you are interested in, and how you will measure it Define quality in a measurable way helps other people understand your viewpoint SYSC 4106 - Software Project Management: Software Quality 35 35 SYSC 4106 - Software Project Management: Software Quality 36 36