Availability indicates when a system is operational as well as how reliable it is during operational periods. Availability of the module is the percentage of time when system is operational. Your application has little or no value if its functionality isn’t available to users. Bugs, crashes, and network outages are examples of what might make your application’s functionality unavailable at times.
Availability is one of the capabilities of a system (Non-functional requirements). Availability and capacity can have substantial cost implications to a project. Almost everyone wants 24/7 hours of operation with 99.999% uptime and the ability to process thousands and thousands of transactions.
Availability of a hardware/software module can be obtained by using various metrics like
- mean-time-between-failures (MTBF) – the average amount of time elapsed between failures to deliver the functionality. MTBF for software can be determined by simply multiplying the defect rate with KLOCs executed per second.
- failure rate – the frequency that the product fails to deliver the functionality. Failure rate is the reciprocal of MTBF, and often is expressed in terms of failures per hour.
- uptime – percentage of the time that the functionality is available.
- downtime – percentage of the time that the functionality is not available.
- mean-time-between-system-abort (MTBSA) – the average amount of time elapsed between complete “reboots” of the system.
- mean-time-between-critical-failure (MTBCF) – distinguishes between critical and noncritical failures.
- maintenance free operating period (MFOP) – the average amount of time that the functionality is available without any special intervention or system maintenance.
- mean-time-to-repair (MTTR) – the average amount of time it takes to repair the system after its functionality becomes unavailable. For hardware products, it usually refers to the time to replace a module or part. For software products, it can refer to the amount of time it takes to reboot or restart the system.
Availability of a hardware/software module can be obtained by the formula given below.
Availability is typically specified in nines notation. For example 3-nines availability corresponds to 99.9% availability. 5-nines availability corresponds to 99.999% availability.
Downtime per year is a more intuitive way of understanding the availability. The table below compares the availability and the corresponding downtime.