Software Engineering Course Work 2 Software Reliability CONTENTS 1. Introduction 2. Reliability Defined 3. Reliability metrics or measurements 3.1. POFOD "" Probability of failure on demand 3.2. ROCOF "" Rate of failure occurrence 3.3. MTTF "" Mean time to failure 3.4. Availability 4. How to minimise the chance of failure? 4.1. Programming for Reliability 4.1.1. Program code 4.1.2. Program language features 4.1.3. Fault Tolerance 4.1.4. Fault Recovery 5. Summary 6. Bibliography 1. Introduction As computer applications are becoming increasingly complex and diverse they appear in almost every area of life. It is increasingly apparent that the most important dynamic characteristic of software is its reliability. The term reliability can also be linked to the term dependability. For the purpose of this report I will concentrate on reliability.
2. Reliability Defined Informally, the reliability of a software system is a measure of how well it provides the services expected of it by its users.
However the formal definition of reliability is much harder to define. Software reliability metrics such as "ÃÂprobability of failure on demand' may be used but they do not take into account the subjective nature of software failures.
Users in general do not consider all services to be of the same importance and a system maybe viewed as unreliable by one user and not by another. For example, say a system was used to control the gears on a car but failed to work under a single set of extremely rare circumstances. If the car crashed because of these failure conditions occurred, drivers of other cars would regard the software as unreliable.
On the other hand, say a different comparable software system provided some visual indication of its actions to the driver. Assume this failed once every 4 weeks in a predictable way without the main system function...