Software integration method and device, electronic equipment, storage medium and vehicle

By compiling and testing code at each software level in parallel and integrating with interface configuration files, the inefficiency and quality problems caused by the sequential dependence of software integration steps in the prior art are solved, and an efficient and accurate software integration process is achieved.

CN119166149APending Publication Date: 2024-12-20BEIJING CO WHEELS TECH CO LTD
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
CN202310730417.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-06-19
Publication Date
2024-12-20

AI Technical Summary

Technical Problem

There is a strict order between the steps in the existing software integration method, which leads to a large number of errors reported in the integration and compilation process, which affects efficiency, and frequent manual operations, which can easily cause quality problems.

Method used

Before software integration, each software is compiled and tested in parallel, obtaining the code of the application layer, underlying basic software and adapter software, and integrating it through interface configuration files to realize independent compilation and testing, and generate combined compilation and testing results. Finally, integration and release.

Benefits of technology

It improves the efficiency and quality of software integration, reduces error troubleshooting time, improves the efficiency of compilation and testing, and avoids inefficiency and quality problems caused by manual operations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119166149A_ABST
    Figure CN119166149A_ABST
Patent Text Reader

Abstract

The invention relates to a software integration method and device, electronic equipment, a storage medium and a vehicle, and particularly relates to the technical field of software integration. Comprising the steps of obtaining a first interface table and a first interface configuration file corresponding to application layer software, a second interface table and a second configuration file corresponding to bottom layer basic software, and a third interface configuration file corresponding to adaptation layer software; compiling and testing the application layer software according to the first interface table and the first interface configuration file to obtain a first software code corresponding to the application layer software; compiling and testing the underlying basic software according to the second interface table and the second interface configuration file to obtain a second software code corresponding to the underlying basic software; according to the first interface configuration file and the third interface configuration file, compiling and testing the adaptation layer software to obtain a third software code corresponding to the adaptation layer software; and integrating the first software code, the second software code and the third software code.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the technical field of software integration, and in particular to a software integration method, device, electronic device, storage medium and vehicle. Background Art

[0002] Software integration refers to the technology of recombining existing software components according to software requirements to achieve the purpose requirements at a lower cost. At present, when integrating software, the first step is to integrate the engineering files of the underlying basic software, the interface configuration files of the application layer software, and the interface table scheduling information to obtain the corresponding integrated engineering files; the second step is to design the interface table of the underlying basic software according to the interface information of the application layer software, and generate the configuration files of the interface between the underlying basic software and the application layer software; the third step is to integrate, compile and test the integrated engineering files and configuration files obtained in the above steps with the application layer software code and the underlying basic software code that have been developed and compiled. There is a strict execution order between the various steps of this software integration method, and directly using the software codes obtained from the development of each software for integrated compilation may cause a large number of errors in the integrated compilation link, and it is necessary to return to the previous steps to solve the errors one by one, which affects the efficiency of software integration. Summary of the invention

[0003] In order to solve the above technical problems or at least partially solve the above technical problems, the present disclosure provides a software integration method, device, electronic device, storage medium and vehicle, which can improve the efficiency and quality of software integration.

[0004] In order to achieve the above objectives, the technical solutions provided by the embodiments of the present disclosure are as follows:

[0005] In a first aspect, the present disclosure provides a software integration method, comprising:

[0006] Obtain a first interface table and a first interface configuration file corresponding to the application layer software, a second interface table and a second configuration file corresponding to the underlying basic software, and a third interface configuration file corresponding to the adaptation layer software;

[0007] Compile and test the application layer software according to the first interface table and the first interface configuration file to obtain a first software code corresponding to the application layer software;

[0008] Compile and test the underlying basic software according to the second interface table and the second interface configuration file to obtain a second software code corresponding to the underlying basic software;

[0009] Compiling and testing the adaptation layer software according to the first interface configuration file and the third interface configuration file to obtain a third software code corresponding to the adaptation layer software;

[0010] The first software code, the second software code, and the third software code are integrated.

[0011] As an optional implementation of the embodiment of the present disclosure, after obtaining the first interface table and the first interface configuration file corresponding to the application layer software, the second interface table and the second configuration file corresponding to the underlying basic software, and the third interface configuration file corresponding to the adaptation layer software, and according to the first interface table and the first interface configuration file, compiling and testing the application layer software, and before obtaining the first software code corresponding to the application layer software, the method further includes:

[0012] Obtaining a software tag to be developed, where the software tag to be developed is any one of a first software tag corresponding to the application layer software, a second software tag corresponding to the underlying basic software, and a third software tag corresponding to the adaptation layer software;

[0013] When the tag of the software to be developed successfully matches the latest interface branch, obtain the latest interface code;

[0014] Compiling and testing the adaptation layer software according to the first interface configuration file and the third interface configuration file to obtain a third software code corresponding to the adaptation layer software includes:

[0015] In the case that the latest interface code corresponds to the adaptation layer software, the adaptation layer software is compiled and tested according to the first interface configuration file and the third interface configuration file to obtain the third software code corresponding to the adaptation layer software.

[0016] As an optional implementation of the embodiment of the present disclosure, the third software code includes a combined compilation result and a combined test result;

[0017] Compiling and testing the adaptation layer software according to the first interface configuration file and the third interface configuration file to obtain a third software code corresponding to the adaptation layer software includes:

