These must be counterbalanced by cost and performance effects, etc. The areas of system design and maintenance can be improved by the use of formal methods. However, the techniques have not proven easy to apply and there is a substantial feeling on the part of many research funders that the methods are still in their infancy and this nowhere near as close to being useful or economically applied today. Obviously, this implies domain analysis. For example, simulation can validate behavior, but model checking returns a counter-example if a constraint is not satisfied.
Formal methods can reduce testing time.
This approach may show problems in buffer overflows, etc. Problems occur due to the environment and these cannot always be predicted. Need to pay for better security. Formal methods can help by careful delimiting of the system boundary, its behavior, its properties, and its specification. There are model checking , theorem proving, and hybrid approaches today, mostly in areas of protocol analysis.