See also: Method
In Data-processing, the formal methods are techniques making it possible to reason rigorously, using Logique mathematics, on computer programs, or electronic materials, in order to show their validity compared to some specification.
These methods make it possible to obtain a very strong insurance of the absence of bug in the Logiciel S, i.e. high Niveaux of evaluation of insurance.
These techniques are based on the semantic S of the programs, i.e. on formal mathematical descriptions of the direction of a program given by its Source code (or sometimes, its Object code).
However, they are generally expensive in resources (human and material) and currently reserved for the software most critical. Their improvement and the widening of their fields of application practices are the motivation many scientific research in data processing.
Everyone knows the equality . How to check that this equality is right?
By traditional checking, it would be necessary to take all the possible values of , to cross them with all the possible values of , and for each couple, to calculate , then , and to make sure that one obtains the same result. Of course, if the fields of and are large, this checking can be very long. And if the fields are infinite (for example realities), this checking is infinite.
By formal checking, one uses only values symbolic systems and one observes known rules. Here, the known rules would be:
While being useful of these rules and on the basis of , one easily manages to find .
the Démonstration of theorems is a technique often little automated which consists in rewriting formulas by using a whole of known rules as well as the induction.
Various mathematical corpora were used to work out formal reasoning on the software. This diversity of approach generated “families” of formal methods. In particular let us quote (“the methods based on…” ):
the Model checking exhaustively analyzes the evolution of the system during its possible executions. For example, to show the absence of errors to the execution, one will be able to test the absence of states of error in the whole of the states accessible from the system. It is then about a form of Test (data-processing) exhaustive, but carried out using astute algorithms making it possible to enumerate the states of the system in an economic form symbolic system. In general, it is not possible to analyze the system directly, but one analyzes rather of it a data-processing model , more or less abstract compared to reality (see also abstract Interprétation). In the recent evolutions of the software model-checking , the analyzer can automatically enrich the model to obtain some less abstract; evidence can be provided afterwards iterations of this process, which can not converge.
the static Analysis by abstract Interpretation , schematically, symbolically calculates a superset of the states accessible from the system.
the automatic proof of theorem tends automatically to show theorems on the logical formulas describing the semantics of the program.
the assistants of proof make it possible the user to show Théorème S on the program, with a help (more or less large) and a checking by the machine.
There exist possible gradations and mixtures between these methods. For example, an assistant of proof could be sufficiently automated automatically to prove the majority of the Lemme S utilities of a proof of programs. A model-checker could be applied to a model built using an automatic prouvor of theorems. A preliminary abstract interpretation will be able to limit the number of cases to be shown in a proof of theorems, etc
The formal methods can apply at different stage of the development process of a system (software, electronic, mixed), specification until the final realization. See the example of the Method B.
The formal methods can be used to give a specification of the system which one wishes to develop, at the desired level of details. A formal specification of the system is based on a formal language whose semantics is well defined (contrary to a specification in natural language which can give place to various interpretations). This formal description of the system can be used as reference during the development. Moreover, it can be used to check (formally) that the final realization of the system (described in a dedicated data-processing language) respects initial waitings (in particular in term of functionality).
The need for the formal methods was felt for a long time. In the report/ratio ALGOL 60, John Backus presented a formal notation to describe the syntax of the computer programming languages (notation called Backus-Naur form, BNF).
Once a specification was developed, it can be used as reference during the development of the concrete system (developed of the algorithms, realization in software and/or electronic circuit). For example:
A specification can be used as bases to prove properties on the system. The specification is generally an abstract representation (with less details) of the system under development: removed from cumbersome details, it is in general simpler to prove properties on the specification than directly on the complete and concrete description of the system.
Certain methods, like the Method B, are based on this principle: the system is modelled on several levels of abstraction, on the basis of most abstract and going to most concrete (this process is called “refinement” since he adds details progressively); methodology ensures that all the properties proven on the abstract models are preserved on the concrete models. This guarantee is brought by a whole of evidence known as “of refinement”.
The formal methods take all their interest when the evidence themselves is guaranteed correct formally. One can distinguish two main categories of tools allowing the proof of property on formal models:
Approach based on events
Algebraic:
Another approach
Cock: assistant of assistance to proof (IE, formalization of evidence and semi-automated demonstration).
Henri Habrias and Marc Frappier Software Specification Methods , ISTE Ltd, 2006, ISBN 1-905209-34-7
Jean-François Monin Understanding Formal Methods , Springer, 2003, ISBN 1-85233-247-6
the international site of the formal methods, to see * The Formal site Methods Europe, to see
| Random links: | Dong Zhuo | Haj Mohamed Benjelloun Touimi | Dick Huemer | Rajčevce | Morpho cypris | Mecque,_la_Californie |