The reliability of software is one of the most important software metrics. In the course of time, systems have become more and more complex and that is why software has become more complex, too. It is an undeniable fact that this will lead to an increasing number of software faults. Models of software reliability are used to track down software faults. The aim is to make sure that an improvement in reliability prediction is gained. This paper explains the reasons for software and hardware failures. Furthermore, it describes a procedure to establish an innovative and improved model of prediction for software.