Formal methods in software engineering

Source: Internet
Author: User

In a broad sense, formal methods (formal method) are used to solve the problems in the field of software engineering, including the establishment of accurate mathematical models and the analysis activities of models. In the narrow sense, the formal method is to use formal language, formal specification description, model inference and verification method. The main purpose of applying formal method in software engineering practice is to ensure the correctness of software.

Software development is actually the mapping of real-world needs into software modeling processes. There are three system models involved in the modeling process: The real world, the model representation and the computer system. The process of software formalization is described and transformed even among the three types of systems. The tasks in the development process include: Model acquisition, model validation, model transformation.

Software specifications are descriptions of software system objects, how objects are manipulated, and the behavior of objects. Non-formalized specifications can be described in natural languages, graphs, tables, and other forms. Formal proof and verification techniques mainly include model detection and theorem proving. The program refinement is the combination of automatic inference and formal method, and the whole process of the concrete computer-oriented program code is pushed from the abstract formal specification.

Modal (Modal) logic is an extended form of classical propositional logic and first order predicate logic. First order linear temporal logic (FOLTL) is an extension of the first order predicate logic. Similar to PLTL,FOLTL is the addition of modal words to the first-order predicate logic: Inevitable, probable, next-time, until.

Computer logic (CTL) is a discrete, branch time, propositional temporal logic. In the CTL, in addition to having the temporal operator, it is possible that the next moment, until outside, also adds a path quantifier: all future paths (a), at least one path (E). The Computer tree logic specification of the software can be verified by model verification. The model test is to verify the correctness of the software properties given by the ctl* formula under the Kripke structure model of the software system.

Formal methods in software engineering

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.