4. What is Software Quality
The Software Quality definition is based on the following:
• Customer focus and customer satisfaction
• Functional and performance requirement
• Ease of learning, use and maintainability
• Adherence to development standards
Two Kinds of quality
Quality of design
Quality of conformance
5. Quality Concepts
Concerned with ensuring that the required level of quality is achieved in a
software product.
Three principal concerns
At the organizational level quality management is concerned with establishing
a framework of organizational processes and standards that will lead to high-quality
software.
At the project level quality management involves the application of specific
quality processes and checking that these planned processes have been followed.
At the project level quality management is also concerned with establishing a
quality plan for a project
6. Software review
Software reviews are a filter for the software engineering process.
Reviews are applied at various points during software development and
serve to uncover errors and defects that can then be removed.
Software reviews purify the software engineering activities that we have
called analysis , design and coding.
Different types of reviews
Inspection for defect removal
Reviews for progress assessment
Quality Reviews
7. Software Quality Assurance
Establishment of network of organizational procedures and standards leading
to high-quality software
SQA often called Quality Management __ ensuring that required level of
product quality is achieved.
To ensure quality in a software product, an organization must have 3 way to
approach quality management
1. Organization Wide Policies
2. Project Specific Policies
3. Quality must be controlled
8. SQA Activities
Applying technical methods
Conducting formal technical reviews
Testing Software
Enforcing standards
Controlling change
Measurement
Record keeping and reporting
This is also called SQA Plans
9. SQA
Advantages
Higher reliability will result in greater customer satisfaction
Maintenance costs can be reduced
Overall life cycle cost of software is reduced
Disadvantages
It is difficult to institute in small organizations, where available resources to
perform necessary activities are not available.
It represents cultural change - and change is never easy.
It requires the expenditure of dollars that would not otherwise be explicitly
budgeted to software engineering.
10. Quality Review
The fundamental method of validating the quality of a product or a process
Quality reviews can have different intents:
review for defect removal
review for progress assessment
review for consistency and conformance
A group of people carefully examine part or all of a software system
and its associated documentation.
Code, designs, specifications, test plans, standards, etc. can all be
reviewed
11. Software Reliability
Informally, software is reliable if the user can depend on it. Software
reliability defines reliability in terms of statistical behavior, the probability that
the software will operate as expected over a specified period of time.
Functional reliability: Requirements define system and software functions
that avoid, detect or tolerate faults in the software and so ensure that these
faults do not lead to system failure.
Software reliability: Requirements may also be included to cope with
hardware failure or operator error.
12. Software Reliability
Reliability – The probability of failure-free system operation over a specified
time in a given environment for a given purpose
Availability – The probability that a system, at a point in time, will be
operational and able to deliver the requested services
Informally, reliability is a measure of the users’ perception of how well the
software provides the services they need.
◦ Not an objective measure
◦ Must be based on an operational profile
◦ Must consider that there are widely varying consequences for different
errors
13. Reliability Specification Process
Risk identification – Identify the types of system failure that may lead to
economic losses.
Risk analysis – Estimate the costs and consequences of the different types
of software failure.
Risk decomposition – Identify the root causes of system failure.
Risk reduction – Generate reliability specifications, including quantitative
requirements defining the acceptable levels of failure.
14. Perception Of Reliability
The formal definition of reliability does not always reflect the user’s
perception of a system’s reliability
Software reliability improves when faults which are present in the most
frequently used portions of the software are removed.
The consequences of system failures affects the perception of reliability .
Removing faults with the most serious consequences is the primary objective
of improvement of reliability.
15. Reliability and Specification
Reliability can only be defined formally with respect to a system specification
i.e. a failure is a deviation from a specification.
Furthermore, users don’t read specifications so don’t know how the system is
supposed to behave.
Therefore perceived reliability is more important in practice.
Many specifications are incomplete or incorrect hence, a system that
conforms its specification may ‘fail’ from the perspective of system users.
16. SQA Tasks, Goals, and Metrics
SQA Tasks
Prepares an SQA plan for a project
Participates in the development of the project’s software process
description
Reviews software engineering activities to verify compliance with the
defined software process
Audits designated software work products to verify compliance with
those defined as part of the software process
Records any noncompliance and reports to senior management
17. Goals, Attributes and Metrics
Requirements quality. Correctness, completeness, and consistency
Design quality. Every element of the design model should be assessed
by software
Code quality. Source code and related work products
Quality control effectiveness. A software team should apply limited
resources
18. Statistical SQA
Statistical quality assurance reflects a growing trend throughout industry to
become more quantitative about quality. For software, statistical quality
assurance implies the following steps:
Information about software errors and defects is collected and categorized
An attempt is made to trace each error and defect to its underlying cause
Once the vital few causes have been identified, move to correct the problems
that have caused the errors and defects.