Abstract :
Control [3] systems for modern rolling stock, have progressively utilised computer systems to take advantage of their flexibility and a reduction in production costs when compared to implementing the same functions in hardware. Increasingly, many of these systems are performing functions which are safety-related and, therefore, failures which create intolerable hazards cannot be allowed. Such defects must be prevented and current safety legislation requires that evidence be presented to show that this has happened and that any risks from failure are tolerable. As the complexity of these systems increases and the difficulty in testing them becomes ever more complicated, there is a difficulty in demonstrating their integrity and making an argument for safety. Indeed, the paradox is that the more we rely on computers and the software they contain, the more difficult it becomes to avoid software failures completely. To gain sufficient assurance of the integrity of the software, requires the application of engineering techniques and the adoption of rigorous strategies for verification and validation. However, software has characteristics that set it apart from other engineered products and, in this paper, the methods and techniques that can be used for design and testing to provide high levels of confidence will be explored.