Justification, validation, quality assurance of software.
It is possible to identify three different critical aspects (or phase) in the use of computer programs: during each and every phase the user must employ careful precautions if dangerous errors are to be avoided in the results of the simulation.
The first aspect concerns the justification of all the engineering processes connected with numerical simulation and its relevance to physical reality.
In this phase, therefore, it must be established that the basic theory (the equations) which represents the real physical model, the mathematical formulation of that theory, its implementation in the computer codes to solve the aforesaid equations, let alone the various decisions of the user, all supply a reasonable approximation to the true behaviour of the structure.
The second aspect regards validation of the software chosen for a particular application.
In this phase it must be shown that, limited to the software in use, the computer codes give the correct answer to numerical problems intended to be solved.
The third aspect is strongly connected with the procedure of quality assurance regarding both the justification and validation phase.
In this phase, by means of some activity, procedure and documentation regarding any step of a particular application must guarantee the complete repeatability of the same application. In such a manner the process can be checked, for identification of errors, without any ambiguity also on successive occasions. It is obvious that the quality assurance cannot alone guarantee correct results, but forces the user to pay attention to every step and to prevent short cuts or implicit assumptions which, by their nature, can lead to errors.