Vous êtes sur la page 1sur 3

International Journal of Computer Trends and Technology (IJCTT) volume 4 Issue 7July 2013

ISSN: 2231-2803 http://www.ijcttjournal.org Page 2250



Approaches for Enhancing
Reliability of Software Product
Priyanka
#1
, Trilok Gabba
*2

#1.2
Department of Computer Science & Engineering
BITS, Bhiwani, India

Abstract In modern world, we are highly dependent upon
computer for most of our works. As we know, all computers are
controlled by software. So, to operate a computer in a proper
manner, software reliability is very necessary.
Software Reliability is the probability of failure-free software
operation for a specified period of time in a specified
environment. The high complexity of software is the major
contributing factor of Software reliability problems. Various
approaches can be used to improve the reliability of software,
however, it is hard to balance development time and budget with
software reliability. For good reliability, two approaches have to
be used, namely, reactive and proactive approach.
This paper provides an overview of Software reliability,
hardware reliability, reactive and proactive approaches.

KeywordsSoftware Reliability, Hardware Reliability, Ra-
Reactive Approach, Proactive Approach

I. INTRODUCTION

As we know computers are playing a very big role in our
life. So, it is virtually impossible to conduct many day-to-day
activities without the aid of computer systems which are
controlled by software. As more reliance is placed on these
software systems, it is essential that they should operate in a
reliable manner. So failure in software products can result in a
high monetary, property or human loss.

NASA Software Assurance Standard, NASA-STD-8739.8,
defines software reliability as a discipline of software
assurance that:
1. Defines the requirements for software controlled
system fault/failure detection, isolation, and
recovery.
2. Reviews the software development processes and
products for software error prevention and/or reduced
functionality states.
3. Defines the process for measuring and analysing
defects and defines/derives the reliability and
maintainability factors.
II. RELIABILITY

Software does not break or wear out so the term reliability is
often misunderstood by us in the field of software. Reliability
affects the system reliability. It either works in a given
environment or it does not. There are two types of reliability:

A. Hardware Reliability

Hardware component have three phases in its life
i) Burn in
ii) Useful life
iii) Wear out phase

These phases are shown in its bath tub curve in below fig.
1.1(The curve has a bath-tub like shape so it is known as
bath-tub curve).

Burn-in phase: Due to initially testing in the premises of the
organization failure rate is often quite high initially and it goes
on decreasing gradually with time in hardware reliability in
this phase.

Useful life period: Failure rate is approx constant. So it has a
straight line in bath-tub curve.

Wear out phase: Due to aging of the components failure rate
increases in wear out phase.

The best period is useful life period.


Fig1.1 Bath Tub Curve of Hardware Reliability

International Journal of Computer Trends and Technology (IJCTT) volume 4 Issue 7July 2013

ISSN: 2231-2803 http://www.ijcttjournal.org Page 2251

B. Software Reliability

It differs from hardware reliability as it does not have wear
out phase in its curve .The expected curve for software is
shown below fig1.2.Software may be retired only if it is no
longer in use. Some of the contributing factors are given
below:
1. Environmental change
2. Technological change
3. Lot of changes in requirements
4. Increases in complexity of software
5. More difficulty in maintenance of software
6. Deterioration in structure of the code
7. Slow execution speed of software
8. Poor GUI (Graphical User Interfaces)




Fig1.2 Curve of Software Reliability (Failure Rate versus Time)

Software reliability reflects the design perfection, and
hardware reliability reflects manufacturing perfection. Here, it
differs. The high software complexity is the main problem in
software reliability. Software reliability is not a function of
time No good quantitative methods have been developed to
represent software reliability without excessive limitations.
Software reliability can be improved by using various
approaches, however, many a times it is quite difficult to
balance between development time and budget with software
reliability.
Software reliability is an important attribute of software
quality, together with functionality, usability, performance,
serviceability, capability, maintainability, and documentation.
It is difficult to reach a certain level of reliability when any
software have a high complexity, system developers tend to
push complexity into the software layer, with the rapid growth
of system size and it can be done by upgrading the software.
Some distinct characteristics of software compared to
hardware are listed below:
Table 1. Software VS Hardware
Software Hardware
Software defects are
mainly design defects
Hardware defects are
mainly manufacturing
defects.
Software does not
have a wear-out phase.
Hardware has a wear-out
phase.
Software problems can
be fix by periodic
restarts.
Hardware problems cant
be fix by periodic
restarts.
Software reliability is
not a function of
operational time.
Hardware reliability is a
function of operational
time.
Environmental factors
do not affect Software
reliability.
Environmental factors
affect hardware
reliability.
Software interfaces are
purely conceptual.
Hardware interfaces are
purely visual.
Software reliability
cant be predicted
from any physical
basis.
Hardware reliability can
be predicted from any
physical basis.
There are no standard
components for
software.
There are standard
components for
hardware.

