ISBN : 978-81-963532-2-3 (E-Book) is clear that the quantity by which the overall reliability of a programimproves due to the correction of a single error depends on how frequently the correspondinginstructionisexecuted. Thus,reliability of a productdependsnotonly on the number of latenterrorsbutalsoon theexact location of the errors. Apart from this, reliability also depends upon how the product isused, i.e. on its execution profile. If it is selected input data to the system such that only the“correctly” implemented functions are executed, none of the errors will be exposed and theperceived reliability of the product will be high. On the other hand, if the input data is selectedsuch that only those functions which contain errors are invoked, the perceived reliability of thesystemwill be verylow. Reasonsforsoftwarereliabilitybeingdifficulttomeasure Thereasonswhysoftwarereliabilityisdifficulttomeasurecanbesummarizedasfollows: Thereliabilityimprovementduetofixingasinglebugdependsonwherethebugislocatedin the code. Theperceived reliabilityof asoftwareproduct ishighlyobserver-dependent. Thereliabilityofaproduct keepschanging as errors aredetected and fixed. Hardwarereliabilityvs. softwarereliabilitydiffers. Reliability behavior for hardware and software are very different. For example, hardware failuresare inherently differentfromsoftware failures.Mosthardware failuresare due tocomponentwear and tear. A logic gate may be stuck at 1 or 0, or a resistor might short circuit. To fixhardware faults, one has to either replace or repair the failed part. On the other hand, a softwareproduct would continue to fail until the error is tracked down and either the design or the code ischanged. For this reason, when a hardware is repaired its reliability is maintained at the level thatexisted before the failure occurred; whereas when a software failure is repaired, the reliabilitymay either increase or decrease (reliability may decrease if a bug introduces new errors). To putthis fact in a different perspective, hardware reliability study is concerned with stability (forexample, inter-failure times remain constant). On the other hand, software reliability study aimsat reliability growth (i.e. inter-failure times increase). The change of failure rate over the productlifetime for a typical hardware and a software product are sketched in fig. 26.1. For hardwareproducts,itcanbeobservedthatfailurerateishighinitiallybutdecreasesasthefaultycomponent s are identified and removed. The system then enters its useful life. After some time(called product life time) the components wear out, and the failure rate increases. This gives theplot of hardware reliability over time its characteristics “bath tub” shape. On the other hand, forsoftwarethefailurerateisatit’shighestduringintegrationandtest.Asthesystemistested,more and more errors are identified and removed resulting in reduced failure rate. This errorremovalcontinuesataslowerpaceduringtheusefullifeoftheproduct.Asthesoftwarebecomesobso 120 Software Engineering Keerthana P, Manasa KN, Ganga D Bengal
126 Publizr Home