Software Engineering emphasizes following a process model that separates requirements, design, coding, and testing (and other steps). One common model, the "waterfall" model, clearly separates these steps.
But often the details of what is done, in each step, is ad hoc or informal.
The cleanroom model follows the ideas of manufacturing semiconductors in a "cleanroom" environment.
- Spend a lot of time and money "up-front" preventing defects
- Use statistical methods to ensure quality
- Formally state and "prove" requirement needs