The software should offer an appropriate user interface. A software system that is too difficult to use is not acceptable. It must be easy to learn how to use software systems, operating them, preparing input data, interpreting results, recovering from usage errors. The software should be reliable. For some applications, such as an aircraft navigation system, the cost of system failure is very much greater than the cost of the system itself.
Unreliable systems can result in information being lost.
Data is expensive and may be worth much more than the computer system on which it processed. Unreliable system can have hidden errors which can violate system and user data without warnings and the results of an error might not be discovered until much later. The software development is the main activity of software production. The notion that software development is an engineering discipline led to the view that the process of software development is akin to the process which has evolved in other engineering disciplines. The purpose of this phase is to provide a description of the problem.