Software safety analysis requires the assessment of the software at every level of its life cycle, reaching from the customer requirements specification via the software specification, one or more levels of design to the actually implemented code. Two tools are described which support the assessment at the beginning and at the end of the life cycle. The front-end tool turns formally specified systems into the dynamical and operational form of a Petri net. This forms the basis for the simulation of system behaviour and the analysis of whether desired/undesired system states can be reached. The back-end tool aids in the assessment of the machine code representation of software. It gives an overview on the macro-structure (control flow graphs) and performs data flow analysed, taking into account the control flow and nested levels of subroutines. It is also helpful for the preparation of tests. Emphasis is laid on the theoretical background of the tools.