It is the probability that the software will execute fora specified time period without a failure, weighted by the cost to the user of each failure encountered. It relates to the ease of recovery and ability to give consistent results. Reliability is particularly important to the professional user. For example, a pharmacist relies on past files on patients when filling prescriptions. Information accuracy is crucial. Hardware may become inoperative
because of design errors, manufacturing errors, or deterioration caused by heat,
humidity, friction, and the like. In contrast, software does not fail or wear out. Any reliability problems are attributable to errors introduced during the production process. Furthermore, whereas hardware failure is based
largely on random failures, software reliability is based on predestined errors. Although reliable software is a desirable goal, limited progress has been made toward improving it in the last decade. The fact of unreliable software had led to the practice of securing maintenance agreements after the package is in operation. Ina sense, unreliability is rewarded. Software reliability brings
up the concept of modularity, or the ease with which a package can be modified. This depends on whether the package was originally designed as a package or was retrofitted after its original development for single installation use. A package with a high degree of modularity has the capacity to operate in many machine configurations and perhaps across manufacturers product lines. With modularity come expandability, which emphasizes the sensitivity of a software package to handle an increased volume of transaction or to integrate with other programs. The following questions should be considered
1. Is there room
for expanding the master file 2. How easily can additional fields and files be added
3. Are there errors a user can make that will ring down the system
4. How much of the system becomes unusable
when apart of it fails 5. What are the recovery capabilities