Software May Be Retired As
Software May Be Retired As
• Change in environment
• Change in infrastructure/technology
• Major change in requirement
• Increase in complexity
• Extremely difficult to maintain
• Deterioration in structure of the code
• Slow execution speed
• Poor graphical user interfaces.
What is software reliability
• “Software reliability means operational reliability. Who
cares how many bugs are in the program? We should
be concerned with their effect on its operations” Bev
Littlewood
• As per IEEE
– “software reliability defined as the ability of a system or
component to perform its required functions under stated
conditions for a specified period of time.”
• The most accepted definition
– “It is the probability of a failure free operation of a
program for a specified time in a specified environment”
Failures & Faults
• It is the departure of the external results of program operation
from requirements.
• Failure is something dynamic.
• Program has to be executing for a failure to occur.
• A fault is the defect in the program that, when executed under
particular conditions, causes a failure.
• There can be different set of conditions that causes failures, or
the conditions can be repeated.
• Therefore a fault can be source of more than one failure.
• A fault is a property of the program rather than a property of
its execution or behavior.
• Reliability quantities have usually been defined with respect to time.
• Execution Time – is the time that is actually spent by a processor in
executing the instruction of that program.
• Calendar time - is the familiar time that we normally experience.
• Clock Time – It represents the elapsed time from start to end of program
execution on a running computer. wait time and execution time of other
programs. Period during which the computer is shutdown are not
counted.
• If computer utilization by the program, which the fraction of time the
processor is executing the program, is constant, clock time will be
proportional to execution time.
• There are four general ways of characterizing failure
occurrences in time
– Time of failure
– Time interval between failures
– Cumulative failures experienced upto a given time
– Failures experienced in a time interval.
• All the four quantities are random variables.
• Reason
– Code is very complex and unpredictible
– The relationship between program function requested and code path
executed
Time based failure specification
Failure number Failure time Failure interval
1 8 8
2 18 10
3 25 7
4 36 11
5 45 9
6 57 12
7 71 14
8 86 15
9 104 18
10 124 20
11 143 19
12 169 26
13 197 28
14 222 25
15 250 28
Failure based failure specification
Correctness
Consistency and precision
Reliability Robustness
Simplicity
Tracebility
Accuracy
Clarity and accuracy of documentation
Usability Conformity of operational environment
Completeness
Efficiency
Testability
Attribute Domain Attribute
Modifiability
Adaptability Expandability
Portability
Software quality
• Quality has many characteristics and some related to
each other.
• In software the quality is commonly recognized as “lack
of bugs” in the program.
• If software has too many functional defects then, it is
not meeting its basic requirement of functionality.
• Defect rate – number of defects per million lines of
source code, per function point or any other point.
• Reliability – generally measured as number of failures
per t hours of operation.
Software Quality Attributes
1 Reliability The extent to which a software performs its
intended functions without failure
2 Correctness The extent to which a software meets its
specification.
3 Consistency and The extent to which a software is consistent and give
precision results with precision
4 Robustness The extent to which a software tolerates the
unexpected problems
5 Simplicity The extent to which a software is simple in its
operations
6 Traceability The extent to which an error is traceable in order to
fix it
7 Usability The extent of effort required to learn, operate and
understand the functions of the software
8 Accuracy Meeting specification with precision
9 Clarity and Accuracy of The extent to which documents are clearly and
documentation accurately written
Software Quality Attributes
10 Conformity of The extent to which a software is in conformity of
operational environment operational environment.
11 Completeness The extent to which a software is in conformity of
operational environment.
12 Efficiency The amount of computing resources and code
required by software to perform a function.
13 Testability The effort required to test a software to ensure that
it performs its intended functions.
14 Maintainability The effort required to locate and fix an error during
maintenance phase.
15 Modularity It is the extent of ease to implement, test, debug and
maintain the software.
16 Readability The extent to which a software is readable in order to
understand
17 Adaptability The extent to which a software is adaptable to new
platforms and technology
18 Modifiability The effort required to modify a software during
maintenance phase.
Software Quality Attributes