III. APPROACHES FOR SOFTWARE RELIABILITY

Today, there is a period of recession in the software industry.
But slowly it is growing all over the world. Optimization of
the software reliability is the major objective of the software
industry. Combining both the reactive approach and the
proactive approach makes the software quite more reliable.
These two approaches are the great achievement in making
the software reliable.

A, Reactive Approach

Reactive approach uses the checkpoint in software industry.
Checkpoint is used to mask the error and avoids failure.
Software reliability uses the reactive approach for the
considerable gain. The Performance Testing activity is often
uses the reactive approach for performance management. For
most of the cases, the system performance can never be
checked during the early phases of Software Development
Life Cycle phases (SDLC). Performance is often thought of
only as a last activity after the System Testing phase.
Performance of any software depends on system architecture
or system design, many a time it has a very high cost then we
have to think about it. In certain cases because of huge
deviation in the performance constraints we have to put the
system in trash.
International Journal of Computer Trends and Technology (IJCTT) volume 4 Issue 7July 2013

ISSN: 2231-2803 http://www.ijcttjournal.org Page 2252

Dealing with a performance problem at the end is always not a
better approach for software development. During early life
cycle phase approach are known as reactive approach as there
is not much importance is given to the system. It is more a
fix-it-later approach which is not that effective.

B .Proactive Approach

This approach is used during initial phase of life cycle of
software development. For this reason this approach is very
important than reactive approach. It uses the dynamic
medication of the program for avoiding the future failure. It
anticipates the performance problem well in advance and
adopts techniques for mitigating them.

The disadvantages of fix-it-later approach are well
understood & engineering practices are adopted to analyse the
system design in performance angle.

The integration of performance engineering activities with the
SDLC phases is provided in the below Table 2


Table 2 SDLC phases integrated with Performance Engineering

SDLC Phases Performance Engineering
Activities
Planning Check whether Performance
fall under CTO
Requirement
Analysis
Performance Requirement
analysis
Workload Modeling
Architecture &
Design
POC Validation
Performance Modeling
Review
Implementation Code Profiling
Testing Performance Testing
Performance Tuning
Capacity Planning
Release &
Maintenance
Deployment architecture
review

IV. CONCLUSIONS

There are many way to enhance the reliability of software
product. Software reliability can be enhanced by the concept
of combining use of reactive and proactive approach. To deal
with the break point in software we use reactive approach. To
make software more reliable we have to advocate the
combination of check point and rollback with on line software
version change as a practical technology.
These techniques provide us considerable gain in reliability.
This gain increases as the probability of a failure being
transient increases and as the decrease in failure rate obtained
by removing a fault increases.
We believe that the general concept of combining reactive and
proactive approaches can produce rich dividends for
enhancing software dependability.

REFERENCES

[1] Robert Graves, Cost time reliability optimization in product
development, J uly, 2005.
[2] Walter J . Gutjahr, Reliability optimization of Redundant Software with
Correlated Failure,
[3] J effrey Thomas Oplinger, Enhancing Software Reliability with
Speculative Threads, Aug, 2004.
[4]MusaJ .D, A. Lannino, K. Okumoto, Software Reliability Measurement,
Prediction & Application, McGraw Hill Book company NY, PP 183-185,
1987.
[5] J eff Tian, Better Reliability assessment And Prediction through Data
Clustering,
[6] D. R. Prince Williams, Study of the Warranty Cost Model for Software
Reliability with an Imperfect Debugging Phenomenon, Turk J Elec Engines,
Volume.15, Number 3, 2007,
[7] Zeng Wen-hua1, Yiannis Papadopoulos, David Parker, Reliability
Optimization of Series-Parallel Systems Using Asynchronous Heterogeneous
Hierarchical Parallel Genetic Algorithm, volume 1, Number 4, 2007.
[8] Tanvir Khan, Optimization for Software Release and Crash, B.S.,
Louisiana State University Baton Rouge, May, 2007
[9]M.E. Segal and O. Frieder, On-the-fly program modification: system for
dynamic updating IEEE software March,1993.
[10] I. Lee ,DYMOS: A Dynamic Modification System PhD thesis
,University of Wisconsin,1983.
[11] D. Gupta and P. J alote, Online software version change using state
transfer between processes Software-practice and experience, Sept 1993.
[12] O. Frieder and M.E. Segal, On dynamically updating a computer
program: from concept to prototype J . System software, Sept 1991.
[13] R.S. Fabry ,How to design systems in which module can be changed on
the fly In Proc. 2nd Int. Conf Software Engg,1976.
[14] Digital Avionics Systems Conference, 1995., 14th DASC,Page(s):193
198
[15] International J ournal of Reliability, Quality and Safety
Engineering,Volume 12, Issue 03, J une 2005

Vous aimerez peut-être aussi