[0018] Independently compiling the first interface configuration file and the third interface configuration file to obtain integrated module compilation code; and independently testing the first interface configuration file and the third interface configuration file to obtain integrated module test code;

[0019] Obtain the underlying engineering files obtained after compiling and testing the underlying basic software;

[0020] Generate a formal interface kernel code according to the first interface configuration file, the second interface configuration file and the underlying engineering file;

[0021] Combination compilation is performed according to the formal interface kernel code and the integrated module compilation code to obtain a combination compilation result; and combination testing is performed according to the formal interface kernel code and the integrated module test code to obtain a combination test result.

[0022] As an optional implementation of the embodiment of the present disclosure, independently compiling according to the first interface configuration file and the third interface configuration file to obtain the integrated module compilation code; and independently testing according to the first interface configuration file and the third interface configuration file to obtain the integrated module test code, including:

[0023] Generate a pending interface kernel code according to the first interface configuration file and the third interface configuration file;

[0024] The kernel code of the interface to be determined is compiled to obtain the compiled code of the integrated module; and the kernel code of the interface to be determined is tested to obtain the tested code of the integrated module.

[0025] As an optional implementation of the embodiment of the present disclosure, the first software code, the second software code and the third software code are integrated, including:

[0026] Integrating the first software code, the combined compilation result, and the second software code to perform an external release test to obtain an external release upgrade package; and integrating the first software code, the combined test result, and the second software code to perform an interface test to obtain an interface upgrade package;

[0027] As an optional implementation of the embodiment of the present disclosure, after integrating the first software code, the second software code and the third software code, the method further includes:

[0028] Execute the test process according to the externally released upgrade package, which includes at least one of the following: automated string testing, integration testing, smoke testing, full-function testing, and calibration testing;

[0029] After the test process is completed and the test is successful, the upgrade package is released to the public;

[0030] Among them, automated bidding includes:

[0031] Obtain the files to be calibrated, which include: executable files, calibration description files, and calibration source files;

[0032] Call the automated string labeling script to perform string labeling test on the file to be calibrated.

[0033] As an optional implementation of the embodiment of the present disclosure, the method further includes:

[0034] If the compilation is successful, the library files and code version information of the first software code, the second software code and the third software code are generated;

[0035] Upload the library files to the artifact library and upload the code version information to the version management library.

[0036] In a second aspect, the present disclosure provides a software integration device, including:

[0037] An acquisition module, used to acquire a first interface table and a first interface configuration file corresponding to the application layer software, a second interface table and a second configuration file corresponding to the underlying basic software, and a third interface configuration file corresponding to the adaptation layer software;

[0038] A first compiling and testing module, used to compile and test the application layer software according to the first interface table and the first interface configuration file, to obtain a first software code corresponding to the application layer software;

[0039] A second compiling and testing module is used to compile and test the underlying basic software according to the second interface table and the second interface configuration file to obtain a second software code corresponding to the underlying basic software;

[0040] A third compiling and testing module is used to compile and test the adaptation layer software according to the first interface table and the third interface configuration file to obtain a third software code corresponding to the adaptation layer software;

[0041] The integration module is used to integrate the first software code, the second software code and the third software code.

[0042] As an optional implementation of the embodiment of the present disclosure, the first compile and test module compiles and tests the application layer software according to the first interface table and the first interface configuration file, and before obtaining the first software code corresponding to the application layer software, is further used to: obtain a label of the software to be developed, where the label of the software to be developed is any one of the first software label corresponding to the application layer software, the second software label corresponding to the underlying basic software, and the third software label corresponding to the adaptation layer software;

[0043] When the tag of the software to be developed successfully matches the latest interface branch, obtain the latest interface code;

[0044] The third compiling and testing module is specifically used to compile and test the adaptation layer software according to the first interface configuration file and the third interface configuration file to obtain the third software code corresponding to the adaptation layer software when the latest interface code corresponds to the adaptation layer software.

[0045] As an optional implementation of the embodiment of the present disclosure, the third software code includes a combined compilation result and a combined test result;

[0046] As an optional implementation of the embodiment of the present disclosure, the third compile test module is specifically used to: independently compile according to the first interface configuration file and the third interface configuration file to obtain the integrated module compile code; and independently test according to the first interface configuration file and the third interface configuration file to obtain the integrated module test code;

[0047] Obtain the underlying engineering files obtained after compiling and testing the underlying basic software;

[0048] Generate a formal interface kernel code according to the first interface configuration file, the second interface configuration file and the underlying engineering file;

[0049] Combination compilation is performed according to the formal interface kernel code and the integrated module compilation code to obtain a combination compilation result; and combination testing is performed according to the formal interface kernel code and the integrated module test code to obtain a combination test result.

[0050] As an optional implementation of the embodiment of the present disclosure, the third compile test module is specifically used to: generate a pending interface kernel code according to the first interface configuration file and the third interface configuration file;

[0051] The kernel code of the interface to be determined is compiled to obtain the compiled code of the integrated module; and the kernel code of the interface to be determined is tested to obtain the tested code of the integrated module.

[0052] As an optional implementation of the embodiment of the present disclosure, the integration module is specifically used to: integrate the first software code, the combined compilation result, and the second software code to perform external release testing to obtain an external release upgrade package; and integrate the first software code, the combined test result, and the second software code to perform interface testing to obtain an interface upgrade package;

