Formal software design methods significantly improve the quality of software designs and products. They introduce new levels of defect prevention with a rigorous design process for decomposing product requirements, systematically verifying the correctness of each decomposition and maintaining requirements integrity throughout the process. The process has been effectively applied to software of significant size and complexity and has the potential for software development without the traditional debugging step. Methodology for software design is important since the majority of software defects (40%–60%) are introduced during the design step and the cost of their removal can be 100 times more expensive than defects introduced at later steps in the development process. The formal methods result in significantly fewer total defects than is currently realized (in the 0–20 defect range) and in their earlier detection and removal (90% prior to code execution).