0% found this document useful (0 votes)
16 views

Lecture 5-Software Quality

The document discusses software quality by defining key terms, identifying quality factors and subfactors, and describing quality tools that can be used in the software development process. It also provides guidance for managers on implementing quality practices in requirements analysis and system design phases.

Uploaded by

Ahmad Algharib
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views

Lecture 5-Software Quality

The document discusses software quality by defining key terms, identifying quality factors and subfactors, and describing quality tools that can be used in the software development process. It also provides guidance for managers on implementing quality practices in requirements analysis and system design phases.

Uploaded by

Ahmad Algharib
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 43

Chapter 9 Software Quality

In: Applied Reliability and Quality Fundamentals,


Methods and Procedures
B.S. Dhillon
Content
1. Introduction
2. Software Quality Terms and Definitions
3. Software Quality Factors and Their Subfactors
4. Useful Quality Tools for Use During the Software Development Process
5. A Manager’s Guide to Total Quality Software Design
6. Software Quality Metrics
7. Software Quality Cost
8. Problems
1. Introduction
• In 1955, the software maintenance accounted for 20%
of the total software cost.
• In 1985, this percentage has increased to 90%.
• The prime objective of a quality assurance is to
• assure that the end software products are of good
quality,
• deliver products through planned and systematic
activities
• determine actions to achieve, maintain, and
determine that quality.
Content
1. Introduction
2. Software Quality Terms and Definitions
3. Software Quality Factors and Their Subfactors
4. Useful Quality Tools for Use During the Software Development Process
5. A Manager’s Guide to Total Quality Software Design
6. Software Quality Metrics
7. Software Quality Cost
8. Problems
2. Software Quality Terms and Definitions
• Software quality: the fitness for use of the software
item/product.
• Software quality control: the independent evaluation
of the capability of the software process to produce a
usable software product/item.
• Software quality assurance: the set of systematic
activities or actions providing evidence of software
process’s capability to produce a software
product/item that is fit to use.
2. Software Quality Terms and Definitions
• Software quality testing: A systematic series of
evaluation actions or activities carried out to validate
that the software fully satisfies performance and
technical requirements.
• Software reliability: the ability of the software to carry
out its specified function under stated conditions for a
given period of time.
• Software maintenance: the process of modifying a
software system or element after delivery, to rectify
faults, enhance performance or other appropriate
attributes, or adapt to a changed environment.
2. Software Quality Terms and Definitions
• Verification and validation: the systematic process of
analyzing, evaluating, and testing system and software
code and documentation for ensuring maximum
possible reliability, quality, and satisfaction of system
needs and goals.
• Software process management: the effective utilization
of available resources both to produce properly
engineered products/items and to enhance the
software engineering capability of the organization.
2. Software Quality Terms and Definitions
• Software process improvement: a planned methodology
following standardized documentation practices for
capturing the approaches, activities, practices, and
transformations that individuals use for developing and
maintaining software and the associated products.
Content
1. Introduction
2. Software Quality Terms and Definitions
3. Software Quality Factors and Their Subfactors
4. Useful Quality Tools for Use During the Software Development Process
5. A Manager’s Guide to Total Quality Software Design
6. Software Quality Metrics
7. Software Quality Cost
8. Problems
3. Software Quality Factors

concerned with requirements that concerned with requirements concerned with the adaptation of software
directly affect the daily operation of that affect all software to other environments as well as its
the software. maintenance activities interaction with other software systems

adaptive maintenance: perfective maintenance: corrective maintenance:


