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.