High Availability is a hot topic in embedded systems, particularly in the area of communications, where five nines availability is crucial. Reliability is a key aspect of availability. While there are established methods for determining hardware reliability (such as MTBF calculations), methods for determining software and system reliability are less mature. This paper illustrates how to demonstrate software reliability by using modelling and analysis techniques to estimate reliability, and then running a reliability demonstration test to prove the reliability of the system as a whole. Implications of these techniques on the software development process are also explored.