adapting the current software to additional enhancing and improving the correcting software faults and
customers and circumstances without current software with respect to failures
making many changes to the software locally limited issues.
3. Software Quality Factors – Operation Factors
• Correctness: a list of required outputs of the software
system.
• Subfactors are completeness, availability (response time), accuracy,
up-to-dateness, compliance (consistency), and coding and
documentation guidelines.
• Usability: the scope of staff resources required for
training a new employee as well as to operate the
software system.
• Subfactors are operability and training.
• Integrity: the software system security,
authorization
• Subfactors of the integrity are access control and access
audit.
3. Software Quality Factors – Operation Factors
• Reliability: It determines the maximum permitted failure
rate of the software system and can refer to the entire
system or one or more of its separate functions.
• Subfactors are system reliability, hardware failure recovery,
application reliability, and computational failure recovery.
• Efficiency: the hardware resources required for carrying
out the entire functions of the software system, in
conformance to all other requirements.
• Subfactors are efficiency of processing, efficiency of storage,
efficiency of communication, and efficiency of power usage.
3. Software Quality Factors - Revision Factors
• Testability: the testing of an information system as well
as with its specified operation.
• Subfactors are traceability, user testability, and failure
maintenance testability.
• Maintainability: determining the efforts that will be
required by all potential users and maintenance people
for identifying the reasons for the occurrence of
software failures, to rectify the failures, and to verify the
success of the rectifications or corrections.
• Subfactors are modularity, simplicity, compliance
(consistency), document accessibility, coding and
documentation guidelines, and self-descriptiveness.
3. Software Quality Factors - Revision Factors
• Flexibility: the capabilities and efforts needed to
support adaptive maintenance activities.
• Subfactors are simplicity, modularity, generality, and self-
descriptiveness.
3. Software Quality Factors - Transition Factors
• Reusability: the use of software modules, originally
designed for one particular project, in a new software
project being developed.
• Subfactors are simplicity, generality, modularity, document
accessibility, self-descriptiveness, application independence,
and software system independence.
3. Software Quality Factors
• Interoperability: creating interfaces with other software
systems or with other equipment/product firmware.
• Subfactors are modularity, commonality, system
compatibility, and software system independence.
• Portability: adaptation of a software system to other
environments composed of different operating systems,
different hardware, etc.
• Subfactors are modularity, self-descriptive, and software
system independence.
Content
1. Introduction
2. Software Quality Terms and Definitions
3. Software Quality Factors and Their Subfactors
4. Useful Quality Tools for Use During the Software Development Process
5. A Manager’s Guide to Total Quality Software Design
6. Software Quality Metrics
7. Software Quality Cost
8. Problems
4. Useful Quality Tools for Use During the Software
Development Process
• There are many quality tools that can be used, to
improve software quality, during the software
development process.
4. Useful Quality Tools for Use During the Software
Development Process
• Run charts: used for software project management and
serve as real-time statements of quality as well as
workload.
• An example of run charts is tracking the percentage of
software fixes that exceed the fix response time criteria,
in order to ensure timely deliveries of fixes to customers.
4. Useful Quality Tools for Use During the Software
Development Process
• Pareto diagrams: an effective tool to identify focus areas
that cause most of the problems in a software project
under consideration.
• An example: Motorola successfully
used the Pareto diagram to identify
main sources of software
requirement changes that enabled
in-process corrective measures to
be taken.
4. Useful Quality Tools for Use During the Software
Development Process
• Checklists: play a significant role in the software
development process because they are useful to software
developers/programmers to ensure that all tasks are
complete, and for each of these tasks the important
factors or quality characteristics are taken into
consideration.
Content
1. Introduction
2. Software Quality Terms and Definitions
3. Software Quality Factors and Their Subfactors
4. Useful Quality Tools for Use During the Software Development Process
5. A Manager’s Guide to Total Quality Software Design
6. Software Quality Metrics
7. Software Quality Cost
8. Problems
5. A Manager’s Guide to Total Quality Software Design
It is important to take
proper quality-related
measures during the
software development
life cycle (SDLC).
5. A Manager’s Guide to Total Quality Software Design
Stage I: Requirements Analysis
• 60–80% of system development failures are the result of
poor understanding of user requirements.
• Software quality function deployment (SQFD) is a useful
tool for improving the quality of the software
development process by implementing quality
improvement approaches to the SDLC requirements
solicitation phase.
• SQFD are used for establishing better communications
among departments and with customers, quantifying
qualitative customer requirements,
5. A Manager’s Guide to Total Quality Software Design
Stage II: Systems Design
• Concurrent engineering is a widely used design quality method
to change systems design and it is a useful method of
implementing total quality management.
• It is parallel execution of different development tasks in multidisciplinary teams with the aim of
obtaining an optimal product with respect to functionality, quality, and productivity

Stage III: Systems Development