[0053] As an optional implementation of the embodiment of the present disclosure, the integration module is further used to: execute a test process according to the externally released upgrade package, and the test process includes at least one of the following: automated string labeling, integration testing, smoke testing, full-function testing, and calibration testing;

[0054] After the test process is completed and the test is successful, the upgrade package is released to the public;

[0055] Among them, automated bidding includes:

[0056] Obtain the files to be calibrated, which include: executable files, calibration description files, and calibration source files;

[0057] Call the automated string labeling script to perform string labeling test on the file to be calibrated.

[0058] In a third aspect, the present disclosure provides an electronic device comprising: a processor, a memory, and a computer program stored in the memory and executable on the processor, wherein when the computer program is executed by the processor, the software integration method as described in the first aspect or any optional embodiment thereof is implemented.

[0059] In a fourth aspect, the present disclosure provides a computer-readable storage medium, comprising: a computer program is stored on the computer-readable storage medium, and when the computer program is executed by a processor, the software integration method as described in the first aspect or any optional embodiment thereof is implemented.

[0060] In a fifth aspect, the present disclosure provides a vehicle, comprising the software integration device as described in the second aspect or any optional embodiment thereof, or the electronic device as described in the third aspect.

[0061] In a sixth aspect, the present disclosure provides a computer program product, comprising: when the computer program product is run on a computer, the computer implements the software integration method as described in the first aspect or any optional embodiment thereof.

[0062] Compared with the prior art, the technical solution provided by the embodiments of the present disclosure has the following advantages:

[0063] The software integration method provided by the embodiment of the present disclosure first obtains the first interface table corresponding to the application layer software and the second interface table corresponding to the underlying basic software, as well as the first interface configuration file corresponding to the application layer software, the second interface configuration file corresponding to the underlying basic software and the third interface configuration file corresponding to the adaptation layer, and then compiles and tests the application layer software according to the first interface table and the first interface configuration file, compiles and tests the underlying basic software according to the second interface table and the second interface configuration file, and compiles and tests the adaptation layer software according to the first interface table and the third interface configuration file, thereby obtaining the first software code corresponding to the application layer software, the second software code corresponding to the underlying basic software and the third software code corresponding to the adaptation layer software; further, the above software codes are integrated. The present disclosure can compile and test each software in parallel before software integration, with high parallel efficiency, and before the final integration, each software has been tested separately to obtain the correct software code, thereby improving the efficiency and quality of software integration. BRIEF DESCRIPTION OF THE DRAWINGS

[0064] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the present disclosure and, together with the description, serve to explain the principles of the present disclosure.

[0065] In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, for ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative labor.

[0066] Figure 1A flowchart of a software integration method provided by an embodiment of the present disclosure;

[0067] Figure 2 A schematic diagram of software compilation provided for an embodiment of the present disclosure;

[0068] Figure 3 A schematic diagram of compiling and testing application layer software provided in an embodiment of the present disclosure;

[0069] Figure 4 A schematic diagram of compiling and testing the adaptation layer according to an embodiment of the present disclosure;

[0070] Figure 5 A schematic diagram of integration and testing provided for an embodiment of the present disclosure;

[0071] Figure 6 A schematic diagram of the structure of a software integration device is provided for an embodiment of the present disclosure;

[0072] Figure 7 A schematic structural diagram of an electronic device is provided in accordance with an embodiment of the present disclosure. DETAILED DESCRIPTION

[0073] In order to more clearly understand the above-mentioned objectives, features and advantages of the present disclosure, the scheme of the present disclosure will be further described below. It should be noted that the embodiments of the present disclosure and the features in the embodiments can be combined with each other without conflict.

[0074] In the following description, many specific details are set forth to facilitate a full understanding of the present disclosure, but the present disclosure may also be implemented in other ways different from those described herein; it is obvious that the embodiments in the specification are only part of the embodiments of the present disclosure, rather than all of the embodiments.

[0075] At present, in the existing software development process, the functional requirements and communication matrix are first confirmed, usually by the system engineer and the original equipment manufacturer (OEM), and then the underlying basic software (BSW) is developed according to the functional requirements, usually by the underlying embedded software team; the application layer software (ASW) is also required to be developed, which is completed by the application software team. After the development of the underlying basic software and application software is completed, software integration is carried out, and the underlying embedded software engineer usually manually adds a large number of interfaces and associations in the description file of the underlying basic software, which is cumbersome. Finally, the software is tested and released.

[0076] During software integration, the following process is executed: the first step is to integrate the engineering files of the underlying basic software, the interface configuration files of the application layer software, and the interface table scheduling information to obtain the corresponding integrated engineering files; the second step is to design the interface table of the underlying basic software according to the interface information of the application layer software, and generate the configuration files of the interface between the underlying basic software and the application layer software; the third step is to integrate, compile and test the integrated engineering files and configuration files obtained in the above steps with the application layer software code and the underlying basic software code that have been developed and compiled.

[0077] This software integration method has a strict execution order among the various steps, which has low efficiency. It directly uses the software codes obtained from various software development for integration compilation. These software codes have not been tested and debugged, which may cause a large number of errors in the integration compilation process. It is necessary to return to the previous steps to solve the errors one by one, affecting the efficiency of software integration.

[0078] In addition, the existing technology involves a lot of manual operations during the software integration process. For example, in the first step, technicians are required to manually operate the Da Vinci tool to generate integrated engineering files, and the third step of testing also requires manual calibration by technicians, which is inefficient and easily causes quality problems in software integration.

