Professional Documents
Culture Documents
Unit 5
Unit 5
Software Quality:
software quality, software quality engineering, defining quality
requirements, quality standards, practices & conventions, ISO
9000, ISO 9001, software quality matrices, managerial and
organization issues, defect prevention, reviews & audits, SEI
capability maturity model, PSP, six sigma
A software quality product refers to software that meets or exceeds
established quality standards and requirements. Software quality is a
measure of the degree to which software is free from defects, errors, and
bugs, and performs as expected in terms of functionality, reliability,
efficiency, maintainability, and usability.
• Quality systems have increasingly evolved over the last five decades.
Before World War II, the usual function to produce quality products
was to inspect the finished products to remove defective devices.
Since that time, quality systems of organizations have undergone
through four steps of evolution, as shown in the fig. The first product
inspection task gave method to quality control (QC).
• Quality control target not only on detecting the defective devices and removes them but also on determining
the causes behind the defects. Thus, quality control aims at correcting the reasons for bugs and not just
rejecting the products. The next breakthrough in quality methods was the development of quality assurance
methods.
• The primary premise of modern quality assurance is that if an organization's processes are proper and are
followed rigorously, then the products are obligated to be of good quality. The new quality functions include
guidance for recognizing, defining, analyzing, and improving the production process.
• Total quality management (TQM) advocates that the procedure followed by an organization must be
continuously improved through process measurements. TQM goes stages further than quality assurance and
aims at frequently process improvement. TQM goes beyond documenting steps to optimizing them through a
redesign. A term linked to TQM is Business Process Reengineering (BPR)
• BPR aims at reengineering the method business is carried out in an organization. From the above
conversation, it can be stated that over the years, the quality paradigm has changed from product assurance to
process assurance, as shown in fig.
• Non-functional requirements are the criteria for evaluating how a
software system should perform rather than what it should do. An
example would be a requirement for a web API endpoint response
time to be under 200ms.
• When we say that a software product should be “secure”, “highly-
available”, “portable”, “scalable” and so on, we are talking about
its quality attributes.
• In other words, a software product must have certain quality
attributes to meet certain non-functional requirements.
Software Quality Requirements
1. Product metrics − Describes the characteristics of the product such as size, complexity, design features, performance, and
quality level.
2. Process metrics − These characteristics can be used to improve the development and maintenance activities of the
software.
3. Project metrics − This metrics describe the project characteristics and execution. Examples include the number of
software developers, the staffing pattern over the life cycle of the software, cost, schedule, and productivity.
• Some metrics belong to multiple categories. For example, the in-process quality metrics of a project are both process
metrics and project metrics.
• Software quality metrics are a subset of software metrics that focus on the quality aspects of the product, process, and
project. These are more closely associated with process and product metrics than with project metrics.
The problems metric is usually expressed in terms of Problems per User-Month (PUM).
PUM = Total Problems that customers reported (true defect and non-defect oriented problems) for a time period + Total number of license months of the software during
the period Where,
Number of license-month of the software = Number of install license of the software × Number of months in the calculation period
PUM is usually calculated for each month after the software is released to the market, and also for monthly averages by year.
• Customer Satisfaction
Customer satisfaction is often measured by customer survey data through the five-point scale −
1. Very satisfied
2. Satisfied
3. Neutral
4. Dissatisfied
5. Very dissatisfied
Satisfaction with the overall quality of the product and its specific dimensions is usually obtained through various methods of customer surveys. Based on the five-po
scale data, several metrics with slight variations can be constructed and used, depending on the purpose of analysis. For example −
Percent of completely satisfied customers
Percent of satisfied customers
Percent of dis-satisfied customers
Percent of non-satisfied customers
2. In-process Quality Metrics:
In-process quality metrics deals with the tracking of defect arrival during formal machine testing for some organizations. This metric includes −
Defect rate during formal machine testing (testing after code is integrated into the system library) is correlated with the defect rate in the field. Higher defect rates
found during testing is an indicator that the software has experienced higher error injection during its development process, unless the higher testing defect rate is
due to an extraordinary testing effort.
This simple metric of defects per KLOC or function point is a good indicator of quality, while the software is still being tested. It is especially useful to monitor
subsequent releases of a product in the same development organization.
The defect arrivals or defects reported during the testing phase by time interval (e.g., week). Here all of which will not be valid defects.
The pattern of valid defect arrivals when problem determination is done on the reported problems. This is the true defect pattern.
The pattern of defect backlog overtime. This metric is needed because development organizations cannot investigate and fix all the reported problems immediately.
This is a workload statement as well as a quality statement. If the defect backlog is large at the end of the development cycle and a lot of fixes have yet to be
integrated into the system, the stability of the system (hence its quality) will be affected. Retesting (regression test) is needed to ensure that targeted product quality
levels are reached.
3. Maintenance metrics are measurements that give you insight into how everything and everyone is operating at your facility. They quantify the daily
activity of maintenance, and in doing so, paint a picture of how people and assets are working.
Defect Prevention Methods And Techniques
I) Pareto Analysis:
Pareto analysis is a formal and simple technique which helps prioritize the order of problem resolution for maximum impact.
It states that 80% of the problem arises due to 20% reasons.
Therefore, the problems once identified are prioritized according to frequency and a detailed statistics based analysis is
performed as to find which 20% of the reasons attributed to the 80% problems.
II) Fishbone Analysis:
Also known as Ishikawa Analysis this method is a more visual root cause analysis technique.
There are no statistics involved as this method is based on team-wide brainstorming.
The following diagram helps understand this better.
The problem is first written on the rightmost side and on the horizontal line that passes through it, the various causes are listed.
The branch that has the most cause-subclause bones (or lines/branches) is the problem that is most serious and that is to be
worked towards elimination. This technique is also sometimes called cause and effect analysis.
What is Capability Maturity Model?
The Software Engineering Institute (SEI) Capability Maturity Model (CMM) specifies an increasing series of levels of a
software development organization. The higher the level, the better the software development process, hence reaching each
level is an expensive and time-consuming process
1. Level One :Initial - The software process is characterized as inconsistent, and occasionally even chaotic. Defined processes and standard
practices that exist are abandoned during a crisis. Success of the organization majorly depends on an individual effort, talent, and
heroics. The heroes eventually move on to other organizations taking their wealth of knowledge or lessons learnt with them.
2. Level Two: Repeatable - This level of Software Development Organization has a basic and consistent project management processes to
track cost, schedule, and functionality. The process is in place to repeat the earlier successes on projects with similar applications.
Program management is a key characteristic of a level two organization.
3. Level Three: Defined - The software process for both management and engineering activities are documented, standardized, and
integrated into a standard software process for the entire organization and all projects across the organization use an approved, tailored
version of the organization's standard software process for developing,testing and maintaining the application.
4. Level Four: Managed - Management can effectively control the software development effort using precise measurements. At this level,
organization set a quantitative quality goal for both software process and software maintenance. At this maturity level, the performance
of processes is controlled using statistical and other quantitative techniques, and is quantitatively predictable.
5. Level Five: Optimizing - The Key characteristic of this level is focusing on continually improving process performance through both
incremental and innovative technological improvements. At this level, changes to the process are to improve the process performance
and at the same time maintaining statistical probability to achieve the established quantitative process-improvement objectives.
Personal Software Process (PSP)
The SEI CMM which is reference model for raising the maturity levels of software and predicts the most expected outcome from the next
project undertaken by the organizations does not tell software developers about how to analyze, design, code, test and document the software
products, but expects that the developers use effectual practices. The Personal Software Process realized that the process of individual use is
completely different from that required by the team.
Personal Software Process (PSP) is the skeleton or the structure that assist the engineers in finding a way to measure and improve the way of
working to a great extend. It helps them in developing their respective skills at a personal level and the way of doing planning, estimations
against the plans.
Objectives of PSP :
The aim of PSP is to give software engineers with the regulated methods for the betterment of personal software development processes.
The PSP helps software engineers to:
1. Improve their approximating and planning skills.
2. Make promises that can be fulfilled.
3. Manage the standards of their projects.
4. Reduce the number of faults and imperfections in their work.
Time measurement:
Personal Software Process recommend that the developers should structure the way to spend the time.The developer must measure and count
the time they spend on different activities during the development.
PSP Planning :
The engineers should plan the project before developing because without planning a high effort may be wasted on unimportant activities which may lead to
a poor and unsatisfactory quality of the result.
Levels of Personal Software Process :
Personal Software Process (PSP) has four levels-
1. PSP 0 –
The first level of Personal Software Process, PSP 0 includes Personal measurement , basic size measures, coding standards.
2. PSP 1 –
This level includes the planning of time and scheduling .
3. PSP 2 –
This level introduces the personal quality management ,design and code reviews.
4. PSP 3 –
The last level of the Personal Software Process is for the Personal process evolution.