• Software total quality management (TQM) calls for the
integration of quality into the total software development
process.
5. A Manager’s Guide to Total Quality Software Design
Stage IV: Testing
• Testing activities should be properly planned and managed from
the start of software development, in addition to designing them
properly at each stage of the software development life cycle.
• A six-step metric-driven method in TQM can fit with such testing
objectives. Its steps are:
• 1)establishing structured test objectives, 2)select appropriate
functional methods to derive test case suites, 3)run functional tests
and assess the degree of structured coverage achieved, 4)extend
the test suites until the achievement of the desired coverage,
5)calculate the test scores, and 6)validate testing by recording
errors not discovered during testing.
5. A Manager’s Guide to Total Quality Software Design
Stage V: Implementation and Maintenance
• The statistical process-control (SPC) can be used to monitor the
quality of software system maintenance.
• TQM-based system must adapt to the SPC process to assure
maintenance quality;
• SPC analyzes data from a process and this data analysis helps
identify trends, patterns, and variations in the process, allowing
to discover the changes in process performance using statistical
methods.
Content
1. Introduction
2. Software Quality Terms and Definitions
3. Software Quality Factors and Their Subfactors
4. Useful Quality Tools for Use During the Software Development Process
5. A Manager’s Guide to Total Quality Software Design
6. Software Quality Metrics
7. Software Quality Cost
8. Problems
6. Software Quality Metrics
• The main objectives of software quality metrics:
• highlight conditions that need development or
maintenance process improvement in the form of
corrective or preventive measures initiated within the
organization.

• facilitate an appropriate level of management control


including planning and executing of proper
management interventions.
6. Software Quality Metrics
• The software quality metrics criteria to be successfully applicable :
• Comprehensive: applicable to a wide variety of implementations and
situations.
• Reliable: generate similar results when applied under similar
environments.
• Valid: successfully measure the required attribute.
• Relevant: related to an attribute of substantial importance.
• Mutually exclusive : do not measure attributes measured by other
metrics.
• Simple: the metrics data collection is simple and is carried out with
minimal resources
6. Software Quality Metrics - Metric I
• It is one of the error density metrics
It measures the defects relative to the software size expressed as lines
of code or function point
6. Software Quality Metrics - Metric II
• It is one of the error severity metrics
It measures the degree of impact a defect has on the development of
an operation, or a component of a software application being tested.
6. Software Quality Metrics - Metric III
• It is one of the error removal effectiveness metrics
It is used to measure and improve the effectiveness of the software
development process in managing and reducing defects.
6. Software Quality Metrics - Metric IV
• It is one of the software process timetable metrics.
It is based not only on failure occurrences but also on accounts of
success, such as the successful fulfilment of milestones on schedule.
6. Software Quality Metrics - Metric V
• It is one of the software process productivity metrics.
It deals with a project’s human resources productivity and focuses on
the extent of software reuse.
6. Software Quality Metrics - Metric VI
• It is one of the help desk service (HDS).
It is the software support by instructing customers regarding the
method of application of the software and solution for customer
implementation problems
6. Software Quality Metrics - Metric VII
• It is concerned with measuring the success of the help desk service
(HDS).
6. Software Quality Metrics - Metric VIII
• It is concerned with measuring the average severity of the HDS calls.
6. Software Quality Metrics - Metric IX
• It is one of the HDS productivity metrics.
• Productivity metrics relate to the total of resources invested during a
specified period in responding to a HD customer call.
6. Software Quality Metrics - Metric X
• It is concerned with measuring the software corrective maintenance
effectiveness.
• It refers to cases where the maintenance failed to provide a repair
that meets the designated standards or contract requirements.
7. Software Quality Cost
• The cost of controlling failures is associated with activities
performed to detect and prevent software errors.
Prevention costs are associated with
developing a software quality
infrastructure, improving and updating
that infrastructure, and carrying out
the regular activities required for its
operation.
Appraisal costs are concerned with
activities of detection of software
errors in specific software
systems/projects.
7. Software Quality Cost
• The cost of the failure of control is concerned with the cost of
failures that occurred because of failure to detect and prevent
software errors.
Internal failure costs are associated with
correcting errors found through design
reviews, software tests, and acceptance
tests, prior to the installation of the
software at customer sites.
External failure costs are associated
with correcting failures detected by
customers/maintenance teams after
the installation of the software system
at customer sites
Thanks

You might also like