[0079] In order to solve the above problems, the embodiments of the present disclosure provide a software integration method, device, electronic device, storage medium and vehicle, wherein the software integration method first obtains the first interface table and the first interface configuration file corresponding to the application layer software, the second interface table and the second configuration file corresponding to the underlying basic software, and the third interface configuration file corresponding to the adaptation layer software, and then compiles and tests the application layer software according to the first interface table and the first interface configuration file, compiles and tests the underlying basic software according to the second interface table and the second interface configuration file, and compiles and tests the adaptation layer software according to the first interface table and the third interface configuration file, thereby obtaining the first software code corresponding to the application layer software, the second software code corresponding to the underlying basic software, and the third software code corresponding to the adaptation layer software; further, the above software codes are integrated. The present disclosure can compile and test each software in parallel before software integration, with high parallel efficiency, and before the final integration, each software has been tested separately to obtain the correct software code, thereby improving the efficiency and quality of software integration.

[0080] The software integration method provided in the embodiments of the present disclosure may be implemented by a software integration device or an electronic device. The electronic device may include: a server, a personal computer, a laptop computer, a tablet computer, a smart phone, a vehicle terminal, etc. The operating system of the electronic device may include Android, a mobile operating system (iOS) developed by Apple, an operating system (Windows) developed by Microsoft Corporation of the United States, etc., and the embodiments of the present disclosure are not limited to this.

[0081] like Figure 1 As shown, Figure 1 A flowchart of a software integration method provided in an embodiment of the present disclosure is provided. The method includes the following steps S101 to S105:

[0082] S101. Obtain a first interface table and a first interface configuration file corresponding to the application layer software, a second interface table and a second configuration file corresponding to the underlying basic software, and a third interface configuration file corresponding to the adaptation layer software.

[0083] Among them, the first interface table and the first interface configuration file corresponding to the application layer software are designed and constructed by the application software team according to the functional requirements of the application software and the requirements of the vehicle system. The second interface table and the second interface configuration file corresponding to the underlying basic software are designed and constructed by the underlying basic software team according to the functional requirements of the underlying basic software. The third interface configuration file corresponding to the adaptation layer software is designed and constructed by the adaptation layer software team according to the functional requirements of the adaptation layer software.

[0084] It should be noted that the interface configuration files of each software include the software labels of each software, which can be used to distinguish the software. Exemplarily, the first configuration file includes the software label corresponding to the application layer software.

[0085] In some embodiments, after executing step S101 and before executing the following steps S102 to S105, a tag (TAG) of the software to be developed is obtained. The tag of the software to be developed can be a software tag corresponding to the application layer software, a software tag corresponding to the underlying basic software, or a software tag corresponding to the adaptation layer software. After obtaining the tag of the software to be developed, the continuous integration tool (Jenkins) is automatically triggered to compile or manually compile. Specifically, the tag of the software to be developed is used to match the latest interface branch. In the case where the tag of the software to be developed fails to match the latest interface branch, it indicates that the compilation has failed and the process ends; in the case where the tag of the software to be developed successfully matches the latest interface branch, the latest interface code is obtained, and it is determined whether the latest interface code corresponds to the adaptation layer software based on the latest interface code.

[0086] Among them, in the process of obtaining the latest interface code, it is determined whether the latest interface code is successfully obtained. If so, it is further calculated based on the latest interface code whether the latest interface code corresponds to the adaptation layer software; if not, the relevant technical personnel are notified that the latest interface code acquisition failed so that the technical personnel can solve the problem.

[0087] In the case where the latest interface code corresponds to the adaptation layer software, step S104 is executed to compile and test the adaptation layer software according to the first interface configuration file and the third interface configuration file to obtain the third software code corresponding to the adaptation layer software. Specifically, the adaptation layer software is compiled into an interface test (Debug) version and an external release (Release) version. The detailed implementation method will be introduced in the subsequent step S104, and the disclosure will not be repeated here.

[0088] If the latest interface code does not correspond to the adaptation layer software, and it is determined that the latest interface code corresponds to the application layer software, execute step S102 to compile the application layer software for external release; or, if the latest interface code does not correspond to the adaptation layer software but corresponds to the underlying basic software, execute step S103 to compile the underlying basic software for external release.

[0089] For example, Figure 2 As shown, Figure 2 A schematic diagram of software compilation provided by an embodiment of the present disclosure, Figure 2 The first interface table and the first interface configuration file of the application layer software, the second interface table and the second interface configuration file of the underlying basic software, and the third interface configuration file of the adaptation layer software are shown in the figure, and the compilation and testing process of each software is executed in parallel. Among them, for the application layer software, the compilation of the external release version is executed; for the underlying basic software, the compilation of the external release version is executed; for the adaptation layer software, the compilation of the external release version and the compilation of the interface test version are executed.

[0090] In the above embodiment, the software tags in the software interface configuration file trigger the independent compilation process, match the latest interface branch, obtain the latest interface code, and then determine whether to execute only the compilation of the external release version or the compilation of the external release version and the compilation of the interface test version according to the latest interface code. In this way, each software can be compiled independently and in a targeted manner.

[0091] It should be noted that the following steps S102 to S104 are relatively independent, and there is no sequence between the steps, and they can be executed in parallel.

[0092] S102: Compile and test the application layer software according to the first interface table and the first interface configuration file to obtain a first software code corresponding to the application layer software.

