What Is an Abstract Machine?
The abstract machine symbol is a module in the B method called an abstract machine. This is a concept that is very close to some familiar concepts in programming, such as modules, classes, packages, or abstract data types. Each abstract machine contains some data and provides some operations. The data in the abstract machine cannot be directly accessed, and is always used through the operation of the machine.
- Formal methods are software development methods based on strict mathematics, which can accurately and unambiguously describe the system and have strict proof. Method B is a more practical formal software development method, covering the process from abstract specifications to executable code generation, and has powerful support tools. Method B uses an abstract machine symbol (A \ 1N) to construct the model, and supports type detection and dynamic verification as specified. The support tool of method B can simulate running specifications by using animation and other methods. Checking whether the specifications obtained according to requirements and test scenarios meet the requirements has a significant effect on improving the reliability of the software. [1]
- Taking the UML use case model as the main research object, based on the analysis of the UML use case model concept and the B abstract machine symbol, the abstract syntax of the use case model modeling elements is described, the mapping between the two is established, and the UML use case model diagram is Conversion of Form B Statutes. First, use the semi-formal UML use case model to establish a requirements model for the target system, and then build a B-form specification of the target system according to the given method. Then use the B-method support tool to perform dynamic analysis and model verification of the specification to obtain a reliable form. The statute provides a correct starting point for formal derivation and refinement based on this. Finally, through the example analysis of the elevator control system, the conversion method and process of the UML use case model to the B method formal specification are further detailed, and the obtained formal model is dynamically analyzed and modeled using the B method support tool ProB Detection. [2]
B Abstract Machine Symbol B Method Overview
- Method B is currently attracting increasing attention from industry and academia. The research work was carried out by JR Abrial and the MATRA and GEC Alsthom research groups of the BP Research Center in the early and mid-1980s. The purpose is Hope to provide a solid mathematical foundation for the actual software development process. Method B is based on the research of Z language. While introducing some object-oriented mechanisms and other characteristics, it retains the advantages of Z language, which is based on the familiar and easy to understand mathematical foundation. In the formation of method B, the concepts of program as a mathematical object, pre-post predicates, pre-predicates with the weakest uncertainties, and "Programming from Specification" were absorbed.
- Method B is a broad-spectrum method that contains highly abstract mathematical and executable descriptions. It uses mathematical symbolic representation methods, such as predicate logic, sets, sequences, functions, and other abstract data types. It uses a unified AMN (Abstract Machine Notation) at each stage of software development to describe the system specifications and systems in a precise way Design to make the program and the specification of the program in a unified mathematical framework, support the specification reasoning of the specification (including internal consistency verification and refined verification), and reduce the possibility of semantic errors.
- In the B method, the software system model is composed of one or more interdependent abstract machines, called the B model. The B model is expressed by three types of B components: MACHINE, REFINEMENT, and IMPLEMENTATION. Generally, the B model has a MACHINE component to describe the specifications of the target system, there are multiple refinements to describe the development process of the system, and there is an implementation detail that expresses the final implementation of the system. The implementation is a special refinement that is a system refinement The final stage of transformation can be directly converted into executable code (such as C code) with the help of tools. In order to ensure the consistency of the protocol itself and the refinement process, Method B provides a correctness verification mechanism that automatically generates certification obligations, and two commercial support tools (B-Toolkit and Atelier-B) can automatically prove most of the certification obligations . In essence, the B method deals with the core aspects of the software life cycle, that is, technical specifications. It is designed through a series of refined steps to produce a hierarchical architecture and the generation of executable code. [2]
Refinement of abstract machine symbol
- Elaboration is a technique used to transform an `` abstract model '' (its specification) of a software system into another more specific model representation (that is, the elaboration result). The latter model may be more specific in two ways: first, it may contain more details about the original informal specification; and second, it may be closer to implementation.
- The basic idea of method B to construct a large-scale software system in a layered and modular manner is that the mathematical model of the abstract machine has to be refined several times until the final refined result can be directly executed on a computer. Such a refined result may introduce other abstract machines (other modules) as the basis for the final implementation. For this reason, the final refinement is called realization.
- A refinement can be from MACHINE to a REFINEMENT component, or from a REFINEMENT component to another REFINEMENT component, or from a REFINEMENT component to an IMPLEMENTATION component. The refining process introduces all the properties expressed in the non-formal statute into the statute. At each step of the refining process, the correctness of the refining about its abstraction must be proved, and the initial reconstruction needs to be reconstructed as a whole through generalized substitution. Abstract machine. In the B method, the software development process is a process of gradual refinement of the protocol (abstract machine set) until implementation. [2]