Two techniques are used to analyse a computer based system from a safety perspective. The first identifies those user requirements which encapsulate the safety-related nature of the system. These requirements are tracked through analysis, design and coding, resulting in the identification of safety-related components throughout the project lifecycle. The second technique seeks to examine the effect of failures of system components as they emerge from the design activity. The results produced from both activities are compared and combined. Design changes are made to eliminate “weak points”, and the degree to which components can affect safety is constantly monitored. Safety-related components are handled with greater care and subjected to more intense development and testing rigour than non safety-related components.