[0093] Among them, the application layer software can be divided into: vehicle control software (Vehicular Control Unit, VCU), body electronic software (Body Control Module, BCM), air conditioning control software (Air Conditioning Controller, ACC), other software, etc. Among them, other software includes but is not limited to: thermal management software, Bluetooth control software.

[0094] In some embodiments, application layer software with different functions are compiled and tested separately. It is understandable that the compilation and testing of vehicle control software, the compilation and testing of body electronic software, the compilation and testing of air conditioning control software, and the compilation and testing of other software can be performed in parallel. The application layer software with different functions are independent of each other during the compilation and testing process and do not affect each other, so that the parallel compilation and testing of the application layer software is realized, which improves the work efficiency of compilation and testing.

[0095] Correspondingly, the first software code obtained after parallel compilation and testing includes: software code of vehicle control software, software code of body electronic software, software code of air conditioning control software and software code of other software.

[0096] For example, Figure 3 As shown, Figure 3 A schematic diagram of compiling and testing application layer software provided in an embodiment of the present disclosure shows that the application layer software can be divided into vehicle control software, body electronic software, air conditioning control software, thermal management software, Bluetooth control software, etc. according to function. Each software is compiled and tested independently to obtain the first software code corresponding to the application layer software.

[0097] In some embodiments, the application layer software is compiled into an externally released version and tested according to the first interface table and the first interface configuration file, thereby obtaining the first software code corresponding to the application layer software.

[0098] S103: Compile and test the underlying basic software according to the second interface table and the second interface configuration file to obtain a second software code corresponding to the underlying basic software.

[0099] In some embodiments, the Da Vinci tool is used to compile and test the externally released version of the underlying basic software according to the second interface table and the second interface configuration file to obtain the second software code corresponding to the underlying basic software and the underlying engineering file. The underlying engineering file is the Da Vinci version engineering well known to those skilled in the art.

[0100] S104. Compile and test the adaptation layer software according to the first interface configuration file and the third interface configuration file to obtain a third software code corresponding to the adaptation layer software.

[0101] The third software code includes a combined compilation result and a combined test result.

[0102] In some embodiments, first, independent compilation is performed according to the first interface configuration file and the third interface configuration file to obtain the integrated module compilation code, and independent testing is performed according to the first interface configuration file and the third interface configuration file to obtain the integrated module test code. Then, the underlying engineering file obtained after executing S103 is obtained, and the formal interface kernel code is generated according to the underlying engineering file, the first interface configuration file and the second interface configuration file. Further, a combination compilation is performed according to the formal interface kernel code and the integrated module compilation code to obtain a combined compilation result, and a combination compilation is performed according to the formal interface kernel code and the integrated module test code to obtain a combined compilation result.

[0103] In some embodiments, in the process of independently compiling according to the first interface configuration file and the third interface configuration file to obtain the integrated module compiled code, and independently testing according to the first interface configuration file and the third interface configuration file to obtain the integrated module test code, first, the pending interface kernel (RTE / OS) code is generated according to the first interface configuration file and the third interface configuration file, and then the pending interface kernel code is compiled to obtain the integrated module compiled code, and finally, the pending interface kernel code is tested to obtain the integrated module test code.

[0104] In some embodiments, Figure 4 As shown, Figure 4 This is a schematic diagram of compiling and testing the adaptation layer according to the embodiment of the present disclosure, which shows that the pending interface code is first generated according to the first interface configuration file and the third interface configuration file, and then the pending interface code is compiled according to the external release version to obtain the integrated module compiled code, and the pending interface code is compiled and tested according to the interface test version to obtain the integrated module test code. At the same time, the formal interface kernel code has been generated according to the underlying engineering files, the first interface configuration file and the second interface configuration file; further, the formal interface kernel code and the integrated module compiled code are combined and compiled to obtain the combined compilation result, and the formal interface kernel code and the integrated module test code are combined and compiled to obtain the combined test result.

[0105] In the above steps S102 to S104, if the compilation is successful, the library file and code version information are generated, and then the library file is uploaded to the product library, and the code version information is uploaded to the version management library. A notification can also be generated to remind the relevant technical personnel that the compilation is successful. After the library file and code version information are uploaded, they can be stored and maintained by the server and can be directly used in subsequent releases, reducing the time spent on software releases.

[0106] Exemplarily, after executing step S102, if it is determined that the compilation of the application layer software is successful, a library file and code version information of the first software code corresponding to the application layer software are generated, and then the library file of the first software code is uploaded to the product library, and the code version information of the first software code is uploaded to the version management library.

[0107] The above steps S102 to S104 are to compile and test each software relatively independently. The relatively independent compilation can be carried out in parallel, which improves the efficiency of software integration. In addition, the relatively independent testing allows the problems of the software itself to be exposed before integration, so as to facilitate debugging and solving them as soon as possible, avoid the complexity of errors and problems in subsequent integration, and improve the efficiency and quality of software integration.

[0108] S105: Integrate the first software code, the second software code, and the third software code.

[0109] The integrated software is an upgrade package (Firmware Over-The-Air, FOTA) that is tested and successfully tested after integrating the first software code, the second software code and the third software code.

[0110] In some embodiments, the combined compilation results of the first software code, the second software code, and the third software code are integrated to perform an external release test (Release) to obtain an external release upgrade package, and the combined test results of the first software code, the second software code, and the third software code are integrated to perform an interface test (Debug) to obtain an interface upgrade package. Then, a test process is executed for the external release upgrade package, and an adaptation layer interface test is executed for the interface upgrade package.

