Software Reliability Assignment Help | Software Reliability Homework Help

Software Reliability

To understand what we mean by reliability, availability, and maintainability, consider an automobile. We think of a car as being reliable if functions properly most of the time. We realize that some functions may stop working and that parts that wear out will need to be fixed a reliable care to operate for long periods of time before requiring any maintenance periods.

Reliability involves behavior over a period of time, but availability describes something at a given point in time. A car is available if you can use it when you need it. The car may be 20 years old and has required maintenance only twice, so we can call the car highly reliable. But if it happens to be in the repair shop when you need it, it is still not available. Thus, something can be highly reliable, but not available at a particular point in time.

Suppose your car is both reliable and available, but it was manufactured by a company that is no longer in business. This situation means that when your car fails (which admittedly, is infrequently), the maintainer has great difficulty finding replacement parts. Thus, your car is in the repair shop for a very long time before it is fixed properly and returned to you. In this case, your car has low maintainability.



Software quality factors

The same concepts apply to software systems. We want our software to functions consistently and correctly over long periods of time, to be available when we need it, and to be repaired quickly and easily if it does fail. We say formally that software reliability is the probability that a system will operate without failure under given conditions for a given time interval. We express reliability on a scale form 0 to 1: A system that is highly reliable will have a reliability measure close to 1, and an unreliable system will have a measure close to 0. Reliability is measured over execution time, not real time (i.e., not clock time), so that it more accurately reflects system usage.

Similarly, software availability is the probability that a system is operating successfully according to specification at a given point in time. More formally, it is the probability that a system is ‘functioning completely at a given instant in time, assuming that the required external resources are also available. A system that is completely up and running has availability 1; one that is unusable ahs availability 0. Availability is measured at points of clock time, not execution time.

Likewise, software maintainability is the probability that, (or a given condition of use) a maintenance activity can be carried out within a stated time interval and using stated procedures and resources. It, too, ranges form 0 to1. It is very different form hardware maintenance; hardware usually requires that system to be unavailable as maintenance is being carried out, but software maintenance can sometimes be done while the system is still up and running.

Because reliability, availability, and maintainability are defined in terms of failures. They must be measured once the system is complete and working. Software engineers usually distinguish known failures from new ones; that is, in determining reliability, we count only new failures, not the ones we known about but have not yet fixed.

For more help in Software Reliability click the button below to submit your homework assignment