You are on page 1of 14

UNIT-5

Software Reliability:

• A system is said to be reliable if it works correctly at all times without failures.

• IEEE defines: “Software reliability is the probability of failure-free operation of software


over a given time interval and under given conditions.”

• Reliability of software depends on the presence or absence of defects in the system.

• As the system consists of hardware and software, its reliability depends on the reliability
of the hardware and the reliability of software.

Hardware reliability Vs. software reliability:


Defect intensity

Useful
Infant Wear out
life
mortali
ty Time
(a) Hardware reliability
Defect intensity

Release Need to
reengineer
Maintenance

Test Operational life Obsolete


&
debug Time
(b) Software reliability

Reliability Metrics:

• Probability of Failure on Demand (POFOD):


– POFOD measures the likelihood of system failure in a service request. It is
measured for systems where there is a long gap between service requests. Service
requests occur in an infrequent way.

• ROCOF (Rate of Occurrence of Failure):

– It is used to measure the frequency occurrence of unexpected failures. It is


measured by running a system over a specified time duration.

• Mean Time to Failure (MTTF):

– 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.

• Mean Time to Repair (MTTR):

– 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.

• Mean Time between Failures (MTBF):

– MTBF is measured by combining MTTR and MTTF. That is,

MTBF = MTTR + MTTF

• System availability:

– It is the likelihood that the system will be available for use over a given time
duration.

– System availability measurement excludes MTTR and MTTF. The measurement


of availability is important for systems like server machines, telecommunication
systems, etc.

Reliability Approaches:

• Fault Avoidance

– It is the ability to overcome an undesirable outcome in a specified circumstance.

• 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.

Software Quality Concept:

• The quality of a software product is defined in terms of its characteristics or attributes.

• The values of attributes vary from product to product.

• 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 aim of software development organizations is to produce a high-quality product.

• The external quality of a product does not always ensure the internal quality.

• It is analogous to the quality of a building.

• 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.

• The process of development can affect the product quality.

• A standard process provides a systematic approach to development and leads to a high-


quality product.

• Quality of software can be defined in terms of following points.

• satisfies customer requirements

• possesses higher values of its characteristics

• has sound internal design along with external design

• is developed within the budget and cost

• follows the development standards

Software quality factors:

 Correctness: A program is correct if it performs according to the specifications of


functions it should provide.

 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.

 Maintainability is the ease to locate and correct errors. Maintainability of a software is


measured through mean time to change.

 Flexibility is the cost required to modify an operational program.

 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.

Quality control Vs. quality assurance:


Quality Management System (QMS):

• 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.

Evolution of Quality Systems:

• Earlier quality assurance approaches were focused on product assurance.

• 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.

• It is concerned with technical aspects of quality as well as the involvement of people in


quality, such as customers, company employees, and suppliers.

• Its focus is identifying root causes of quality problems and correcting them at the source
so that better quality products can be produced.

• Also, it advocates continual improvement in process measurements.

• The American Society for Quality Control (ASQC) defines TQM as follows: "TQM is a
management approach to long-term success through customer satisfaction.

The ISO Quality Standard:

• International Organization for Standardization (ISO) is a nonprofit and worldwide


federation of national standards bodies from several countries.

• 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.

 Customer focus: As organizations depend on their customers, they should


understand current and future customers.

 Leadership: Leadership establishes unity of purpose and direction of the


organization. Organizations should create and maintain an internal environment in
which people can become fully involved in achieving the organization's
objectives.
 Involvement of people: People at all levels are the assets of an organization and
their full involvement enables their abilities to be used for the organization's
benefits.

 Process approach: The desired result is achieved more efficiently when activities
and related resources are managed as a process.

• System approach to management: Identifying, understanding, and managing interrelated


processes as a system contributes to the organization's effectiveness and efficiency in
achieving its objectives.

• Continual improvement: Continual improvement of the organization's overall


performance should be a permanent objective of the organization.

• Factual approach to decision making: Effective decisions are based on the analysis of
data and information.

• Mutually beneficial supplier relationships: An organization and its suppliers are


interdependent and a mutually beneficial relationship enhances the ability of both to
create value.

ISO 9000 Certification Process:

• 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

– Document review and adequacy audit

– Compliance audit

– Registration

– Continued surveillance

Advantages and Disadvantage of ISO 9000

• 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.

• Sometimes, changes in the operation of an organization are very expensive. The


designated people have to provide training for ISO 9000.

• 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.

• It is not cheap to become an ISO 9000 certified company.

The Capability Maturity Model (CMM):

• 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.

• It was established by Software Engineering Institute (SEI) in 1986 at Carnegie Mellon


University (CMU) at California, U.S.A, under the direction of the U.S. Department of
Defense.

• 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:

Computer-Aided Software Engineering (CASE):


• Computer-aided software engineering (CASE) is a tools support for software
development, management, and maintenance activities.

• 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:

Advantages of CASE Tools:

• 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.

• They are highly useful in software maintenance tasks.


• Requirement and configuration management with the CASE tools is more effective.
Systematic management of requirements and change requests improves communication
among team members and speeds up the development process.

• Also, they increase the productivity of the software development process.

• The CASE tools save manual documentation of huge documents. Automated tools help to
generate documents of software products.

• Modeling tools are helpful in designing the prototypes of software.

You might also like