The Formal Methods Model
The formal methods model encompasses a group of activities that lead to mathematical specification of computer software. Formal methods will enable a software engineer to develop, specify, and verify a computer based system through applying a rigorous, mathematical notation. A variation on this approach is called clean room software engineering and it is presently applied through some software development organizations.
When formal methods are used during development they give a mechanism for eliminating several of the problems that are hard to overcome using other software engineering paradigms and ambiguity in completeness and inconsistency which can be discovered and corrected more simply not by ad hoc review but through the application of mathematical analysis. When formal methods are be used during the design phase they serve as a basis for program verification and thus enable the software engineer to discover and correct errors that might otherwise go undetected.
It is not yet a mainstream approach the formal methods model offers the promise of defect the free software. The concern about its applicability in a business environment has been voiced.
1. The development of formal models is presently quire time expensive and consuming.
2. To apply formal methods few software developers have the necessary background, extensive training is required.
3. It is hard to use the models as a communication mechanism for technically unsophisticated customers.
This concept concern not withstanding it is likely that the formal methods approach will be gain adherents among software developers that must built safety critical software and among developers that would suffer severe economic hardship should software errors occur.