Software reliability: basic concepts and assessment methods

Software reliability is important for many sectors of the software industry. Besides knowing how to achieve it, it is important to know the actual reliability achieved in a specific software product. Assessing the reliability of software-based systems is increasingly necessary: more users bet larger amount of money, the survival of companies and at times the lives and limbs of people on the service they expect from the software. Sound decisionmaking requires some understanding of the uncertainties thus incurred. Meanwhile, software complexity increases and progress in development tools enables more poorlytrained people to build software-based systems. The shortterm economic incentive to use off-the-shelf software, even in sensitive applications, imposes new requirements to evaluate the risk thus assumed. The pressure on vendors to guarantee some level of quality of service will thus also increase, extending from bespoke software to off-the-shelf software and from mission-critical to productivity-critical software.