[0111] In some embodiments, after the external release test, the first executable file (Hex file) and the first calibration description file (A21 file) of the external release version can also be obtained. After the interface test, the second executable file and the second calibration description file of the interface test version can also be obtained.

[0112] Optionally, the test process includes at least one of the following: automated cross-labeling, integration testing, smoke testing (High Level Test, HLT), full-function testing and calibration testing. Among them, automated cross-labeling includes: obtaining the file to be calibrated, which includes the first executable file of the externally released version, the first calibration description file and the calibration source file (DCM file); then calling the automated cross-labeling script to perform a cross-labeling test on the file to be calibrated.

[0113] In some embodiments, the test process specifically includes the following steps S1 to S8:

[0114] S1. Build tasks.

[0115] Optionally, the input parameters are obtained to construct an automated string labeling task (JOB). The input parameters include: the number of calibration source files (CAL_TAGS), the version information of the microprocessor, and the microprocessor is a microcontroller processor that supports the development of the automotive open system architecture (Autosar).

[0116] S2. Count the number N of calibration source files.

[0117] S3. Obtain the calibration description file of the microprocessor according to the version information of the microprocessor, and publish the upgrade package and calibration source file to the outside.

[0118] S4. Determine the file to be calibrated.

[0119] The files to be calibrated include a first executable file of an externally released version, a first calibration description file, and a number N of calibration source files.

[0120] S5. Place the file to be calibrated in the preset path and call the automated string labeling script to perform string labeling test.

[0121] S6. Check whether the string label test is successful.

[0122] If yes, then execute step S7 to make a calibrated external release upgrade package. You can also generate an S19 file, rename the S19 file, make a calibrated USB flash drive package, and then upload the calibrated external release upgrade package to the product library (Protal) for other teams to review.

[0123] If not, execute step S8.

[0124] S8. Determine whether the number of automated string labeling is less than or equal to the number of calibration source files.

[0125] If so, return to step S5 until the number of automated cross-labeling is greater than the number of calibrated source files, determine that the task is completed, and feedback the cross-labeling test results.

[0126] If not, it is determined that the task is completed and the test result of the cross-labeling is fed back. The test result of the cross-labeling is the detection result of step S6.

[0127] The above embodiment does not require manual string labeling by technical personnel. Through the automated string labeling method, the test process is standardized and the work efficiency and work quality of software integration are improved.

[0128] After the test process is completed and the test is successful, the upgrade package is released to the outside world to complete the software release.

[0129] For example, Figure 5 As shown, Figure 5 The schematic diagram of integration and testing provided for the embodiment of the present disclosure shows that the combined compilation results of the first software code, the second software code, and the third software code are integrated to perform an external release (Release) test to obtain an external release upgrade package, and the combined test results of the first software code, the second software code, and the third software code are integrated to perform an interface test (Debug) to obtain an interface upgrade package. Then, the adaptation layer interface test is performed on the interface upgrade package; the automated stringing test, integration test, smoke test, full-function test, and calibration test are performed on the external release upgrade package. After the above tests are completed and the tests are successful, the external release upgrade package is released to achieve software release.

[0130] In summary, the software integration method provided in the embodiment of the present disclosure first obtains the first interface table and the first interface configuration file corresponding to the application layer software, the second interface table and the second configuration file corresponding to the underlying basic software, and the third interface configuration file corresponding to the adaptation layer software, and then compiles and tests the application layer software according to the first interface table and the first interface configuration file, compiles and tests the underlying basic software according to the second interface table and the second interface configuration file, and compiles and tests the adaptation layer software according to the first interface table and the third interface configuration file, thereby obtaining the first software code corresponding to the application layer software, the second software code corresponding to the underlying basic software, and the third software code corresponding to the adaptation layer software; further, the above software codes are integrated. The present disclosure can compile and test each software in parallel before software integration, with high parallel efficiency, and before the final test, each software has been tested separately to obtain the correct software code, thereby avoiding a large number of errors in the final test, and improving the efficiency and quality of software integration.

[0131] like Figure 6 As shown, Figure 6 A schematic diagram of the structure of a software integration device is provided for an embodiment of the present disclosure, and the device includes:

[0132] The acquisition module 601 is used to acquire the first interface table and the first interface configuration file corresponding to the application layer software, the second interface table and the second configuration file corresponding to the underlying basic software, and the third interface configuration file corresponding to the adaptation layer software;

[0133] A first compiling and testing module 602 is used to compile and test the application layer software according to the first interface table and the first interface configuration file to obtain a first software code corresponding to the application layer software;

[0134] The second compiling and testing module 603 is used to compile and test the underlying basic software according to the second interface table and the second interface configuration file to obtain the second software code corresponding to the underlying basic software;

[0135] The third compiling and testing module 604 is used to compile and test the adaptation layer software according to the first interface table and the third interface configuration file to obtain a third software code corresponding to the adaptation layer software;

[0136] The integration module 605 is used to integrate the first software code, the second software code and the third software code.

[0137] As an optional implementation of the embodiment of the present disclosure, the first compile test module 602 compiles and tests the application layer software according to the first interface table and the first interface configuration file, and before obtaining the first software code corresponding to the application layer software, is further used to: obtain a software label to be developed, where the software label to be developed is any one of the first software label corresponding to the application layer software, the second software label corresponding to the underlying basic software, and the third software label corresponding to the adaptation layer software;

