Professional Documents
Culture Documents
Software Reliability:
• As the system consists of hardware and software, its reliability depends on the reliability
of the hardware and the reliability of software.
Useful
Infant Wear out
life
mortali
ty Time
(a) Hardware reliability
Defect intensity
Release Need to
reengineer
Maintenance
Reliability Metrics:
– MTTF is the average time interval between the consecutive failures observed over
a large number of failures. It considers only the run time of the system.
– MTTR is the average time taken to repair defects in a system. Time is considered
for detecting and fixing defects over a specified time interval.
• System availability:
– It is the likelihood that the system will be available for use over a given time
duration.
Reliability Approaches:
• Fault Avoidance
• Fault Detection
A fault detection mechanism is helpful to detect and isolate faults as early as possible.
• Fault Tolerance
– Fault tolerance is the extent to which a system will continue to operate at a
defined performance even though there exist some malfunctioning units or
components.
• A product can be of good quality or bad quality. Weaker values of attributes define a bad-
quality product whereas higher values of attributes define a good-quality product.
• The external quality of a product does not always ensure the internal quality.
• A good quality product aims to satisfy the customer requirements, developed under the
guidelines of software quality standards.
• Cost and schedule also play important roles in defining the quality of software.
Reliability is the extent to which a program performs its intended functions satisfactorily
with required precision without failure in a specified duration.
Usability is the extent of effort required to learn, operate, and use a product.
Integrity is the extent of effort to control illegal access to data and program by
unauthorized people.
Efficiency is the volume of computing resourses (e.g., processor time, memory space,
bandwidth in communication devices, etc.) and code required to perform software
functions.
Testability is the effort required to test a program to ensure that it performs its intended
function.
Portability is the effort required for transferring software products to various hardware
and software environments.
Reusability is the extent to which software or its parts can be reused in the development
of some other software.
Interoperability is the effort required to couple one system to another. Strong coupling
and loose coupling are the approaches used in interoperability.
• QMS focuses on ensuring that the optimum quality is ensured at each step of
development and maintenance.
• A QMS is a set of procedures/processes which are carried out to ensure that the
product/services delivered by the organization have the desired quality.
• The success of QMS depends on employees’ skills and proper support from the top
management of the organization.
• The quality system includes various things such as quality policy, quality manual,
departmental responsibilities, roles, procedures; standards, procedures, and guidelines;
reports, forms, templates, and checklists; auditing procedures and review of the quality
system.
• In the QMS, each individual has defined roles and responsibilities.
• As quality assurance focuses on corrective approach, the QMS attempts to detect and
correct defects in the early phases of the software life cycle.
• Therefore, the inspection and testing methods are applied at each phase of software
development.
• QMS is auditable, i.e., the development process must be systematically documented and
quality records should be produced at each phase of development.
• Today, the trend of quality assurance has changed; it now concentrates on process
assurance.
• Thus, the paradigm of quality assurance has shifted from inspection to quality control to
software quality assurance. Modern quality assurance approaches attempt to achieve total
quality management (TQM).
• The main focus of the quality inspection process was to identify the defective products
among the produced products.
• Quality control concentrates on finding the causes of defects, along with identifying
defective products.
• Quality assurance is a preventive approach that ensures that if systematic process and
procedures are executed, then they will result in a high-quality product.
• Total quality management (TQM) is an integrated effort designed to improve quality
performance at every level of the organization.
• Its focus is identifying root causes of quality problems and correcting them at the source
so that better quality products can be produced.
• The American Society for Quality Control (ASQC) defines TQM as follows: "TQM is a
management approach to long-term success through customer satisfaction.
• ISO provides state of the art specifications for products, services, and good practices,
helping to make industry more efficient and effective.
• A quality management system provides a framework that is used to monitor and improve
performance, improve customer satisfaction, staff motivation, and continual
improvement.
• ISO 9000 is applicable to various industries other than the software industry.
• ISO has several versions and it has gone through several revisions.
• ISO 9001:2008 is the latest ISO standard which is most widely used by the software
companies.
• It is based on eight quality management principles that senior management applies for
organizational improvement.
Process approach: The desired result is achieved more efficiently when activities
and related resources are managed as a process.
• Factual approach to decision making: Effective decisions are based on the analysis of
data and information.
• Organizations willing to achieve ISO certification go through the following ISO 9000
certification steps and apply to the ISO 9000 registrar.
– Proposal stage
– Pre-assessment stage
– Compliance audit
– Registration
– Continued surveillance
• The ISO 9000 standards improve operating procedure and reduce cost.
• When companies advertise the fact that they are ISO certified, it proves to be a very
powerful marketing tool for them.
• Also, ISO 9000 helps companies to have a competitive advantage, especially in the ever-
changing software market.
• The ISO international standards ensure that products and services are safe, reliable, and
have good quality.
• ISO provides the standard for quality assurance but it does not guarantee the process to
be of high quality.
• There are times when companies feel that the existing set of operational procedures is
already working well and they do not feel a change is necessary.
• The institutionalization of ISO standard might prejudice would-be customers against non-
ISO-compliant service providers who might have something of value or of necessity to
offer.
• The Capability Maturity Model (CMM) is an industry standard model for defining and
measuring the maturity of the development process and for providing strategy for
improving the software processes toward achieving high-quality products.
• The CMM is involved in the process management process to improve the software
process whereas life cycle models are used for the software development process.
• The SEI-CMM is a reference model for appraising the maturity of the software process at
different levels.
• The CMM provides a way to develop and refine an organization's processes.
• A maturity model can be used as a benchmark for assessing different organizations for
equivalent comparison.
• It describes the maturity of the company in the above stated levels based upon the project
the company is dealing with and the clients.
• Within each of these maturity levels, there are defined key process areas (KPAs) which
characterize that level.
• An organization willing to achieve a level has to demonstrate all the KPAs in the
corresponding level of CMM.
SEI-CMM Vs. ISO Standard:
• The use of CASE tools eases and reduces the development, management, and
maintenance effort.
• Automated tools accelerate the development activities. The CASE tools help the
developers, managers, and other key personnel to improve their productivity in the
development team.
CASE Environment:
• These are helpful in automating manual activities. This reduces the effort of development
and human mistakes.
• The use of CASE tools saves development cost of all development phases.
• The CASE tools improve the overall quality of the product due to the fact that tasks are
carried out in an automated manner instead of by human efforts.
• The CASE tools save manual documentation of huge documents. Automated tools help to
generate documents of software products.