SQM-Unit1 and Unit 2
SQM-Unit1 and Unit 2
UNIT - 1
Introduction
Software Quality measures how well the software is designed (Quality of design) and how well the software conforms to the design (Quality of conformance)
Where,
Quality of design concerned about the specifications, design and requirements of the software
Introduction
The primary goal of engineering the product is
To improve the quality of the software products To increase the productivity & Job Satisfaction of the engineers
Quality is transparent when it is present and it can be easily recognized in its absence For Ex:
When a car falls into pieces When a system fails to perform properly
Introduction
Note: User Satisfaction issue must also be considered for Quality User Satisfaction = Good Quality + Delivered within budget and Schedule + Complaint product Most of the developers feel that software quality can be carried out only after the code is generated. But it is not true. It can be enforced each and every stages of a software process
Introduction
Note: If a team stresses quality in all engineering activities,
It reduces the amount of rework Results in lower cost
Introduction
Note:
SQM is the management Technique that can be applied to the development of software to favor the quality
Introduction
What is Quality? It is a characteristic or an attribute of something that must conforms to the design standards Quality can be a measurable characteristics that can be compared to length, color etc.,
Introduction
Insight about Quality? Quality is Not absolute Quality is Multidimensional Subject to constraints Quality criteria are not independant
Introduction
What is Quality? The degree of Excellence - OED, 1990 Zero Defects Crosby, 1979
The totality of features and characteristics of a product or service that bear on its ability to satisfy specified needs ISO, 1986
Quality of a product is achieved thro its features & characteristics So it is associated with the attribute of a product thro which performance can be achieved
Introduction
Software Quality? Conformance to explicitly stated functional, performance requirements & development standards and implicit characteristics that are expected by all softwares Department of Defense defined a SQ as the degree to which the attribute of the softwares enable it to perform its intended end use
Introduction
Software Quality 2 features of quality software: Conformance to its specification Fitness to its intended purpose
Introduction
Software Quality When compared to other industry, Software Quality will be problamatic coz It does not have physical existence Lack of knowledge of client Rapid change rate in both hardware & software High expectation of the customer
Introduction
Views of Quality Quality is a multidimensional construct It can be considered as a Polyhedron Metaphor where a quality is represented by a 3dimensional solid & each face represents a different aspects of quality Polyhedron Metaphor is illustrated as
Introduction
Views of Quality
Timeliness
Functionality
Cost
Correctness
Functionality
Cost
Reliability
Timeliness
Maintainability
Introduction
Views of Quality
Based on different characteristics of a product, it is been classified into number of views or perspectives These views may be considered based on external observers viewing towards a product ex: user, supplier or client etc., These views are used to vary & conflict based on different types of peoples who is viewing the product Ex: viewing persons
Project Manager Business Analyst Programmer Quality Auditor End user Line Manager and Project Sponser
Introduction
Views of Quality In general, conflicting views are represented between User and Designer Designer User
Good Specification
Technically correct Easy to maintain Fast development Well documented User managed & Well trained Simple Menu Structure
What I want
Fast Response Easy to use help menu Exception data & reporting Input data once Access to all systems Accurate time
Introduction
Views of Quality conflicting views are classified into 5 types
1. 2. 3. 4. 5. Transcendent view Product based view Value based view Manufacturing view User based view
Introduction
Views of Quality
Transcendent view
Product based
Value based
Manufacturing
user based
Introduction
Views of Quality
1. Transcendent view
This view relates quality to excellence or elegance. In large scale projects, it is expensive to innate high degree of excellence
Introduction
Views of Quality
3. Value based view
This view depends on what price that the customer can afford With in the software development, this view can be used to add the quality to a product with the help of needed people, time & tools
4. Manufacturing view
This view measures the quality in terms of conformance to requirements
Introduction
Views of Quality
5. User based view
This view can be summarized as Fitness for purpose i.e., the intended functionality for the product must be facilitated according to the user
English Maths
Science
Tamil Social Science Total
Maths
Oral Skills
English
Writing
Science
Creative
Social
Reading Skills
Quality Metrics
Quality Metrics
Quality Metrics
In this model, McCall attempts to bridge the gap between users & developers by focusing number of quality factors that reflect both the user views & developer priorities
Product Revision
Product Transition
Product operations
Correctness, Reliability, Efficiency, Integrity, and Usability
Completeness
Robustness / Integrity Consistency Accountability Device Efficiency
Accessibility
Communicativeness Self descriptiveness Structuredness conciseness Legibility Augment ability
Quality Measurement
Measurement of quality is one of the key problem highlighted by IT practitioners Quality measurement is expressed in terms of Metrics that is a measurable property which is an indicator of one or more quality criteria that are seeking to measure Conditions that the quality metric are: It must be linked to the quality criterion that it seek to measure It must be sensitive to different criterion It provides determination of the criterion
Quality Measurement
Measurement technique to a software is similar to the traditional science methods. But it is more complex Structuredness is the main factor for the software thro which quality can be measured.
Well structured code is easy to maintain & adapt which can be calculated in terms of average length of code modules in the program
Structuredness
modularity
Quality Measurement
Software Metrics Structuredness is used to predict the maintainability, reliability & adaptability of the software later in the lifecycle Classified into 2 types: Predictive Metrics Descriptive Metrics
Quality Measurement
Software Metrics (Cont) Predictive Metrics It is used to make predictions about the software later in the life cycle Descriptive Metrics It describes the state of the software at the time of the measurement
For Ex: reliability metric might be based upon the number of system crashes during the given period
Quality Measurement
Software Metrics (Cont) McCall & Boehm have defined many number of approaches to find metrics McCalls approach is quantitative where structuredness of a software can be measured by
Where, n01 = number of modules having one or zero exit points ntot = total number of modules
Quality Measurement
Software Metrics (Cont) Using Boehm concept, structuredness can be measured by addressing the answer for following questions: Have the rules for transfering control between modules been followed? (Y/N) Are modules are limited in size? (Y/N) Do all modules have one exit point? (Y/N) Do all modules have only one entry point? (Y/N)
Quality Measurement
Software Metrics (Cont) What makes a good Metric? After McCall & Boehm concepts, a scientist Watts had publishes an analysis of metrics. And he suggests 7 quality criterias of good software metric
Quality Measurement
Software Metrics (Cont) Metric Ranking Watts had cited /quoted 40 metrics from the software engineering Among these 40 metrics, 3 quarters of 40 metrics are concerned with 2 criteria namely reliability & maintainability 4 criterias are not metricated 3 criterias have only one metric
Quality Measurement
Software Metrics (Cont) Watts had ranked following criterias based on no. of metrics
Quality Criteria Maintainability Reliability Usability Correctness Integrity Expandability Portability Efficiency Number of metrics cited 18 12 4 3 1 1 1 0
Adaptability
Interoperability Reusability
0
0 0
Quality Measurement
Software Metrics Ranking The set of metrics quoted is based on 7 distinct measurable properties: 1. Readability 2. Error Prediction 3. Error Detection 4. Complexity 5. MTTF (Mean Time To Failure) 6. Modularity 7. Testability
Quality Measurement
Software Metrics Ranking (Cont) Relationship b/w Quality Criteria & Measurable properties are:
Readability Error Prediction Error Detection Complexity MTTF Modularity Testability Others Usability Integration Correctness Reliability Maintainability Expandability Portability
Measurable Properties
Quality Criteria
Quality Measurement
Software Metrics Ranking (Cont) 1. Readability as a measure of usability: This measure is applied in documentation to asses how such documentation assist in the usability of a piece of a software
2 methods:
a) Flesch-Kincaid readability index forms b) Fog Index
First method works at a syllable level & calculated using the formulae:
Grade Level = 0.39a + b - c
a = no. of words in the sentence b=mean no. of syllables per 100 words c = 15.59
Quality Measurement
Software Metrics Ranking (Cont) 1. Readability as a measure of usability: Fog index method:
Fog Index = 0.4a + b
a = no. of words in the sentence b= percentage of words with more than 2 syllables
Quality Measurement
Software Metrics Ranking (Cont) 2. Readability as a measure of Maintainability: Readability of source code can be done in terms of
Statement lines Average length of variable names Total number of program branches
Quality Measurement
Software Metrics Ranking (Cont) 3. Error Prediction as a measure of Correctness: With reference to the quote of Halstead, using Basic parameters such as number of operators & operands one can predict Number of errors found during validation Total number of errors found during development
Quality Measurement
Software Metrics Ranking (Cont) 4. Error Detection as a measure of Correctness: Total number of errors which are not detected has to be predicted using Remus, Zilles model (says no. of detected errors) and error detection efficiency Number of defect removal rate Program length and defect
Quality Measurement
Software Metrics Ranking (Cont) 5. MTTF as a measure of Reliability: MTTF is given by tTOT MTTF = --------Rt
Quality Measurement
Software Metrics Ranking (Cont) 5. MTTF as a measure of Reliability: MTTF can be assessed by measurement, estimation or prediction Reliability can be calculated using the measures Current MTTF (tF) Length of the operation phase (tOP)
Quality Measurement
Software Metrics Ranking (Cont) 6. Complexity as a measure of Reliability: If a Complexity of software gets increases then the reliability will decreases For Ex: Logical complexity of the software can be measured by the concept of Cyclomatic Complexity 7. Complexity as a measure of Maintainability: If a Complexity of software gets increases then the maintainability will get affected
Quality Measurement
Software Metrics Ranking (Cont) 8. Modularity as the measure of Maintainability: If a modularity increases in the software then the Maintainability of software will also increases
9.
Testability as the measure of Maintainability: Ease & effective testing will have a positive impact on a product The effectiveness of testing will be measured by the concept raised by Woodward
Quality Measurement
Problems on Software Metrics The overall measure of quality can be calculated by following measures: 1. Simple Scoring 2. Weighted Scoring 3. Phased weighting factor method 4. The Kepner-Tregoe Method 5. The Cologne combination method
Quality Measurement
Problems on Software Metrics 1. Simple Scoring In this method, each quality criteria is allocated with a score Overall quality is given by the mean of individual scores Sum of each Metric Score Simple Score = --------------------------------------------------Total number of Metric scores
Quality Measurement
Problems on Software Metrics 1. Example: Simple Scoring Quality Criteria Usability Security Efficiency Correctness Reliability Maintainability Metric Value 0.7 0.6 0.4 0.8 0.6 0.6 Simple Score = ?
Adaptability
Expandability
0.7
0.7
Quality Measurement
Problems on Software Metrics 2. Weighted Scoring In this method, each Quality Criteria can be weighted based on its importance Each quality criterion is evaluated to produce a score between 0 & 1 Sum of Product of each Metric Weighted Score = ------------------------------------------Sum of each Metric weight Where, Product = Value of each Metric Score X weight of each Metric score
Quality Measurement
Problems on Software Metrics 2. Problem 1: Weighted Scoring Quality Criteria Usability Security Efficiency Correctness Reliability Maintainability Metric Value 0.7 0.6 0.4 0.8 0.6 0.6 Weight 0.5 0.2 0.3 0.5 0.4 0.4 Weighted Score = ?
Adaptability
Expandability
0.7
0.7
0.1
0.1
Quality Measurement
Problems on Software Metrics 3. Phased weighting factor method It is an extension of weighted scoring Here weighting is assigned to a group of characteristics based on work areas defined by McCall In this method, 2 work areas [Product Operation & Product Transition] are focused to produce quality where each area will be assumed with additional weightage of characteristics
Quality Measurement
Problems on Software Metrics 3. Phased weighting factor method 3 measures has to be calculated: Product Operation Weighted Mean (POWM) Product Transition Weighted Mean (PTWM) Overall Measure by PWF method Sum of Product of each PO quality criteria POWM = ----------------------------------------------------------Sum of weight of each PO quality criteria
Quality Measurement
Problems on Software Metrics 3. Phased weighting factor method Sum of Product of each PT quality criteria PTWM = -------------------------------------------------------Sum of weight of each PT quality criteria
PWF is the additional weighting factor that will be assumed for the calculation. For Ex: PWF for Product Operations = 2/3 PWF for Product Transition = 1/3
Quality Measurement
Problems on Software Metrics 3. Problem 2: Phased Weighted Scoring Group Quality Criteria Usability Product Operation Security Efficiency Correctness Reliability Maintainability Metric Weight PWF Value 0.7 0.6 0.4 0.8 0.6 0.6 0.5 0.2 0.3 0.5 0.4 0.4 2/3
Product Transition
Adaptability
Expandability
0.7
0.7
0.1
0.1
1/3
Quality Measurement
Problems on Software Metrics 3. The Kepner-Tregoe Method In this method, quality criteria is divided into 2 parts Essential minimum value will be specified for each
criteria
desirable 4. The Cologne combination method This method facilitates comparative evaluation Each product will be ranked based on chosen criteria
Quality Measurement
Problems on Software Metrics Problem 3: Using the following data & the PWF method, calculate the following: POWM, PTWM and overall measure of the product
Group Quality Criteria Usability Product Operation Security Efficiency Correctness Reliability Maintainability Product Transition Adaptability Metric Value 0.7 0.5 0.6 0.7 0.4 0.8 0.7 Weight 0.5 0.5 0.2 0.5 0.4 0.4 0.1 1/3 2/3 PWF
Expandability
0.7
0.1
Quality Measurement
Polarity Profiling In this scheme, Quality of a product is specified in the ranges from -3 to +3 Comparison analysis is made between required quality & the actual quality achieved 4 quality criterias have been focused for this method which are namely Efficiency These criterias would be Reliability Useful to analyze user Maintainability satisfaction of the product Adaptability
Quality Measurement
Polarity Profiling (Cont) When a user complaints about the quality, software engineer has to improve the product in these areas Polarity Profiling is the graphical profiles representation of quality criterias to asses the satisfaction / expectation of the user Using this scheme, an engineer can asses the level of user happiness where by user expectations & the developer tension can be minimized
Quality Measurement
Example: Polarity Profiling (Cont)
-3 -2 -1 0 1 2 3
Where,
Reliability & efficiency not up to the reqd. std. where as adaptability & maintainability appears to be beyond the level Users wont get Happy
-3
-2
-1
Where,
Reliability & efficiency reaches the reqd. std. where as adaptability & maintainability also appears to be reaches the level Users will be Happy
Where,
Quality Criteria
Actual Quality
Required Quality
Usability
Security Efficiency Correctness Reliability Maintainability Adaptability
0.3
0.5 0.3 0.9 0.9 0.4 0.4
0.7
0.7 0.6 0.9 0.9 0.8 0.8
Quality Measurements
Gilbs Approach It is an iterative approach aiming to converge towards clear & measurable multidimensional objectives This approach makes use the concept of McCall & Boehm models For each stage, a partial product can be viewed with user where a product will be evaluated to identify whether it meets the needs of user. If it does not satisfy errors has to be identified & cleared out during the next iteration until a product gets satisfied by the user.
Quality Measurements
Gilbs Approach 5 problem areas highlighted Simple fact that the method is different Need of training & re-training and associated costs Need of effective management Need to measure progress towards the ultimate goal Picking up errors
Quality Measurements
Gilbs Approach With reference to Gilbs approach, product quality can be measured in terms of Quality Template It models quality in terms of Quality attributes & Resource attributes. This is because quality of a product can be constrained by the available resources
Quality Measurements
Gilbs Approach Quality Template can be pictured as:
Workability Availability
Adaptability Usability Other Qualities
People Time
Money Tools Other Resources
Qualities
Resources
Quality Measurements
Gilbs Approach Quality Attributes 1) Workability 2) Availability 3) Adaptability 4) Usability
Quality Measurements
Gilbs Approach: Quality Attributes & its sub-attributes
Process Capacity Workability Storage Capacity Responsiveness Reliability Availability Maintainability Integrity
Improvability
Adaptability Extendability Portability Entry Level Requirements Learning level requirements Usability Handling ability Likability
Quality Measurements
Gilbs Approach: Quality Attributes 1) Workability It is defined as the ability of the system to do work (i.e., transaction processing) Divided into sub-attributes of: Process capacity It is the ability of the system to process transactions with in a given unit of time Storage capacity It is the ability of the system to store information Responsiveness It is a measure of the response to a single event
Quality Measurements
Gilbs Approach: Quality Attributes 2) Availability It is the ability of the system to be used with the proportion of elapsed time Classified into Sub attributes of: a) Reliability b) Maintainability c) Integrity
Quality Measurements
Gilbs Approach: Quality Attributes 2) Availability a) Reliability It is the ability of the system that should not fail from its operating environment under any circumstances It is the degree to which the system does what it should to do.
Coz purpose of a system is different & the purpose of parts of a system will be different. So the assessment of reliability will also vary
Quality Measurements
Gilbs Approach: Quality Attributes 2) Availability a) Reliability Based on the analysis of Dickson, Gilbs have suggested that reliability can be assessed in terms of Fidelity For both Logicware (code) Veracity and Dataware (data files) Viability
Quality Measurements
Gilbs Approach: Quality Attributes Dicksons classification of Reliability
Fidelity Logicware Veracity Viability Concerned with the accuracy of algorithm implementation Concerned with the representation of real world be an algorithm Is the extent to which an algorithm meets its specification in terms of performance & requirements Says how accurately an idea is represented by the data within a application
Fidelity Dataware
Veracity
Viability
Quality Measurements
Gilbs Approach: Quality Attributes 2) Availability b) Maintainability It is the effort required to locate & fix a fault in the program within its operating environment
Quality Measurements
Gilbs Approach: Quality Attributes 2) Availability c) Integrity It is the protection of the program from unauthorized access
Quality Measurements
Gilbs Approach: Quality Attributes 3) Adaptability Classified into sub-attributes of: Improvability It is the time taken to make minor changes to the system
Quality Measurements
Gilbs Approach: Quality Attributes 4) Usability It is the ability of the system that should facilitate the ease of use & effectiveness of a system Classified into sub-attributes of: Handling ability It is a measure that says how well
productivity can be proceeded after the error is detected
Quality Measurements
Gilbs Approach: Resource Attributes
Quality Measurements
Gilbs Approach: Resource Attributes Time Resource 2 types Calendar time to delivery Time taken by the system to carry out the task People Resource Measured in terms of Man-years But the availability of People for the particular development is critical Ex: can not utilize PASCAL programmers for C programming
Quality Measurements
Gilbs Approach: Resource Attributes Money Resources Concerned with both development & maintenance costs In general, 80% of cost would be spent to maintenance for quality improvement Tool Resources It comprises all physical resources
Quality Measurements
Gilbs Approach: Resource Attributes For continuous improvements, these resources will be considered as constraints to a product
People
Money
Time
Tools
Quality Measurements
Gilbs Approach: Resource Attributes Gilbs have defined some measures to quantify those attributes. And these can be measured in terms of units per time For ex: Transactions per second Records per minute Bytes per line Bits per node per second
Quality Measurements
Gilbs Approach: Resource Attributes
Process Capacity
Workability Storage Capacity Responsiveness
Attribute
Sub-attribute
General measure
Example
Quality Measurements
GQM Model GQM, the acronym for "Goal, Question, Metric It is an approach to Software Metrics It was developed by Victor Basili of the University of Maryland & the Software Engineering Laboratory at the NASA Goddard Space Flight Center
Quality Measurements
GQM Model
GQM defines a measurement model on three levels: Conceptual level (goal) A goal is defined for an object for a variety of reasons, with respect to various models of quality, from various points of view and relative to a particular environment. Operational level (question) A set of questions is used to define models of the object of study and then focuses on that object to characterize the assessment or achievement of a specific goal. Quantitative level (metric) A set of metrics, based on the models, is associated with every question in order to answer it in a measurable way.
Quality Measurements
GQM Model GQM templates are a structured way of specifying goals
Field Examples
Object of study
Purpose Focus stakeholder