The basic idea of any software development model is that each step of the design process has outputs called "deliverables.
"[1] If the deliverables are tested for correctness and fixed, then normal human mistakes can not easily grow into dangerous or expensive problems.
Most manufacturers[2] follow the waterfall model to coordinate the design product,[3] but almost all explicitly permit earlier work to be revised.
Also under development or in production are unmanned vehicles: missiles and drones which can take off, cruise and land without airborne pilot intervention.
Unfortunately reliable software is not necessarily easy to use or intuitive, poor user interface design has been a contributing cause of many aerospace accidents and deaths.
[citation needed] Due to safety requirements, most nations regulate avionics, or at least adopt standards in use by a group of allies or a customs union.
In the European Union the IEC describes "recommended" requirements for safety-critical systems, which are usually adopted without change by governments.
To assure safety and reliability, national regulatory authorities (e.g. the FAA, CAA, or DOD) require software development standards.
Deviations from a specific project to the processes described here can occur due to usage of alternative methods or low safety level requirements.
The videotape is usually retained, but the prototype retired immediately after testing, because otherwise senior management and customers can believe the system is complete.
A low-safety product such as an in-flight entertainment unit (a flying TV) may escape with a schematic and procedures for installation and adjustment.
A navigation system, autopilot or engine may have thousands of pages of procedures, inspections and rigging instructions.
The normal commercial method of providing this assurance is to form and fund a small foundation or trust.
It forces detailed review of the program logic, and detects most coding, compiler and some design errors.
It is very convenient for the integrators to have a way to run small selected pieces of code, perhaps from a simple menu system.
Some program managers try to arrange this integration process so that after some minimal level of function is achieved, the system becomes deliverable at any following date, with increasing numbers of features as time passes.
When the software passes all of its tests (or enough to be sold safely), these are bound into a certification report, that can literally have thousands of pages.