[0138] When the tag of the software to be developed successfully matches the latest interface branch, obtain the latest interface code;

[0139] The third compiling and testing module 604 is specifically used to compile and test the adaptation layer software according to the first interface configuration file and the third interface configuration file to obtain the third software code corresponding to the adaptation layer software when the latest interface code corresponds to the adaptation layer software.

[0140] As an optional implementation of the embodiment of the present disclosure, the third software code includes a combined compilation result and a combined test result;

[0141] As an optional implementation of the embodiment of the present disclosure, the third compile test module 604 is specifically used to: independently compile according to the first interface configuration file and the third interface configuration file to obtain the integrated module compiled code; and independently test according to the first interface configuration file and the third interface configuration file to obtain the integrated module test code;

[0142] Obtain the underlying engineering files obtained after compiling and testing the underlying basic software;

[0143] Generate a formal interface kernel code according to the first interface configuration file, the second interface configuration file and the underlying engineering file;

[0144] Combination compilation is performed based on the formal interface kernel code and the integration module 605 compilation code to obtain a combination compilation result; and combination testing is performed based on the formal interface kernel code and the integration module 605 test code to obtain a combination test result.

[0145] As an optional implementation of the embodiment of the present disclosure, the third compile test module 604 is specifically used to: generate a pending interface kernel code according to the first interface configuration file and the third interface configuration file;

[0146] The kernel code of the interface to be determined is compiled to obtain the compiled code of the integrated module; and the kernel code of the interface to be determined is tested to obtain the tested code of the integrated module.

[0147] As an optional implementation of the embodiment of the present disclosure, the integration module 605 is specifically used to: integrate the first software code, the combined compilation result and the second software code for external release testing to obtain an external release upgrade package; and integrate the first software code, the combined test result and the second software code for interface testing to obtain an interface upgrade package.

[0148] As an optional implementation of the embodiment of the present disclosure, the integration module 605 is further used to: execute a test process according to the externally released upgrade package, and the test process includes at least one of the following: automated string labeling, integration testing, smoke testing, full-function testing, and calibration testing;

[0149] After the test process is completed and the test is successful, the upgrade package is released to the public;

[0150] Among them, automated bidding includes:

[0151] Obtain the files to be calibrated, which include: executable files, calibration description files, and calibration source files;

[0152] Call the automated string labeling script to perform string labeling test on the file to be calibrated.

[0153] like Figure 7 As shown, Figure 7The present disclosure provides a schematic diagram of the structure of an electronic device, which includes: a processor, a memory, and a computer program stored in the memory and executable on the processor, wherein the computer program implements each process of the software integration method in the above method embodiment when executed by the processor. The same technical effect can be achieved, and it will not be described here to avoid repetition.

[0154] An embodiment of the present disclosure provides a computer-readable storage medium on which a computer program is stored. When the computer program is executed by a processor, the various processes of the software integration method in the above method embodiment are implemented, and the same technical effect can be achieved. To avoid repetition, it will not be described here.

[0155] The computer readable storage medium may be a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk, etc.

[0156] The embodiment of the present disclosure provides a vehicle, which includes the above-mentioned software integration device, or an electronic device, so as to implement each process of the software integration method in the above-mentioned method embodiment and can achieve the same technical effect. To avoid repetition, it will not be repeated here.

[0157] The embodiments of the present disclosure provide a computer program product, which stores a computer program. When the computer program is executed by a processor, the various processes of the software integration method in the above method embodiment are implemented, and the same technical effect can be achieved. To avoid repetition, it will not be described here.

[0158] Those skilled in the art will appreciate that the embodiments of the present disclosure may be provided as methods, systems, or computer program products. Therefore, the present disclosure may take the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware. Furthermore, the present disclosure may take the form of a computer program product implemented on one or more computer-usable storage media containing computer-usable program code.

