We make the case for greater integration of the individual

methods and documentation used in the software development life-cycle.

We illustrate practical benefits from this approach through the use of examples

drawn from a methodology that has been used to develop successful

safety-critical applications. Integration limits the number of different

specifications that have to be developed and also typically results in improved

traceability from requirements through to code. We also show

that integration may reduce the burden imposed by formal verification.

Integrated software toolsets are a natural consequence. This integration

is exactly what engineers do in other disciplines, and software engineers

should take note of this.