Abstract :
Modern rolling stock depends on a host of computer systems to perform a myriad of complex tasks for operation, control and monitoring. These systems must be dependable not only for reasons of business criticality but also to ensure passenger safety. The high reliability and accuracy requirements for rolling stock systems lead, therefore, to equally high requirements for the integrity of the software contained with them. The development of failure- free software has always been a major goal in any organisation but it is difficult, even with today\´s methods in software engineering, to avoid software failures completely. Testing until the software is totally error-free may be an impossible task for large programs, where checking all the combinations of logic paths and inputs would be required. This paper discusses the nature of software failure, the characteristics of software which make it different to other engineered products and the methods and techniques that can be used for design and testing to provide high levels of confidence in the software. Whilst the focus of this paper is avoidance of failure in software, it should be remembered that software cannot truly be divorced from the system within which it resides. Therefore, the dependability issues surrounding electronic component reliability will also be touched upon. However, for more expansive information on these issues, this paper should be read in conjunction with the paper on "Electronic and Software Design Reliability" by Lenart Sandberg 0 which has been presented in previous years at the IET Traction Systems Professional Development Course.