[0159] In the present disclosure, the processor may be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), field-programmable gate arrays (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. A general-purpose processor may be a microprocessor or the processor may also be any conventional processor, etc.

[0160] In the present disclosure, memory may include non-permanent memory in a computer-readable medium, random access memory (RAM) and / or non-volatile memory in the form of read-only memory (ROM) or flash RAM. Memory is an example of a computer-readable medium.

[0161] In the present disclosure, computer-readable media include permanent and non-permanent, removable and non-removable storage media. Storage media can be implemented by any method or technology to store information, and the information can be computer-readable instructions, data structures, modules of programs or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, read-only compact disk read-only memory (CD-ROM), digital versatile disk (DVD) or other optical storage, magnetic cassettes, disk storage or other magnetic storage devices or any other non-transmission media that can be used to store information that can be accessed by a computing device. According to the definition in this article, computer-readable media does not include temporary computer-readable media (transitory media), such as modulated data signals and carrier waves.

[0162] It should be noted that, in this article, relational terms such as "first" and "second" are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Moreover, the terms "include", "comprise" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, the elements defined by the sentence "comprise a ..." do not exclude the existence of other identical elements in the process, method, article or device including the elements.

[0163] The above are only specific embodiments of the present disclosure, so that those skilled in the art can understand or implement the present disclosure. Various modifications to these embodiments will be apparent to those skilled in the art, and the general principles defined herein can be implemented in other embodiments without departing from the spirit or scope of the present disclosure. Therefore, the present disclosure will not be limited to these embodiments herein, but will conform to the widest scope consistent with the principles and novel features disclosed herein.

Claims

1. A software integration method, characterized in that: include: Obtain a first interface table and a first interface configuration file corresponding to the application layer software, a second interface table and a second configuration file corresponding to the underlying basic software, and a third interface configuration file corresponding to the adaptation layer software; Compile and test the application layer software according to the first interface table and the first interface configuration file to obtain a first software code corresponding to the application layer software; Compile and test the underlying basic software according to the second interface table and the second interface configuration file to obtain a second software code corresponding to the underlying basic software; Compiling and testing the adaptation layer software according to the first interface configuration file and the third interface configuration file to obtain a third software code corresponding to the adaptation layer software; The first software code, the second software code and the third software code are integrated.

2. The method according to claim 1, characterized in that After obtaining the first interface table and the first interface configuration file corresponding to the application layer software, the second interface table and the second configuration file corresponding to the underlying basic software, and the third interface configuration file corresponding to the adaptation layer software, and before compiling and testing the application layer software according to the first interface table and the first interface configuration file to obtain the first software code corresponding to the application layer software, the method further includes: Obtaining a software label to be developed, wherein the software label to be developed is any one of a first software label corresponding to the application layer software, a second software label corresponding to the underlying basic software, and a third software label corresponding to the adaptation layer software; When the tag of the software to be developed successfully matches the latest interface branch, obtaining the latest interface code; The step of compiling and testing the adaptation layer software according to the first interface configuration file and the third interface configuration file to obtain a third software code corresponding to the adaptation layer software includes: In the case where the latest interface code corresponds to the adaptation layer software, the adaptation layer software is compiled and tested according to the first interface configuration file and the third interface configuration file to obtain the third software code corresponding to the adaptation layer software.

3. The method according to claim 1, characterized in that The third software code includes a combined compilation result and a combined test result; The step of compiling and testing the adaptation layer software according to the first interface configuration file and the third interface configuration file to obtain a third software code corresponding to the adaptation layer software includes: Independently compiling the first interface configuration file and the third interface configuration file to obtain integrated module compiled code; and independently testing the first interface configuration file and the third interface configuration file to obtain integrated module test code; Obtaining the underlying engineering files obtained after compiling and testing the underlying basic software; Generate a formal interface kernel code according to the first interface configuration file, the second interface configuration file and the underlying engineering file; Combining and compiling the formal interface kernel code and the integrated module compiled code to obtain the combined compilation result; and combining and testing the formal interface kernel code and the integrated module test code to obtain the combined test result.

4. The method according to claim 3, characterized in that The integrated module compiled code is obtained by independently compiling according to the first interface configuration file and the third interface configuration file; And, performing independent testing according to the first interface configuration file and the third interface configuration file to obtain an integrated module test code, including: Generate a pending interface kernel code according to the first interface configuration file and the third interface configuration file; The pending interface kernel code is compiled to obtain the integrated module compiled code; and the pending interface kernel code is tested to obtain the integrated module test code.

5. The method according to claim 3, characterized in that: The integrating the first software code, the second software code and the third software code comprises: Integrate the first software code, the combined compilation result and the second software code for external release testing to obtain an external release upgrade package; and integrate the first software code, the combined test result and the second software code for interface testing to obtain an interface upgrade package.

6. The method according to claim 5, characterized in that After integrating the first software code, the second software code and the third software code, the method further includes: Execute a test process according to the externally released upgrade package, wherein the test process includes at least one of the following: automated cross-labeling, integration testing, smoke testing, full-function testing, and calibration testing; After the test process is completed and the test is successful, the external release upgrade package is released; Wherein, the automatic string labeling includes: Obtaining the files to be calibrated, wherein the files to be calibrated include: executable files, calibration description files, and calibration source files; Call the automated string labeling script to perform string labeling test on the file to be calibrated.

7. The method according to claim 1, characterized in that The method further comprises: If the compilation is successful, generating library files and code version information of the first software code, the second software code and the third software code; The library file is uploaded to the product library, and the code version information is uploaded to the version management library.

8. A software integration device, characterized in that: include: An acquisition module, used to acquire a first interface table and a first interface configuration file corresponding to the application layer software, a second interface table and a second configuration file corresponding to the underlying basic software, and a third interface configuration file corresponding to the adaptation layer software; A first compiling and testing module, configured to compile and test the application layer software according to the first interface table and the first interface configuration file, to obtain a first software code corresponding to the application layer software; A second compiling and testing module is used to compile and test the underlying basic software according to the second interface table and the second interface configuration file to obtain a second software code corresponding to the underlying basic software; A third compiling and testing module, configured to compile and test the adaptation layer software according to the first interface table and the third interface configuration file, to obtain a third software code corresponding to the adaptation layer software; An integration module is used to integrate the first software code, the second software code and the third software code.

9. An electronic device, characterized in that: include: A processor, a memory, and a computer program stored in the memory and executable on the processor, wherein the computer program implements the software integration method according to any one of claims 1 to 7 when executed by the processor.

10. A computer-readable storage medium, characterized in that: include: The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the software integration method according to any one of claims 1 to 7 is implemented.

11. A vehicle, characterized in that: include: The software integration device as claimed in claim 8, or the electronic device as claimed in claim 9.

Citation Information

Cited By

  • Software calling information test method, electronic equipment and vehicle

    CN119829465A