Software engineering automation

Automatic parallelization of multi-core processor software

The development of information technology has put forward higher requirements for THE processing capacity of CPU. The development of processor from single core to multi-core has realized the parallel computing physically and greatly improved the computing capacity. However, the corresponding software development method is difficult to realize parallel programming because of the limitation of human thinking mode. This software tool can analyze the traditional software code, automatically extract the parallel code, automatically estimate the code execution time, according to the overall optimal performance strategy, gives the multi-core parallel execution scheme. The software tool can also allow users to adjust the parallel execution scheme according to their own needs, while adjusting the overall efficiency changes can be seen in real time, to achieve task execution simulation on each core. This software tool is an auxiliary design tool based on multi-core processor software development, which can greatly improve the development efficiency of multi-core processor software.

Automatic software Bug localization technology

In the fields with very high reliability requirements, such as automotive electronics, rail transit, nuclear power plants, aerospace and other fields, the tolerance rate of software bugs is very low, and the cost of Bug testing and positioning in the development of enterprises is very high. With the expansion of code size and the shortening of release cycle, simple manual testing, error detection and troubleshooting will not meet the needs of development. This tool integrates code editing IDE, dynamic debugging environment, compilation and execution test environment, high efficiency development at the same time, and can automatically find software code logic errors, greatly improving the development efficiency.

In the market, c language oriented static analysis tools tend to solve some code writing specifications, arrays out of bounds, null Pointers and other common problems. By testing the source code and comparing the code output with the expected results, the tool checks each line of code, analyzes the complex interaction between the codes in depth, analyzes with high precision, and finds the real error defect code. Changed the traditional test code, manual analysis of the error of the development mode, greatly saving the time to find the wrong code.

Process management and test validation of large high reliability software

In orbit transportation, aerospace and other fields, the scale of the software is very big, very high reliability requirements, at the same time is often referred to as demanding system (Critical Systems).

In rail transit, aerospace and other fields, the software scale is very large, and the reliability requirements are very high, usually called Critical Systems. According to the requirements of international standard IEC61508 and EN50128, V model is used to manage the software development process. In cooperation with a listed company, the team planned and implemented the whole process planning, development team building, development schedule management and software quality management of the development of a large high reliability software, ensuring that the software was successfully developed and passed the international highest level safety certification of Lloyd's. At the same time, the team was entrusted to conduct a comprehensive test and verification of the function and performance of the software, including detailed test of each module, coverage test based on white box, system integration interface test, system test. It also includes verification and validation of code, requirement documents, design documents, test reports and other contents involved in the certification process.

The problem