Software development method and related device
By analyzing the relationship and mapping between the software development model and the application model, the software development files were optimized, which solved the problems of high processor load and memory shortage caused by the decoupled SDK development mode, and improved the system resource utilization and operating efficiency.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- YINWANG INTELLIGENT TECHNOLOGIES CO LTD
- Filing Date
- 2024-11-14
- Publication Date
- 2026-05-21
AI Technical Summary
The decoupled development model of SDK leads to high processor load and scarce memory resources, which affects system resource utilization and operating efficiency.
By analyzing the relationships and mappings between the software development model and the application model, the software development files are optimized to generate optimized files that meet specific functional requirements. This includes deleting or modifying dependent symbols, adjusting memory size and configuration data, and optimizing processor load and memory usage.
It reduces the overhead of the SDK decoupled development model, reduces processor load, saves memory resources, and improves system resource utilization and operating efficiency.
Smart Images

Figure CN2024131949_21052026_PF_FP_ABST
Abstract
Description
Software development methods and related devices Technical Field
[0001] This application relates to the field of computer technology, and in particular to a software development method and related apparatus. Background Technology
[0002] In traditional automotive development, the original equipment manufacturer (OEM) is responsible for the design and production of the entire vehicle and its major systems, defining the overall specifications, functional requirements, and technical standards. Tier 1 suppliers directly provide complete systems or subsystems to the OEM, responsible for developing key electronic control units (ECUs) within these systems. Generally, Tier 1 suppliers collaborate with the OEM to clarify requirements, designing and developing systems and components that meet those requirements to ensure the fulfillment of the OEM's customized needs.
[0003] With the trend of domain centralization and market differentiation competition, the frequent updates of OEM requirements and the need for independent development have driven the emergence of the decoupled delivery model of software development kits (SDKs). The decoupled development model of SDKs can meet the needs of car manufacturers for functional customization, independent integration and multi-model reuse, and improve the system's flexibility, development efficiency and maintainability.
[0004] However, the decoupled development model of SDK brings additional noise overhead, resulting in high processor load and scarce memory resources, which in turn affects the system's resource utilization and operating efficiency.
[0005] Summary of the Invention
[0006] This application provides a software development method and related apparatus that can reduce the background noise overhead caused by the SDK decoupling development mode and improve the system's resource utilization and operating efficiency.
[0007] In a first aspect, embodiments of this application provide a software development method, which can perform steps including but not limited to the following:
[0008] A first software development model, a first application model, and a first file are obtained. Based on a first mapping relationship between the first software development model and the first file, the first application model, the first software development model, and the first file, a second file is obtained. The first file is associated with the first software development model, and the second file is provided to the software corresponding to the first application model.
[0009] This application provides a software development method. The first file and first software development model obtained in this method can be understood as a software development kit (SDK) provided by a software developer. The first application model and the second file obtained in this method can be understood as a software package required by a software user to use the software. The software user can optimize the first file to obtain the second file based on the SSD provided by the software developer and the functional requirements of their own first application model. The second file can then be provided to the software corresponding to the first application model to meet the specific software functional requirements of the software user.
[0010] It is understood that the aforementioned software user may also be referred to as an optimization tool, and the aforementioned software developer may also be referred to as a model development tool. The software development apparatus used to execute the software development method in the embodiments of this application may be the optimization tool, or it may be a complete software development tool composed of the optimization tool and the model development tool. The embodiments of this application do not impose any limitations on this.
[0011] In this context, the first file is associated with the first software development model, meaning that the first file can be obtained based on the first software development model. For example, in software development in the vehicle field, the first software development model can be a software development kit (SDK) model, and the first file can be an SDK file. Specifically, software developers (also known as model development tools) can use the SDK model to generate code files and edit those code files to obtain the SDK file, thus achieving the goal of obtaining the first file (SDK file) based on the first software development model (SDK model). The first mapping relationship between the first software development model and the first file can be understood as the mapping relationship of this process of obtaining the first file from the first software development model.
[0012] Through the embodiments of this application, the correlation between the first application model and the first software development model can be analyzed. Based on the first mapping relationship between the first software development model and the first file, the first file can be optimized to obtain a second file that can meet the specific software functional requirements of the first application model. This second file is then provided to the software corresponding to the first application model. In this way, the first file can be reused for different optimizations (e.g., different precise trimming or modification operations) to meet the different software functional requirements of software users, resulting in different optimized files. This reduces the background noise overhead caused by the SDK decoupled development model, reduces processor load, saves memory resources, and improves system resource utilization and operating efficiency.
[0013] In one possible implementation, the above software development method may also perform the following steps, including but not limited to:
[0014] Obtain the first mapping relationship between the first software development model and the first file.
[0015] In this embodiment, it is also necessary to obtain a first mapping relationship between the first software development model and the first file for subsequent optimization of the first file. Optionally, this first mapping relationship can be generated and obtained by the software development device executing the software development method itself. It is understood that in this case, the software development device is a complete software development tool consisting of an optimization tool and a model development tool. Optionally, the first mapping relationship can also be obtained by the software development device executing the software development method from an external source. It is understood that in this case, the software development device is the aforementioned optimization tool. In this case, the external model development tool generates the first mapping relationship and sends it to the software development device (optimization tool).
[0016] Optionally, when the software development device executing the software development method is the aforementioned optimization tool, and the first mapping relationship is obtained from an external model development tool, it is necessary to ensure that the information or file carrying the first mapping relationship forms a standard specification between the model development tool and the software development device (optimization tool), so that after the software development device (optimization tool) receives the first mapping relationship, it can understand the mapping information represented by the first mapping relationship, and thus it can be used for subsequent optimization of the first file.
[0017] In one possible implementation, the first mapping relationship is obtained based on the second and third mapping relationships.
[0018] The second mapping relationship includes the mapping relationship between the first software development model and the first program file, and the first program file is associated with the first software development model. The third mapping relationship includes the mapping relationship between the first program file and the first file.
[0019] In this embodiment, a possible specific implementation for obtaining the first mapping relationship is provided. Specifically, a first program file can be generated from a first software development model, and a second mapping relationship between the first software development model and the first program file can be obtained. Compiling the first program file yields a first file (which can be a binary file), and a third mapping relationship between the first program file and the first file can be obtained. Furthermore, the first mapping relationship can be obtained from the second and third mapping relationships. Through this embodiment, based on the obtained first mapping relationship, the symbols that need optimization in the first file can be accurately located, improving the accuracy and efficiency of optimizing the first file.
[0020] In one possible implementation, the above software development method may also perform the following steps, including but not limited to:
[0021] Determine the first association between the first application model and the first software development model.
[0022] In this embodiment, it is also necessary to determine the first association relationship between the first application model and the first software development model for subsequent optimization of the first file. By determining the first association relationship between the first application model and the first software development model, and combining it with the first mapping relationship between the first software development model and the first file, the symbols that need optimization in the first file can be accurately located for the specific software functional requirements of the first application model. This ensures that the optimized second file can meet the specific software functional requirements of the first application model, improving the accuracy and efficiency of optimizing the first file.
[0023] In one possible implementation, the determination of the first association between the first application model and the first software development model can be achieved in ways including but not limited to the following:
[0024] Based on the model elements in the first application model and the model elements in the first software development model, determine the dependencies between the model elements in the first application model and the model elements in the first software development model.
[0025] This embodiment provides a possible specific implementation for determining the first association relationship. Specifically, based on the model elements in the first application model and the model elements in the first software development model, the dependency relationship between the model elements in the first application model and the model elements in the first software development model is determined. Through the dependency relationship between the model elements in the first application model and the model elements in the first software development model in this embodiment, the association relationship between the software functional requirements of the first application model and the software functional implementation of the first software development model can be seen. This allows for the matching of appropriate optimization strategies to optimize the first file, ensuring that the optimized second file meets the specific software functional requirements of the first application model, thereby improving the accuracy and efficiency of optimizing the first file.
[0026] In one possible implementation, the above-mentioned determination of the dependency relationship between the model elements in the first application model and the model elements in the first software development model based on the model elements in the first application model and the model elements in the first software development model can be achieved in ways including but not limited to the following:
[0027] Based on the model elements in the first application model, the model elements in the first software development model are traversed to determine the dependency relationship between the model elements in the first application model and the model elements in the first software development model.
[0028] This embodiment provides a possible specific implementation for determining the dependencies between model elements in a first application model and model elements in a first software development model. Specifically, it involves traversing the model elements in the first software development model based on the model elements in the first application model to determine the dependencies between them. By using the traversal method in this embodiment, the dependencies can be determined quickly and accurately, improving software development efficiency.
[0029] In one possible implementation, the second file is obtained based on the first mapping relationship between the first software development model and the first file, the first application model, the first software development model, and the first file. This can be achieved in ways including but not limited to the following:
[0030] Based on the first mapping relationship, the first application model, and the first software development model, a first optimization strategy is generated.
[0031] The first file is optimized based on the first optimization strategy to obtain the second file.
[0032] In this embodiment, a possible specific implementation method for obtaining the second file is provided. Specifically, by analyzing the first correlation between the first application model and the first software development model, the correlation between the software functional requirements of the first application model and the software functional implementation of the first software development model can be seen. Combined with the first mapping relationship between the first software development model and the first file, a first optimization strategy matching the first application model can be generated. Based on the first optimization strategy, the symbols that need to be optimized in the first file can be accurately found, so that the optimized second file can meet the specific software functional requirements of the first application model, thereby improving the accuracy and efficiency of optimizing the first file.
[0033] In one possible implementation, the first optimization strategy described above is used to instruct the deletion of the first symbol in the first file, or to modify the first symbol to 0 or empty.
[0034] The first symbol corresponds to the first model element in the first software development model, and there is no dependency between the first model element and any model element in the first application model.
[0035] In this embodiment, when there is no dependency between a first model element in the first software development model and any model element in the first application model, it means that the symbol corresponding to the first model element in the first file is not used by the first application model. The symbol corresponding to the first model element in the first file can be optimized as a pruning option. At this time, based on the aforementioned first mapping relationship, it can be determined that the first symbol in the first file corresponds to the first model element in the first software development model. The corresponding first optimization strategy matching the first application model is used to indicate the deletion of the first symbol in the first file, or the modification of the first symbol to 0 or an empty string, resulting in an optimized second file. This optimized second file satisfies the software functional requirements of the first application model, reduces the size of the second file, decreases processor load, saves memory resources, and improves system resource utilization and operating efficiency.
[0036] In one possible implementation, the first file is optimized based on the first optimization strategy to obtain the second file, which can be achieved in ways including but not limited to the following:
[0037] Delete the first symbol in the first file, or modify the value of the first symbol in the first file to 0 or empty, to obtain the second file.
[0038] In this embodiment, when there is no dependency between the first model element in the first software development model and any model element in the first application model, the first symbol in the first file is deleted based on the first optimization strategy, or the value of the first symbol in the first file is modified to 0 or empty, resulting in an optimized second file. This can satisfy the software functional requirements of the first application model, reduce the size of the second file, decrease processor load, save memory resources, and improve the system's resource utilization and operating efficiency.
[0039] In one possible implementation, the first optimization strategy described above is also used to instruct the modification of the value of the second symbol in the first file.
[0040] The second symbol corresponds to the second model element in the first software development model, and there is a dependency relationship between the second model element and the third model element in the first application model. The function indicated by the modified second symbol is the same as the function of the third model element.
[0041] In this embodiment, when there is a dependency between a second model element in the first software development model and a third model element in the first application model, it indicates that the symbol corresponding to the second model element in the first file will be used by the first application model. The connection between the two (the third model element in the first application model and the symbol corresponding to the second model element in the first file) can be established during the linking phase. At this time, based on the aforementioned first mapping relationship, it can be determined that the second symbol in the first file corresponds to the second model element in the first software development model. The corresponding first optimization strategy matching the first application model is used to instruct the modification of the value of the second symbol in the first file, so that the function indicated by the modified second symbol is the same as the function of the third model element. The resulting optimized second file satisfies the software functional requirements of the first application model and allows the connection between the two to be established during the linking phase. Compared to completing the connection during the runtime phase, this embodiment can also reduce the system initialization time.
[0042] In one possible implementation, the first file is optimized based on the first optimization strategy to obtain the second file, which can be achieved in ways including but not limited to the following:
[0043] Modify the value of the second symbol in the first file to obtain the second file.
[0044] In this embodiment, when there is a dependency between the second model element in the first software development model and the third model element in the first application model, the value of the second symbol in the first file is modified based on the first optimization strategy so that the function indicated by the modified second symbol is the same as the function of the third model element. At this time, the optimized second file is obtained, which can not only meet the software function requirements of the first application model, but also complete the establishment of the connection between the two parties in the linking stage. Compared with completing the connection between the two parties in the running stage, the embodiment of this application can also reduce the system initialization time.
[0045] In one possible implementation, the first optimization strategy described above is also used to instruct the modification of the memory size of the third symbol in the first file.
[0046] The third symbol corresponds to the fourth model element in the first software development model. The fourth model element has a dependency relationship with the fifth model element in the first application model, and the memory size corresponding to the fourth model element is smaller than the memory size corresponding to the fifth model element.
[0047] In this embodiment, when there is a dependency between the fourth model element in the first software development model and the fifth model element in the first application model, it indicates that the symbol corresponding to the fourth model element in the first file will be used by the first application model. If the memory size corresponding to the fourth model element is less than the memory size corresponding to the fifth model element, the memory size corresponding to the fourth model element can be statically expanded. At this time, based on the above first mapping relationship, it can be seen that the third symbol in the first file corresponds to the fourth model element in the first software development model. The first optimization strategy correspondingly matching the first application model is used to indicate the modification of the memory size of the third symbol in the first file, so that the modified memory size of the third symbol is not less than the memory size corresponding to the fifth model element. At this time, the optimized second file is obtained, which can not only meet the software functional requirements of the first application model, but also support the memory size expansion required by the software functional requirements of the first application model, avoiding the reservation of too much memory resources in the optimized second file, thereby saving memory resources and improving the resource utilization and operating efficiency of the system.
[0048] In one possible implementation, the first file is optimized based on the first optimization strategy to obtain the second file, which can be achieved in ways including but not limited to the following:
[0049] Modify the memory size of the third symbol in the first file to obtain the second file.
[0050] In this embodiment, when there is a dependency between the fourth model element in the first software development model and the fifth model element in the first application model, if the memory size corresponding to the fourth model element is less than the memory size corresponding to the fifth model element, the memory size of the third symbol in the first file can be modified based on the first optimization strategy so that the memory size of the modified third symbol is not less than the memory size corresponding to the fifth model element. At this time, the optimized second file is obtained, which can not only meet the software functional requirements of the first application model, but also support the memory size required for the expansion of the software functional requirements of the first application model. This avoids reserving too much memory resources in the optimized second file, thereby saving memory resources and improving the resource utilization and operating efficiency of the system.
[0051] In one possible implementation, the first optimization strategy described above is also used to instruct the deletion of the first configuration data corresponding to the fourth symbol in the first file.
[0052] The fourth symbol corresponds to the sixth model element in the first software development model. The sixth model element has a dependency relationship with the seventh model element in the first application model. The configuration data corresponding to the sixth model element includes the first configuration data, while the configuration data corresponding to the seventh model element does not include the first configuration data.
[0053] In this embodiment, when there is a dependency between the sixth model element in the first software development model and the seventh model element in the first application model, it means that the symbol corresponding to the sixth model element in the first file will be used by the first application model. If the configuration data corresponding to the sixth model element includes the first configuration data and the configuration data corresponding to the seventh model element does not include the first configuration data, the redundant configuration data corresponding to the sixth model element can be eliminated. At this time, based on the above first mapping relationship, it can be found that the fourth symbol in the first file corresponds to the sixth model element in the first software development model. The corresponding first optimization strategy of the first application model is used to indicate the deletion of the first configuration data corresponding to the fourth symbol in the first file, resulting in an optimized second file. This optimized second file can not only meet the software functional requirements of the first application model, but also provide the configuration data that the first application model truly depends on, and eliminate redundant configuration data, thereby saving memory resources and improving the system's resource utilization and operating efficiency.
[0054] In one possible implementation, the first file is optimized based on the first optimization strategy to obtain the second file, which can be achieved in ways including but not limited to the following:
[0055] Delete the first configuration data corresponding to the fourth symbol in the first file to obtain the second file.
[0056] In this embodiment, when there is a dependency between the sixth model element in the first software development model and the seventh model element in the first application model, if the configuration data corresponding to the sixth model element includes the first configuration data and the configuration data corresponding to the seventh model element does not include the first configuration data, the first configuration data corresponding to the fourth symbol in the first file can be deleted based on the first optimization strategy. At this time, the optimized second file is obtained, which can not only meet the software functional requirements of the first application model, but also provide the configuration data that the first application model actually depends on, and cut out redundant configuration data, thereby saving memory resources and improving the resource utilization and operating efficiency of the system.
[0057] In one possible implementation, before obtaining the second document, the software development method may also perform the following steps, including but not limited to:
[0058] Initiate a first optimization permission authentication request. The first optimization permission authentication request is used to request authentication of permission to optimize the first file.
[0059] In this embodiment, before obtaining the second file, a first optimization permission authentication request can be initiated to request authentication for permission to optimize the first file, preventing potentially security-risk operations from being performed on the first file. It is understood that after obtaining permission to optimize the first file, executing the software development method in this embodiment to obtain the second file can meet the different software functional needs of software users while ensuring software security. This approach can be applied to software development and usage scenarios in fields with high security requirements, such as vehicles and aviation.
[0060] In one possible implementation, the above software development method may also perform the following steps, including but not limited to:
[0061] Receive the first instruction, which is used to request the analysis of the items to be optimized corresponding to the first file.
[0062] In response to the first instruction, control the display of one or more items to be optimized corresponding to the first file, and / or the optimization permissions corresponding to one or more items to be optimized corresponding to the first file.
[0063] In this embodiment, a possible specific implementation of a visual human-computer interaction interface display is provided. Specifically, in response to a first request to analyze the items to be optimized corresponding to the first file, one or more items to be optimized corresponding to the first file are controlled to be displayed, and / or the optimization permissions corresponding to one or more items to be optimized corresponding to the first file are displayed. This allows software users to intuitively see the items that need to be optimized in the first file to achieve specific software functional requirements, as well as the optimization permissions corresponding to each item to be optimized, making the optimization operation of the software user more convenient and improving the user experience.
[0064] In one possible implementation, the above software development method may also perform the following steps, including but not limited to:
[0065] Receive a second instruction, which requests optimization of one or more items to be optimized corresponding to the first file.
[0066] In response to the second instruction, one or more items to be optimized corresponding to the first file are optimized.
[0067] In this embodiment, a second instruction can be received through a visual human-computer interaction, and one or more items to be optimized corresponding to the first file can be optimized in response to the second instruction. This can make the optimized second file meet the specific software functional requirements of the first application model, improve the accuracy and efficiency of the first file optimization, and make the optimization operation more convenient for software users, thereby improving the user experience.
[0068] In one possible implementation, the above software development method may also perform the following steps, including but not limited to:
[0069] Receive a third instruction, which requests a rollback of one or more optimized items in the first file.
[0070] In response to the third instruction, rollback is performed on one or more optimized items in the first file.
[0071] In this embodiment, a rollback mechanism for optimizing the first file is also provided. When a software user optimizes one or more items to be optimized in the first file, and then regrets the optimization operation due to the possibility that the expected effect has not been achieved or other reasons, the optimization operation can be rolled back in response to a third instruction requesting the rollback of one or more optimized items in the first file, thereby improving the expected effect of the optimization.
[0072] In one possible implementation, the above software development method may also perform the following steps, including but not limited to:
[0073] Receive a fourth instruction, which requests the first optimization report corresponding to the first file. The first optimization report includes the optimization information corresponding to the first file.
[0074] In response to the fourth instruction, the first optimization report is generated.
[0075] In this embodiment, since the first file is trimmed, corresponding logging and verification capabilities are provided to ensure that the trimmed second file meets user expectations and to ensure the correctness of the optimization operation. Specifically, in response to a fourth instruction requesting a first optimization report corresponding to the first file, a first optimization report is generated after the optimization of the first file is completed. Through the first optimization report in this embodiment, the first file before modification and the second file after modification can be verified to ensure the correctness of the optimization operation.
[0076] In one possible implementation, the first optimization report mentioned above includes one or more of the following:
[0077] Model elements in the first software development model, model elements in the first application model, symbol names in the first file, symbol types in the first file, addresses corresponding to symbols in the first file, memory sizes corresponding to symbols in the first file, optimization strategies corresponding to symbols in the first file, values before optimization corresponding to symbols in the first file, and values after optimization corresponding to symbols in the first file.
[0078] In one possible implementation, the above software development method may also perform the following steps, including but not limited to:
[0079] Based on the first file, the second file, and the first optimization report, the optimization corresponding to the first file is verified.
[0080] In this embodiment, the first file before modification and the second file after modification can be verified based on the first file, the second file, and the first optimization report to ensure the correctness of the optimization operation.
[0081] In one possible implementation, the above-mentioned verification of the optimization corresponding to the first file based on the first file, the second file, and the first optimization report can be achieved in ways including but not limited to the following:
[0082] Based on the first file and the second file, obtain the difference information between the first file and the second file.
[0083] Based on the difference information and the first optimization report, the consistency of the optimization strategy and / or optimization measures corresponding to the first document is verified.
[0084] In this embodiment, the consistency of the optimization strategy and / or optimization measures corresponding to the first file can be verified based on the difference information between the first file and the second file, as well as the first optimization report, to ensure the correctness of the optimization operation.
[0085] In one possible implementation, the above software development method may also perform the following steps, including but not limited to:
[0086] The control displays the first optimization report, and / or the control displays the difference information between the first and second files.
[0087] In this embodiment, a possible specific implementation of a visual human-computer interaction interface is provided. Specifically, it controls the display of a first optimization report and / or controls the display of difference information between a first file and a second file. This provides software users with log recording and verification capabilities corresponding to the optimization process, ensuring the completeness of the optimization operation. It also makes the optimization operation of the software user more convenient and intuitive, improving the user experience.
[0088] In one possible implementation, the software system to which the above software development method is applied includes a software system running on the AUTOSAR CP standard platform for automotive open system architecture.
[0089] In this embodiment, the software systems used in the above-described software development method include, but are not limited to, software systems running on the Automotive Open System Architecture Classic Platform (AUTOSAR CP) or the Automotive Open System Architecture Adaptive Platform (AUTOSAR AP), etc., and this application embodiment does not impose any limitations on them. Optionally, the software systems used in the above-described software development method are applicable to embedded systems. Accordingly, the above-described software development method can be applied to software development and software usage scenarios in fields with high safety requirements, such as vehicles and aviation. For example, it can be applied to the software development and software usage of products such as in-vehicle terminals, mobile phones, watches, and industrial software, and this application embodiment does not impose any limitations on it.
[0090] Secondly, embodiments of this application provide a software development method, which can perform steps including but not limited to the following:
[0091] Generate a first mapping relationship between a first software development model and a first file, and send first information, wherein the first file and the first software development model are associated, and the first information includes the first mapping relationship, the first software development model, and the first file.
[0092] This application provides a software development method in which a first file is associated with a first software development model. This can be understood as the first file being derived from the first software development model. For example, in software development in the vehicle field, the first software development model can be a software development kit (SDK) model, and the first file can be an SDK file. Specifically, a software developer (also referred to as a model development tool) can use the SDK model to generate code files and edit these code files to obtain the SDK file, thereby achieving the derivation of the first file (SDK file) based on the first software development model (SDK model). The first mapping relationship between the first software development model and the first file can be understood as the mapping relationship of the process of obtaining the first file from the first software development model.
[0093] Through the embodiments of this application, the correlation between the first application model and the first software development model can be analyzed. Based on the first mapping relationship between the first software development model and the first file, the first file can be optimized to obtain a second file that can meet the specific software functional requirements of the first application model. This second file is then provided to the software corresponding to the first application model. In this way, the first file can be reused for different optimizations (e.g., different precise trimming or modification operations) to meet the different software functional requirements of software users, resulting in different optimized files. This reduces the background noise overhead caused by the SDK decoupled development model, reduces processor load, saves memory resources, and improves system resource utilization and operating efficiency.
[0094] In one possible implementation, the first mapping relationship between the first software development model and the first file can be specifically achieved through methods including but not limited to the following:
[0095] Based on the first software development model, a first program file and a second mapping relationship are obtained. The second mapping relationship includes the mapping relationship between the first software development model and the first program file.
[0096] Based on the first program file, the first file and the third mapping relationship are obtained. The third mapping relationship includes the mapping relationship between the first program file and the first file.
[0097] The first mapping relationship is generated based on the second and third mapping relationships.
[0098] In one possible implementation, the first information is used to obtain a second file corresponding to the first application model, and the second file is used to provide the software corresponding to the first application model.
[0099] In one possible implementation, the first information is used to obtain the second file corresponding to the first application model, which can be achieved in ways including but not limited to the following:
[0100] The first software development model in the first information is used to obtain the first association relationship between the first application model and the first software development model. The first association relationship and the first mapping relationship are used to obtain the first optimization strategy. The first optimization strategy is used to instruct the first file to be optimized to obtain the second file.
[0101] In one possible implementation, the first optimization strategy described above is used to instruct the deletion of the first symbol in the first file, or to modify the first symbol to 0 or empty.
[0102] The first symbol corresponds to the first model element in the first software development model, and there is no dependency between the first model element and any model element in the first application model.
[0103] In one possible implementation, the first optimization strategy described above is also used to instruct the modification of the value of the second symbol in the first file.
[0104] The second symbol corresponds to the second model element in the first software development model, and there is a dependency relationship between the second model element and the third model element in the first application model. The function indicated by the modified second symbol is the same as the function of the third model element.
[0105] In one possible implementation, the first optimization strategy described above is also used to instruct the modification of the memory size of the third symbol in the first file.
[0106] The third symbol corresponds to the fourth model element in the first software development model. The fourth model element has a dependency relationship with the fifth model element in the first application model, and the memory size corresponding to the fourth model element is smaller than the memory size corresponding to the fifth model element.
[0107] In one possible implementation, the first optimization strategy described above is also used to instruct the deletion of the first configuration data corresponding to the fourth symbol in the first file.
[0108] The fourth symbol corresponds to the sixth model element in the first software development model. The sixth model element has a dependency relationship with the seventh model element in the first application model. The configuration data corresponding to the sixth model element includes the first configuration data, while the configuration data corresponding to the seventh model element does not include the first configuration data.
[0109] In one possible implementation, the software system to which the above software development method is applied includes a software system running on the AUTOSAR CP standard platform for automotive open system architecture.
[0110] Regarding the second aspect and any possible implementation, the steps for its execution can be referred to the corresponding implementation and implementation of the first aspect.
[0111] For the technical effects of the second aspect and any possible implementation, please refer to the description of the technical effects corresponding to the first aspect and the corresponding implementation.
[0112] Thirdly, embodiments of this application provide a software development apparatus, which includes units for performing the methods as described in any of the first aspects.
[0113] In one possible design, the device includes:
[0114] The processing unit is used to acquire a first software development model, a first application model, and a first file, wherein the first file is associated with the first software development model.
[0115] The processing unit is further configured to obtain a second file based on the first mapping relationship between the first software development model and the first file, the first application model, the first software development model, and the first file, and the second file is used to provide the software corresponding to the first application model.
[0116] In one possible implementation, the device further includes a communication unit;
[0117] The processing unit is specifically used to obtain the first software development model and the first file through the communication unit.
[0118] Regarding the processing unit and communication unit described in the third aspect and any possible implementation, the steps performed thereon can be referred to the corresponding implementations in the first aspect.
[0119] For the technical effects of the third aspect and any possible implementation, please refer to the description of the technical effects corresponding to the first aspect and the corresponding implementation.
[0120] Fourthly, embodiments of this application provide a software development apparatus, which includes a unit for performing the method as described in any of the second aspects.
[0121] In one possible design, the device includes:
[0122] The processing unit is used to generate a first mapping relationship between the first software development model and the first file, wherein the first file and the first software development model are associated.
[0123] The communication unit is used to send first information, which includes a first mapping relationship, a first software development model, and a first file.
[0124] Regarding the processing unit and communication unit described in the fourth aspect and any possible implementation, the steps performed thereon can be referred to the corresponding implementation in the second aspect.
[0125] For the technical effects of the fourth aspect and any possible implementation, please refer to the description of the technical effects corresponding to the second aspect and the corresponding implementation.
[0126] Optionally, in the software development apparatus described in any of the third to fourth aspects and any of the possible embodiments above:
[0127] In one implementation, the software development apparatus is a software development device. When the software development apparatus is a software development device, the communication unit can be a transceiver or an input / output interface; the processing unit can be at least one processor. Optionally, the transceiver can be a transceiver circuit. Optionally, the input / output interface can be an input / output circuit.
[0128] In another implementation, the software development device is a chip (system) or circuit used in software development equipment. When the software development device is a chip (system) or circuit used in software development equipment, the communication unit can be a communication interface (input / output interface), interface circuit, output circuit, input circuit, pin, or related circuit on the chip (system) or circuit; the processing unit can be at least one processor, processing circuit, or logic circuit.
[0129] Fifthly, embodiments of this application provide a software development apparatus including a processor. The processor is coupled to a memory and can be used to execute instructions in the memory to implement the methods of any one of the first to second aspects and any possible implementations described above. Optionally, the software development apparatus further includes a memory. Optionally, the software development apparatus further includes a communication interface, and the processor is coupled to the communication interface.
[0130] Sixthly, embodiments of this application provide a chip, including: logic circuitry and a communication interface. The communication interface is used to receive or transmit information; the logic circuitry is used to receive or transmit information through the communication interface, causing the chip to execute the methods of any one of the first to second aspects and any possible implementations described above.
[0131] In a seventh aspect, embodiments of this application provide a computer-readable storage medium for storing a computer program (also referred to as code or instructions); when the computer program is run on a computer, the methods described in any of the first to second aspects and any possible implementations are implemented.
[0132] Eighthly, embodiments of this application provide a computer program product, the computer program product comprising: a computer program (also referred to as code or instructions); and, when the computer program is run, causing a computer to perform the method of any one of the first to second aspects and any possible implementation thereof.
[0133] Ninthly, embodiments of this application provide a software development system, which includes: a first software development apparatus and a second software development apparatus; wherein the first software development apparatus is used to perform the method described in the first aspect and any possible implementation thereof, and the second software development apparatus is used to perform the method described in the second aspect and any possible implementation thereof.
[0134] In a tenth aspect, embodiments of this application provide a software development system, which includes at least one software development apparatus as described in the third aspect, or the fourth aspect, or the fifth aspect, or the sixth aspect.
[0135] In the eleventh aspect, embodiments of this application provide a terminal, which includes at least one software development device as described in the third aspect, or the software development device as described in the fourth aspect, or the software development device as described in the fifth aspect, or the chip as described in the sixth aspect, or the software development system as described in the ninth aspect, or the software development system as described in the tenth aspect.
[0136] Optionally, the terminal can be a means of transportation, such as a car, truck, aircraft, drone, slow transport vehicle, spacecraft, or ship, or any other possible means of transportation used in any possible scenario. This application embodiment does not limit this.
[0137] Optionally, the terminal is used to implement the method described in any one of the first or second aspects and any possible implementation.
[0138] Furthermore, in the process of performing the methods described in any of the first to second aspects and any possible embodiments described above, the processes related to sending and / or receiving information in the above methods can be understood as the process of the processor outputting information, and / or the process of the processor receiving input information. When outputting information, the processor can output the information to a transceiver (or communication interface, or transmitting module) so that the transceiver can transmit it. After the information is output by the processor, it may need to undergo other processing before reaching the transceiver. Similarly, when the processor receives input information, the transceiver (or communication interface, or transmitting module) receives the information and inputs it to the processor. Furthermore, after the transceiver receives the information, the information may need to undergo other processing before being input to the processor.
[0139] Based on the above principles, for example, the information sent mentioned in the aforementioned method can be understood as information output by the processor. Similarly, the information received can be understood as information received by the processor from input.
[0140] Optionally, unless otherwise specified, or unless they contradict their actual function or internal logic in the relevant description, the operations of the processor, such as transmitting, sending, and receiving, can be more generally understood as processor output and receiving, input, and other operations.
[0141] Optionally, in the process of performing the methods described in any of the first to second aspects and any possible embodiments above, the processor may be a processor specifically designed to perform these methods, or it may be a processor that performs these methods by executing computer instructions stored in memory, such as a general-purpose processor. The memory may be a non-transitory memory, such as read-only memory (ROM), which may be integrated with the processor on the same chip or disposed on separate chips. This application does not limit the type of memory or the arrangement of the memory and processor.
[0142] In one possible implementation, at least one of the aforementioned memories is located outside the device.
[0143] In yet another possible implementation, at least one of the aforementioned memories is located within the device.
[0144] In another possible implementation, a portion of the memory of the at least one memory is located inside the device, while another portion is located outside the device.
[0145] In this application, the processor and memory may also be integrated into a single device, that is, the processor and memory can be integrated together. Attached Figure Description
[0146] To more clearly illustrate the technical solutions of the embodiments of this application, the drawings used in the embodiments of this application will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0147] Figure 1 is a schematic diagram of a software development model provided in an embodiment of this application;
[0148] Figure 2 is a schematic diagram of another software development model provided in the embodiments of this application;
[0149] Figure 3 is a schematic diagram of an SDK link optimization provided in an embodiment of this application;
[0150] Figure 4 is a schematic diagram of a software development architecture provided in an embodiment of this application;
[0151] Figure 5 is a schematic diagram of a software development application scenario provided by an embodiment of this application;
[0152] Figure 6 is a flowchart illustrating a software development method provided in an embodiment of this application;
[0153] Figure 7 is a schematic diagram of a model-based development process provided in an embodiment of this application;
[0154] Figure 8 is a schematic diagram of a mapping relationship between model elements and code provided in an embodiment of this application;
[0155] Figure 9 is a schematic diagram of the mapping relationship between an SDK model and an SDK binary file provided in an embodiment of this application;
[0156] Figure 10 is a schematic diagram illustrating the relationship between an application model and a software development model provided in an embodiment of this application;
[0157] Figure 11 is a schematic diagram of an SDK binary file optimization strategy provided in an embodiment of this application;
[0158] Figure 12 is a schematic diagram of the dependency relationship between an application model and an SDK model provided in an embodiment of this application;
[0159] Figure 13 is a schematic diagram of an optimized SDK binary file provided in an embodiment of this application;
[0160] Figure 14 is a schematic diagram of another optimized SDK binary file provided in an embodiment of this application;
[0161] Figure 15 is a schematic diagram of another optimized SDK binary file provided in an embodiment of this application;
[0162] Figure 16 is a schematic diagram of an SPB mode provided in an embodiment of this application;
[0163] Figure 17 is a schematic diagram of another optimized SDK binary file provided in an embodiment of this application;
[0164] Figure 18 is a schematic diagram of a visual human-computer interaction interface provided in an embodiment of this application;
[0165] Figure 19 is a schematic diagram of an optimized verification method provided in an embodiment of this application;
[0166] Figure 20 is a schematic diagram of a software development application scenario provided by an embodiment of this application;
[0167] Figure 21 is a schematic diagram of a software development apparatus provided in an embodiment of this application;
[0168] Figure 22 is a schematic diagram of the structure of an electronic device provided in an embodiment of this application;
[0169] Figure 23 is a schematic diagram of the structure of a chip provided in an embodiment of this application. Detailed Implementation
[0170] To make the objectives, technical solutions, and advantages of this application clearer, the embodiments of this application will be described below with reference to the accompanying drawings.
[0171] The terms "first" and "second," etc., used in the specification, claims, and drawings of this application are used to distinguish different objects, not to describe a specific order. Furthermore, the terms "comprising" and "having," and any variations thereof, are intended to cover non-exclusive inclusion. For example, a process, method, system, product, or apparatus that includes a series of steps or units is not limited to the listed steps or units, but may optionally include steps or units not listed, or may optionally include other steps or units inherent to these processes, methods, products, or apparatuses.
[0172] The term "embodiment" as used herein means that a specific feature, structure, or characteristic described in connection with an embodiment may be included in at least one embodiment of this application. The appearance of this phrase in various places in the specification does not necessarily refer to the same embodiment, nor is it an independent or alternative embodiment mutually exclusive with other embodiments. Those skilled in the art will explicitly and implicitly understand that, unless otherwise specified or logically conflicting, the terminology and / or descriptions between the various embodiments of this application are consistent and can be mutually referenced, and technical features in different embodiments can be combined to form new embodiments based on their inherent logical relationships.
[0173] It should be understood that in this application, "at least one (item)" means one or more, "more than one" means two or more, "at least two (items)" means two or three or more, and "and / or" is used to describe the relationship between related objects, indicating that there can be three relationships. For example, "A and / or B" can mean: only A exists, only B exists, and A and B exist simultaneously, where A and B can be singular or plural. The character " / " generally indicates that the related objects before and after are in an "or" relationship. "At least one (item) of the following" or similar expressions refer to any combination of these items, including any combination of single or plural items. For example, at least one (item) of a, b, or c can mean: a, b, c, "a and b", "a and c", "b and c", or "a and b and c", where a, b, and c can be single or multiple.
[0174] It should be noted that, in this application, "instruction" can include direct instruction, indirect instruction, explicit instruction, and implicit instruction. When describing a certain instruction information for the purpose of instructing A, it can be understood that the instruction information carries A, directly instructs A, or indirectly instructs A.
[0175] In this application, the information indicated by the instruction information is called the information to be instructed. In specific implementations, there are many ways to indicate the information to be instructed, such as, but not limited to, directly indicating the information to be instructed, such as the information to be instructed itself or its index. It can also indirectly indicate the information to be instructed by indicating other information, where there is a correlation between the other information and the information to be instructed. It can also indicate only a part of the information to be instructed, while the other parts are known or pre-agreed upon. For example, the instruction of specific information can be achieved by using a pre-agreed (e.g., protocol-defined) arrangement of various information, thereby reducing instruction overhead to some extent. The information to be instructed can be sent as a whole or divided into multiple sub-information units, and the sending period and / or timing of these sub-information units can be the same or different. This application does not limit the specific sending method. The sending period and / or timing of these sub-information units can be predefined, for example, according to a protocol, or configured by the transmitting device by sending configuration information to the receiving device.
[0176] It should be noted that in this application, "send" can be understood as "output" and "receive" can be understood as "input". "Send information to A", where "to A" simply indicates the direction of information transmission, and A is the destination, does not limit "send information to A" to a direct transmission over the air interface. "Send information to A" includes sending information directly to A, as well as sending information indirectly to A through a transmitter. Therefore, "send information to A" can also be understood as "outputting information destined for A". Similarly, "receive information from A" indicates that the source of the information is A, including receiving information directly from A, as well as receiving information indirectly from A through a receiver. Therefore, "receive information from A" can also be understood as "inputting information from A".
[0177] This application provides a software development method and related apparatus, applicable to the field of computer technology, such as a software development method for software systems on the Automotive Open System Architecture Classic Platform (AUTOSAR CP). To better understand the technical solution of this application, the relevant terms and concepts that may be involved in the embodiments of this application are introduced below.
[0178] AUTOmotive Open System Architecture (AUTOSAR) is an alliance dedicated to developing automotive electronic software standards. It is a collaborative development framework for automotive electronic systems, jointly participated in by global automakers, parts suppliers, and various research and service organizations. It has established an open standard software architecture for automotive electronic control units (ECUs).
[0179] The Automotive Open System Architecture Classic Platform (AUTOSAR CP) is the standard platform of AUTOSAR, a standard for embedded real-time electronic control units (ECUs) based on open systems and corresponding interfaces for the electronics (OSEK). The embedded operating system (OS) based on AUTOSAR CP is a static OS. During development, global OS object information needs to be input to generate corresponding dynamic OS configuration code, which is then compiled together with the source code.
[0180] An operating system (OS) is a computer program that manages and controls computer hardware and software resources. It is the most basic system software that runs directly on the "bare metal," and all other software or systems must run with the support of the operating system. The operating system is the interface between the user and the computer, as well as the interface between the computer hardware and other software. The functions of an operating system include managing the computer system's hardware, software, and data resources; controlling program execution; improving the human-computer interface; providing support for other application software; maximizing the utilization of all computer system resources; providing various forms of user interfaces to create a good working environment for users; and providing necessary services and corresponding interfaces for the development of other software.
[0181] Embedded systems are application-centric, based on modern computer technology, and capable of flexibly tailoring hardware and software modules according to user needs (such as functionality, reliability, cost, size, power consumption, environment, etc.).
[0182] Original Equipment Manufacturer (OEM): Responsible for the design and production of the complete vehicle and its major systems, defining the overall specifications, functional requirements and technical standards of the vehicle.
[0183] Tier 1 suppliers are those that directly provide complete systems or subsystems to OEMs and are responsible for developing key electronic control units (ECUs) in the systems.
[0184] Generally, Tier 1 suppliers work with OEMs to identify requirements, design and develop systems and components that meet those requirements, and ensure that the OEMs' customized needs are met.
[0185] Please refer to Figure 1, which is a schematic diagram of a software development model provided in an embodiment of this application.
[0186] As shown in Figure 1, when an OEM proposes new functional requirements for the software design of the whole vehicle and its main systems, the OEM sends an application update request to the Tier 1. The Tier 1 updates the underlying software package according to the OEM's software functional requirements and provides the updated underlying software package to the OEM. After receiving the underlying software package, the OEM performs integration verification to test whether the updated underlying software package meets the OEM's software functional requirements.
[0187] However, the frequent updates to software function requirements by OEMs and the requirements for independently developed software functions necessitate frequent information transmission between OEMs and Tier 1 suppliers. The collaborative development of software by the two leads to low software development efficiency and poor maintainability.
[0188] With the trend of domain centralization and market differentiation competition, the frequent updates of requirements by OEMs and the need for independent development have driven the emergence of the decoupled delivery model of software development kits (SDKs).
[0189] Please refer to Figure 2, which is a schematic diagram of another software development model provided in the embodiments of this application.
[0190] As shown in Figure 2, the SDK package provided by Tier 1 suppliers is made available to OEM applications, third-party applications, or domain controller ECUs through platform applications, decoupling SDK package development between Tier 1 suppliers and OEM / third-party applications, as well as domain controller ECUs. When OEM / third-party applications and domain controller ECUs need to frequently update software functionality requirements or develop their own software functionality requirements, they no longer need to feed back to Tier 1 and rely on Tier 1 for SDK package development. This decoupled SDK development model can meet the needs of vehicle manufacturers for customized functions, independent integration, and reuse across multiple vehicle models, improving system flexibility, software development efficiency, and maintainability.
[0191] Currently, the Software Cluster solution proposed by the AUTOSAR community introduces a proxy layer to achieve decoupled application development, aiming to improve system flexibility and modularity. Meanwhile, the Vehicle Operating System (VOS), based on resource reservation and pre-embedded functions, uses a registry mechanism to decouple the host and application sides, further expanding the boundaries of collaborative development.
[0192] However, the aforementioned SDK decoupling development models all introduce additional noise overhead, especially in microcontroller units (MCUs), where the problems of high CPU load and scarce memory resources become increasingly prominent. The introduction of proxy layers and resource reservation models can both lead to high processor load and scarce memory resources, thereby affecting system resource utilization and operating efficiency.
[0193] Therefore, optimizing processor and memory usage under the SDK decoupled development model becomes an urgent task to ensure that the flexibility and functional expansion brought by SDK decoupled development are not significantly affected by the system's resource utilization and operating efficiency.
[0194] Currently, binary trimming and optimization of embedded SDKs typically relies on two main techniques: code trimming and linking optimization.
[0195] Among them, code trimming reduces the size of the SDK binary file by removing code segments that are not used in actual business operations.
[0196] Generally, the clipping range can be controlled through feature macros, as shown below:
[0197] #if(A){
[0198] Feature code segment B;
[0199] }#endif
[0200] By trimming the code corresponding to the pseudocode above, the size of the SDK binary file can be effectively reduced, saving storage space and improving running efficiency.
[0201] Optionally, in the AUTOSAR field, this is typically applied at the link-time stage, where unnecessary functions or modules are removed based on the OEM's requirements, and a customized SDK package (or SDK binary file) is provided.
[0202] Linking optimization techniques can improve the performance of the final executable file and reduce the binary size during the linking stage, including but not limited to: dead code elimination, symbol stripping, and function inlining.
[0203] In the decoupled development model of SDK, the OEM is often responsible for the final integration and linking process. Therefore, the compiler can be used to identify and remove unused symbols (such as variables, functions, debugging information, etc.) in the SDK package, making it perform better in terms of execution efficiency and storage space.
[0204] For details, please refer to Figure 3, which is a schematic diagram of an SDK link optimization provided in an embodiment of this application.
[0205] As shown in Figure 3, the source code includes three functions: func1(){}, func2(){}, and func3(){}. However, only func1(){} is used in actual business logic; func2(){} and func3(){} are not used. Therefore, the compiler can be used to identify and remove the symbols corresponding to func2(){} and func3(){} in the SDK package, resulting in better performance in terms of execution efficiency and storage space.
[0206] Customized SDK packages based on code trimming can reduce redundant reserved resources and background noise introduced by feature macro switches to some extent. However, since different projects may require different feature sets, and code trimming needs to be optimized for specific projects, it cannot meet the requirement of multiple projects reusing the same SDK, thus limiting the flexibility and reusability of the SDK.
[0207] Compiler-based linking optimization techniques can discard unused symbols during the final linking stage, allowing the same SDK to be reused in multiple projects. However, compiler-based linking optimization relies on limited static information and cannot deeply understand specific business logic and semantics. Therefore, its optimization effect is limited, especially when dealing with complex business scenarios, where the optimization benefits are relatively limited. For example, it cannot optimize redundant functions reserved in the registry or configuration data selected in the runtime of the Selectable Post-Build.
[0208] In view of this, this application provides a software development architecture and a corresponding software development method based on the software development architecture. This method is applied in the field of computer technology, such as the software development method in software systems on AUTOSAR CP. It can solve the problem of how to perform deep optimization on software libraries that have been compiled into binary in a software delivery mode based on SDK decoupling development, thereby reducing the background noise overhead brought by SDK decoupling development mode, improving the resource utilization and operating efficiency of the system, and meeting the requirements of software users for performance, security and flexibility.
[0209] Please refer to Figure 4, which is a schematic diagram of a software development architecture provided in an embodiment of this application.
[0210] As shown in Figure 4, this software development architecture mainly includes SDK publishers and SDK users.
[0211] In this process, the SDK publisher releases an SDK package (in binary form) and provides it to SDK users. SDK users then reuse the SDK package and perform in-depth optimizations for the different software function requirements of various products (e.g., Product 1, Product 2, Product 3). The optimized SDK packages are then provided to the respective products (e.g., Product 1, Product 2, Product 3). This not only meets the different software function requirements of SDK users for various products, but also reduces the background noise overhead brought about by the decoupled SDK development model, and improves the system's resource utilization and operating efficiency.
[0212] Furthermore, mechanisms for deep optimization of the SDK package (binary form) can be implemented through methods including but not limited to the following:
[0213] Step 1: The SDK publisher constructs a mapping relationship between the SDK model and the SDK binary file based on the SDK package.
[0214] Step 2: SDK users analyze the dependency relationship between the application model and the SDK model and record the points to be optimized.
[0215] Step 3: The SDK user optimizes the SDK binary file based on the optimization points in Step 2 and the mapping relationship in Step 1.
[0216] Step 4: In the optimization process described in Step 3 above, logging and verification capabilities can also be provided to ensure the completeness of the optimization process.
[0217] Through the software development architecture and corresponding binary file optimization mechanism in this application embodiment, binary files can be reused for different optimizations (such as performing different precise trimming or modification operations) to meet the different software functional requirements of software users, resulting in different optimized files to meet the different software functional requirements of software users. This can reduce the background noise overhead brought by the SDK decoupled development mode, reduce processor load and save memory resources, and improve the system's resource utilization and operating efficiency.
[0218] Please refer to Figure 5, which is a schematic diagram of a software development application scenario provided by an embodiment of this application.
[0219] As shown in Figure 5, Tier 1 (SDK publisher) publishes SDK package, which includes SDK model and SDK binary file, and constructs the mapping relationship from SDK model to SDK binary file. This is executed in the stage marked "1" in Figure 5, and the execution content corresponds to step 1 above.
[0220] Manufacturer 1 (car manufacturer) analyzes the dependency relationship between application configuration model 1 and SDK model, records the points to be optimized, and executes the process in the stage marked "2" in Figure 5. The execution content can correspond to step 2 above.
[0221] Manufacturer 1 (the car manufacturer) optimizes the SDK binary file based on the recorded optimization points and the mapping relationship between the SDK model and the SDK binary file. The resulting SDK 1 is provided to Manufacturer 1's application software and is executed in the stage marked "3" in Figure 5. The execution content corresponds to step 3 above.
[0222] During the optimization of the SDK binary file, Manufacturer 1 (the car manufacturer) can also provide logging and verification capabilities to ensure the completeness of the optimization process. This is performed in the stage marked "4" in Figure 5, and the execution content corresponds to step 4 above.
[0223] Optionally, Manufacturer 2 (the car manufacturer) has a similar optimization mechanism for the SDK binary file as Manufacturer 1 (the car manufacturer), which will not be elaborated here.
[0224] It is understood that the SDK publisher in this application embodiment can be the aforementioned Tier 1, the tool for executing the aforementioned optimization mechanism can be a model development tool, the SDK user in this application embodiment can be the aforementioned OEM, specifically a car manufacturer or other software user, and the tool for executing the aforementioned optimization mechanism can be an optimization tool.
[0225] It is understood that the SDK publisher, SDK user, SDK package, SDK model, and SDK binary file in the embodiments of this application are all named using software development in the vehicle field as an example, and should not be used to limit the embodiments of this application.
[0226] Optionally, in other fields besides vehicles, the SDK publisher in this application embodiment can be called a software package publisher, the SDK user can be called a software package user, the SDK package can be called a software package, the SDK model can be called a software development model, and the SDK binary file can be called a binary file. This application embodiment does not limit this.
[0227] Optionally, the software development architecture and corresponding binary file optimization mechanism in this application embodiment can be applied to software development and software usage scenarios in fields with high security requirements, such as vehicles and aviation. For example, it can be applied to the software development and software usage of products such as vehicle terminals, mobile phones, watches, and industrial software. This application embodiment does not limit this.
[0228] Optionally, the software development architecture and corresponding binary file optimization mechanism in this application embodiment are applicable to software systems running on AUTOSAR CP, or software systems running on AUTOSAR AP, etc., and this application embodiment does not impose any limitations on them. Optionally, the software development architecture and corresponding binary file optimization mechanism in this application embodiment are applicable to embedded systems.
[0229] Please refer to Figure 6, which is a flowchart illustrating a software development method provided in an embodiment of this application. This software development method is applied in the field of computer technology, such as software development in software systems on AUTOSAR CP.
[0230] Specifically, the software development method includes, but is not limited to, the following steps:
[0231] S601: The software development device acquires the first software development model, the first application model, and the first file.
[0232] S602: The software development device obtains a second file based on the first mapping relationship between the first software development model and the first file, the first application model, the first software development model, and the first file.
[0233] It is understood that the software development apparatus in this application embodiment may be a device equipped with a processor / chip that can execute computer execution instructions, or it may be a processor / chip that can execute computer execution instructions. Optionally, the software development apparatus may be an electronic device, or it may be a processor / chip within an electronic device, used to execute the software development method in this application embodiment, so as to reduce the noise floor caused by the SDK decoupled development mode, reduce the processor load and save memory resources, and improve the system's resource utilization and operating efficiency.
[0234] Optionally, the software development apparatus and software development method in this application embodiment can be applied to, but are not limited to, vehicle systems. The vehicle equipped with the vehicle system is an intelligent driving vehicle and can be replaced by a terminal device. The terminal device can be, but is not limited to, vehicles such as commercial vehicles, passenger cars, trains, etc., industrial vehicles (such as forklifts, trailers, tractors, etc.), engineering vehicles (such as excavators, bulldozers, cranes, etc.), robots, etc. This application embodiment does not specifically limit this.
[0235] In this application embodiment, the first file and the first software development model obtained by the software development method can be understood as a software development kit (SDK) provided by a software developer. The first application model and the second file obtained in the software development method can be understood as a software package required by the software user to use the software. The software user can optimize the first file to obtain the second file based on the SSD provided by the software developer and the functional requirements of their own first application model. The second file can then be provided to the software corresponding to the first application model to meet the specific software functional requirements of the software user.
[0236] It is understood that the aforementioned software user may also be referred to as an optimization tool, and the aforementioned software developer may also be referred to as a model development tool. The software development apparatus used to execute the software development method in the embodiments of this application may be the optimization tool, or it may be a complete software development tool composed of the optimization tool and the model development tool. The embodiments of this application do not impose any limitations on this.
[0237] The first document is associated with the first software development model, which can be understood as the first document being obtained based on the first software development model.
[0238] For example, in software development in the vehicle field, the first software development model can be a software development kit (SDK) model, and the first file can be an SDK file. Specifically, software developers (also known as model development tools) can use the SDK model to generate code files and edit the code files to obtain SDK files, so as to obtain the first file (SDK file) based on the first software development model (SDK model).
[0239] The first mapping relationship between the first software development model and the first file can be understood as the mapping relationship in the process of obtaining the first file from the first software development model.
[0240] Optionally, the software development method in this application embodiment can be applied to software development and software use scenarios in fields with high safety requirements, such as vehicles and aviation. For example, it can be applied to the software development and software use of products such as vehicle terminals, mobile phones, watches, and industrial software. This application embodiment does not limit this.
[0241] Optionally, the software development method in this application embodiment is applicable to software systems running on AUTOSAR CP or AUTOSAR AP, etc., and this application embodiment does not limit it.
[0242] Optionally, the software development methods in the embodiments of this application are applicable to embedded systems.
[0243] Through the embodiments of this application, the correlation between the first application model and the first software development model can be analyzed. Based on the first mapping relationship between the first software development model and the first file, the first file can be optimized to obtain a second file that can meet the specific software functional requirements of the first application model. This second file is then provided to the software corresponding to the first application model. In this way, the first file can be reused for different optimizations (e.g., different precise trimming or modification operations) to meet the different software functional requirements of software users, resulting in different optimized files. This reduces the background noise overhead caused by the SDK decoupled development model, reduces processor load, saves memory resources, and improves system resource utilization and operating efficiency.
[0244] In one possible embodiment, the above software development method may further perform the following steps, including but not limited to:
[0245] The software development device acquires the first mapping relationship between the first software development model and the first file.
[0246] The first mapping relationship obtained is used for subsequent optimization of the first file.
[0247] Optionally, the software development device obtains the first mapping relationship, which can be divided into the following cases:
[0248] Scenario 1:
[0249] This first mapping relationship can be generated and obtained by the software development apparatus itself that executes the software development method.
[0250] Understandably, in this case, the software development apparatus is a complete set of software development tools consisting of optimization tools and model development tools.
[0251] Scenario 2:
[0252] This first mapping relationship can also be obtained from an external source by the software development apparatus that executes the software development method.
[0253] It is understood that the software development device in this case is the aforementioned optimization tool. At this time, the first mapping relationship is generated by an external model development tool and sent to the software development device (optimization tool).
[0254] Optionally, when the software development device executing the software development method is the aforementioned optimization tool, and the first mapping relationship is obtained from an external model development tool, it is necessary to ensure that the information or file carrying the first mapping relationship forms a standard specification between the model development tool and the software development device (optimization tool), so that after the software development device (optimization tool) receives the first mapping relationship, it can understand the mapping information represented by the first mapping relationship, and thus it can be used for subsequent optimization of the first file.
[0255] It should be understood that the above scenarios one and two are merely illustrative examples of two possible implementations for the software development device to obtain the first mapping relationship, and should not be construed as limiting the embodiments of this application.
[0256] It should be understood that any new embodiments obtained by reasonable modifications or additions to Situations 1 and 2 above are all within the scope of protection of this application, and the embodiments of this application do not limit them.
[0257] Optionally, the first mapping relationship described above is obtained based on the second and third mapping relationships.
[0258] The second mapping relationship includes the mapping relationship between the first software development model and the first program file, and the first program file is associated with the first software development model. The third mapping relationship includes the mapping relationship between the first program file and the first file.
[0259] It is understandable that a first software development model can generate a first program file, and a second mapping relationship between the first software development model and the first program file can be obtained.
[0260] It is understandable that compiling the first program file can produce the first file (which can be a binary file), and a third mapping relationship between the first program file and the first file can be obtained.
[0261] Therefore, the first mapping relationship can be obtained from the second and third mapping relationships described above.
[0262] Through the embodiments of this application, the symbols that need to be optimized in the first file can be accurately found based on the obtained first mapping relationship, thereby improving the accuracy and efficiency of optimizing the first file.
[0263] For details, please refer to the figure. Figure 7 is a schematic diagram of a model-based development process provided in an embodiment of this application.
[0264] As shown in Figure 7, in the industry's model-based development process, users design models using visualization tools, and then the tools generate corresponding code. For example, in the AUTOSAR scenario, C language files are generated from arxml model files.
[0265] The model parser parses the SDK model input by the user, and the resulting model elements are input into the code generator, which generates the target code.
[0266] The software development method in this application embodiment can modify the code generator (built-in mapping generator) so that while the code generator generates the target code, the mapping generator generates the mapping relationship between model elements and the target code.
[0267] For details, please refer to Figure 8, which is a schematic diagram of a mapping relationship between model elements and code provided in an embodiment of this application.
[0268] As shown in Figure 8, during the process of the code generator converting model elements into code, the mapping generator records the model elements and their corresponding generation results.
[0269] For example, if model element A is generated as function A, the mapping relationship from model element A to function A can be recorded as (Model_element A, funcA).
[0270] For example, if model element B is generated as function B, the mapping relationship from model element B to function B can be recorded as (Model_element B, funcB).
[0271] For example, model element C is generated as variable C, and the mapping relationship from model element C to variable C can be recorded as (Model_element C, VarC).
[0272] After the generated target code is compiled into a binary file, scanning the symbol table of the binary file can obtain information about the symbols, such as, but not limited to, the address of the symbol, the file to which the symbol belongs, and the memory size of the symbol.
[0273] By combining the mapping relationship between the model (model elements) and the code, and the mapping relationship between the code and the symbols in the binary file, a mapping relationship between the model and the binary file can be constructed.
[0274] For details, please refer to Figure 9, which is a schematic diagram of the mapping relationship between an SDK model and an SDK binary file provided in an embodiment of this application.
[0275] As shown in Figure 9, a marking function is added to the code generator to record the mapping relationship between the SDK model and the target code during the process of generating target code from the SDK model.
[0276] During the process of compiling and building the generated target code to obtain the SDK binary file, the symbol table of the SDK binary file is scanned to obtain relevant information about the symbols and to establish a mapping relationship between the target code and the SDK binary file.
[0277] Finally, based on the mapping relationship between the SDK model and the target code, and the mapping relationship between the target code and the SDK binary file, the mapping relationship between the SDK model and the SDK binary file is constructed.
[0278] For example, taking the AUTOSAR model as an example, the mapping relationship between the generated SDK model and the SDK binary file can be in the following format:
[0279] node → symbol.
[0280] Here, "node" represents the model element of the SDK model, and "symbol" represents the symbol in the SDK binary file, which can be a function, variable, etc., and may include, but is not limited to, information such as the address of the symbol, the file to which the symbol belongs, and the memory size of the symbol.
[0281] In one possible embodiment, the above software development method may further perform the following steps, including but not limited to:
[0282] The software development device determines the first association between the first application model and the first software development model.
[0283] The first relationship that is determined is used for subsequent optimization of the first file.
[0284] It is understandable that by determining the first association between the first application model and the first software development model, and then combining the first mapping relationship between the first software development model and the first file, the symbols that need to be optimized in the first file can be accurately found for the specific software functional requirements of the first application model. This allows the optimized second file to meet the specific software functional requirements of the first application model, thereby improving the accuracy and efficiency of optimizing the first file.
[0285] Optionally, the first association can be determined in ways including but not limited to the following:
[0286] The software development device determines the dependencies between the model elements in the first application model and the model elements in the first software development model based on the model elements in the first application model and the model elements in the first software development model.
[0287] By observing the dependencies between the model elements in the first application model and the model elements in the first software development model in this embodiment, the association between the software functional requirements of the first application model and the software functional implementation of the first software development model can be seen. This allows for the matching of appropriate optimization strategies to optimize the first file, so that the optimized second file can meet the specific software functional requirements of the first application model, thereby improving the accuracy and efficiency of optimizing the first file.
[0288] Further, optionally, the first association can be determined, specifically through methods including but not limited to the following:
[0289] Based on the model elements in the first application model, the model elements in the first software development model are traversed to determine the dependency relationship between the model elements in the first application model and the model elements in the first software development model.
[0290] By using the traversal method in this embodiment, the above-mentioned dependencies can be determined quickly and accurately, thereby improving software development efficiency.
[0291] For details, please refer to Figure 10, which is a schematic diagram of the relationship between an application model and a software development model provided in an embodiment of this application.
[0292] As shown in Figure 10, the application model and SDK model are imported into the model development tool, and connections are made between the model elements in the application model and the model elements in the SDK model.
[0293] The model development tool starts with the application model, recursively traverses the SDK model, and analyzes the connectivity between the model elements of the two. Specifically, starting with the model elements in the application model, it recursively traverses the model elements in the SDK model and marks them. The model elements in the SDK model that are not marked are the model elements that can be deleted.
[0294] The model development tool identifies the optimization points in the SDK binary file based on the connection between the application model and the SDK model, as well as the mapping between the SDK model and the SDK binary file, and matches the corresponding optimization strategies.
[0295] For example, as can be seen from the connection relationship between the application model and the SDK model in Figure 10, there is no connection relationship between model element 1 in the SDK model and the model element in the application model, and it can be regarded as a model element to be deleted. According to the mapping relationship between the SDK model and the SDK binary file, the symbols corresponding to model element 1 in the SDK binary file are found to be "01001011" and "01001010", and then the corresponding optimization strategy is matched for these symbols.
[0296] Through the embodiments of this application, the symbols that need to be optimized in the SDK binary file can be accurately identified for the specific software functional requirements of the application model, so that the optimized SDK binary file can meet the specific software functional requirements of the application model, thereby improving the accuracy and efficiency of SDK binary file optimization.
[0297] In one possible embodiment, step S602 described above can be implemented in ways including but not limited to the following:
[0298] The software development device generates a first optimization strategy based on the first mapping relationship, the first application model, and the first software development model.
[0299] The software development device optimizes the first file based on the first optimization strategy to obtain the second file.
[0300] Understandably, by analyzing the first correlation between the first application model and the first software development model, we can see the correlation between the software functional requirements of the first application model and the software functional implementation of the first software development model. Combined with the first mapping relationship between the first software development model and the first file, we can generate a first optimization strategy that matches the first application model. Based on this first optimization strategy, we can accurately find the symbols that need to be optimized in the first file, so that the optimized second file can meet the specific software functional requirements of the first application model, thereby improving the accuracy and efficiency of optimizing the first file.
[0301] For details, please refer to Figure 11, which is a schematic diagram of an SDK binary file optimization strategy provided in an embodiment of this application.
[0302] As shown in Figure 11, the key variables are first identified based on model analysis. Then, the variable is searched in the symbol table of the SDK binary file. The variable structure is parsed based on the debugging with attribute record formats (DWARF) information to identify the address offset to be modified. Finally, the SDK binary file is trimmed according to the address offset to be modified.
[0303] Optionally, the above-described generation of the first optimization strategy and the optimization of the first file based on the first optimization strategy can be further illustrated through the following embodiments:
[0304] Example 1:
[0305] The first optimization strategy described above is used to instruct the deletion of the first symbol in the first file, or to modify the first symbol to 0 or empty.
[0306] Accordingly, based on this first optimization strategy, the first symbol in the first file is deleted, or the value of the first symbol in the first file is modified to 0 or empty, to obtain the second file.
[0307] The first symbol corresponds to the first model element in the first software development model, and there is no dependency between the first model element and any model element in the first application model.
[0308] It is understandable that when there is no dependency between the first model element in the first software development model and any model element in the first application model, it means that the symbol corresponding to the first model element in the first file is not used by the first application model, and the symbol corresponding to the first model element in the first file can be optimized as a pruning item.
[0309] At this point, based on the first mapping relationship mentioned above, it can be seen that the first symbol in the first file corresponds to the first model element in the first software development model. The first optimization strategy that matches the first application model is used to indicate the deletion of the first symbol in the first file, or to modify the first symbol to 0 or empty, so as to obtain the optimized second file. This can not only meet the software function requirements of the first application model, but also reduce the size of the second file, reduce the processor load and save memory resources, and improve the system's resource utilization and operating efficiency.
[0310] For details, please refer to Figure 12, which is a schematic diagram of the dependency relationship between an application model and an SDK model provided in an embodiment of this application.
[0311] As shown in Figure 12, the dependencies between model elements in the application model and the SDK model can be analyzed from the model dimension. Furthermore, functions or variables in the SDK binary file that are not used by the application model can be identified. Below is a C language registry example:
[0312] As can be seen, function_table 0 stores pointers to 10 functions, func1 to func10. Since function_table 0 references these 10 function pointers, and the compiler does not know which function will be actually called by the application, all 10 functions will be compiled into the final SDK binary file along with the application.
[0313] The software development method described in this application embodiment can be used to analyze functions or variables in the SDK binary file that are not used by the application model, thereby removing redundant function symbols from the registry.
[0314] For details, please refer to Figure 13, which is a schematic diagram of an optimized SDK binary file provided in an embodiment of this application.
[0315] As shown in Figure 13, after the software development method in this embodiment optimizes the SDK binary file, the useless function references in function_table 0 will be set to 0 or null (NULL), and the linker can remove these useless symbols during the linking stage.
[0316] Understandably, the optimized SDK binary file can not only meet the software functional requirements of the application model, but also reduce the size of the SDK binary file, reduce processor load and save memory resources, thereby improving system resource utilization and operating efficiency.
[0317] Example 2:
[0318] The first optimization strategy described above is also used to instruct the modification of the value of the second symbol in the first file.
[0319] Accordingly, based on this first optimization strategy, the value of the second symbol in the first file is modified to obtain the second file.
[0320] The second symbol corresponds to the second model element in the first software development model, and there is a dependency relationship between the second model element and the third model element in the first application model. The function indicated by the modified second symbol is the same as the function of the third model element.
[0321] It is understandable that when there is a dependency between the second model element in the first software development model and the third model element in the first application model, it means that the symbol corresponding to the second model element in the first file will be used by the first application model, and the connection between the two parties (the third model element in the first application model and the symbol corresponding to the second model element in the first file) can be established during the linking stage.
[0322] At this point, based on the first mapping relationship mentioned above, it can be seen that the second symbol in the first file corresponds to the second model element in the first software development model. The first optimization strategy correspondingly matching the first application model is used to indicate the modification of the value of the second symbol in the first file, so that the function indicated by the modified second symbol is the same as the function of the third model element. At this point, the optimized second file is obtained, which can not only meet the software function requirements of the first application model, but also complete the establishment of the connection relationship between the two parties in the linking stage. Compared with completing the connection between the two parties in the running stage, the embodiments of this application can also reduce the system initialization time.
[0323] For details, please refer to Figure 14, which is a schematic diagram of another optimized SDK binary file provided in the embodiment of this application.
[0324] As shown in Figure 14, the SDK binary file and the App binary file will be connected during the runtime phase, and some global variables will be populated.
[0325] The software development method described in this application allows for the establishment of the connection between the two parties during the linking phase. By analyzing the relationship between the SDK model and the application model, the values that need to be initialized for the symbols to be initialized can be obtained, and the SDK binary file or App binary file can be modified, thereby reducing system initialization time.
[0326] For example, there is a variable a (var a) in the SDK binary file and a variable b (var b) in the App binary file. a needs to be initialized in the runtime to complete the connection between the two, for example, Init: ax = b; or, Init: ax = b + 1; or, Init: ax = func(b); etc.
[0327] The software development method in this application embodiment can complete the establishment of the connection between the two parties during the linking stage, modify the binary corresponding to variable a to meet the functional requirements of variable b, thereby reducing system initialization time.
[0328] Example 3:
[0329] The first optimization strategy described above is also used to instruct the modification of the memory size of the third symbol in the first file.
[0330] Accordingly, based on this first optimization strategy, the memory size of the third symbol in the first file is modified to obtain the second file.
[0331] The third symbol corresponds to the fourth model element in the first software development model. The fourth model element has a dependency relationship with the fifth model element in the first application model, and the memory size corresponding to the fourth model element is smaller than the memory size corresponding to the fifth model element.
[0332] It is understandable that when there is a dependency between the fourth model element in the first software development model and the fifth model element in the first application model, it means that the symbol corresponding to the fourth model element in the first file will be used by the first application model. If the memory size corresponding to the fourth model element is less than the memory size corresponding to the fifth model element, the memory size corresponding to the fourth model element can be statically expanded.
[0333] At this point, based on the first mapping relationship mentioned above, it can be seen that the third symbol in the first file corresponds to the fourth model element in the first software development model. The first optimization strategy correspondingly matching the first application model is used to indicate the modification of the memory size of the third symbol in the first file, so that the memory size of the modified third symbol is not less than the memory size corresponding to the fifth model element. At this point, the optimized second file is obtained, which can not only meet the software functional requirements of the first application model, but also support the memory size required for the expansion of the software functional requirements of the first application model. This avoids reserving too much memory resources in the optimized second file, thereby saving memory resources and improving the resource utilization and operating efficiency of the system.
[0334] For details, please refer to Figure 15, which is a schematic diagram of another optimized SDK binary file provided in the embodiment of this application.
[0335] As shown in Figure 15, in certain high-security application scenarios (such as automotive and aerospace), the use of dynamic memory is strictly limited. In such scenarios, the memory size in the SDK binary file cannot be modified once it is determined. To support the application, for example, the buffer memory for the transmission control protocol / internet protocol (TCP / IP) stack in the SDK binary file needs to be increased according to the specifications of the network traffic used by the application. The SDK binary file often needs to reserve extra memory, thus causing memory waste.
[0336] The software development method described in this application can deduce the amount of memory that the SDK binary file needs to expand based on the relationship between the SDK model and the application model, thereby avoiding reserving too much memory resources in the SDK binary file, thus saving memory resources and improving the system's resource utilization and operating efficiency.
[0337] For example, if 10 memory resources (buffer
[0010] ) are reserved in the SDK binary file, but only 5 memory resources (a = buffer[5]) are needed in the App binary file, this will result in excessive memory resources being reserved in the SDK binary file. Furthermore, when 100 memory resources (a = buffer
[0100] ) are needed in the App binary file corresponding to other application models, the vendor needs to redistribute the SDK binary file with sufficient memory resources, such as buffer
[0200] . The buffer memory in the SDK binary file needs to be increased according to the specifications of the network traffic used by the application, and the SDK binary file often needs to reserve extra memory, thus causing the problem of memory waste.
[0338] In the software development method of this application embodiment, when the SDK binary file reserves 5 memory resources (buffer[5]), the optimization tool can expand the buffer by modifying the SDK binary file, without the need for the supplier to re-release the SDK binary file with enough reserved memory resources, thereby avoiding the reservation of too much memory resources in the SDK binary file, thus saving memory resources and improving the resource utilization and operating efficiency of the system.
[0339] Example 4:
[0340] The aforementioned first optimization strategy is also used to instruct the deletion of the first configuration data corresponding to the fourth symbol in the first file.
[0341] Accordingly, based on the first optimization strategy, the first configuration data corresponding to the fourth symbol in the first file is deleted to obtain the second file.
[0342] The fourth symbol corresponds to the sixth model element in the first software development model. The sixth model element has a dependency relationship with the seventh model element in the first application model. The configuration data corresponding to the sixth model element includes the first configuration data, while the configuration data corresponding to the seventh model element does not include the first configuration data.
[0343] It is understandable that when there is a dependency between the sixth model element in the first software development model and the seventh model element in the first application model, it means that the symbol corresponding to the sixth model element in the first file will be used by the first application model. If the configuration data corresponding to the sixth model element includes the first configuration data and the configuration data corresponding to the seventh model element does not include the first configuration data, the redundant configuration data corresponding to the sixth model element can be eliminated.
[0344] At this point, based on the first mapping relationship mentioned above, it can be seen that the fourth symbol in the first file corresponds to the sixth model element in the first software development model. The first optimization strategy that matches the first application model is used to indicate the deletion of the first configuration data corresponding to the fourth symbol in the first file, resulting in an optimized second file. This optimized file can not only meet the software functional requirements of the first application model, but also provide the configuration data that the first application model truly depends on. By eliminating redundant configuration data, memory resources can be saved, and the resource utilization and operating efficiency of the system can be improved.
[0345] For details, please refer to Figure 16, which is a schematic diagram of an SPB mode provided in an embodiment of this application.
[0346] As shown in Figure 16, in some embedded scenarios (such as the automotive field), in order to enable a single binary file to support multiple vehicle models, it is necessary to merge the configuration data of multiple vehicle models into the same binary file, which results in redundant configuration data waste.
[0347] For example, selectable post-build (SPB) is a technique in AUTOSAR CP used to enable a single binary file to support multiple vehicle models, including but not limited to: vehicle model 1 configuration data, vehicle model 2 configuration data, etc. The desired vehicle model configuration data is selected and used at runtime.
[0348] The software development method described in this application embodiment can analyze the relationship between the SDK model and the application model, find the configuration data that the application model truly depends on, and thus eliminate redundant configuration data.
[0349] For details, please refer to Figure 17, which is a schematic diagram of another optimized SDK binary file provided in the embodiment of this application.
[0350] As shown in Figure 17, by analyzing the relationship between the SDK model and the application model, it was found that the configuration data that the application model actually depends on only includes the configuration data of vehicle model 1. This eliminates the redundant configuration data of vehicle model 2, which can save memory resources and improve the resource utilization and operating efficiency of the system.
[0351] At this point, suppliers only need to release one SDK binary file to support different models from the same car manufacturer, or different models from different car manufacturers, thereby reducing software development costs and ensuring that performance is not degraded.
[0352] It should be understood that the above embodiments one to four are merely illustrative examples of four possible embodiments for optimizing SDK binary files, and should not be construed as limiting the embodiments of this application.
[0353] It should be understood that any new embodiments obtained by reasonable modifications or supplements to the above embodiments one to four are all within the protection scope of this application, and the embodiments of this application do not limit them.
[0354] In one possible embodiment, before obtaining the second file in step S602 above, the software development method may further perform the following steps, including but not limited to:
[0355] The software development device initiates a first optimization permission authentication request, which is used to request authentication of permission to optimize the first file.
[0356] Before obtaining the second file, a first optimization permission authentication request can be initiated to request authentication of the permission to optimize the first file, preventing the execution of operations that may pose security risks on the first file.
[0357] It is understandable that after obtaining permission to optimize the first file, the software development method in this application embodiment is executed to obtain the second file, which can meet the different software function needs of software users, while ensuring the security of using the software. It can be applied to software development and software use scenarios in fields with high security requirements, such as vehicles and aviation.
[0358] In one possible embodiment, the above software development method may further perform the following steps, including but not limited to:
[0359] The software development device receives a first instruction, which is used to request the analysis of the optimization items corresponding to the first file.
[0360] The software development device responds to the first instruction by controlling the display of one or more items to be optimized corresponding to the first file, and / or the optimization permissions corresponding to the one or more items to be optimized corresponding to the first file.
[0361] Understandably, in response to a first request to analyze the items to be optimized corresponding to the first file, the software development device controls the display of one or more items to be optimized corresponding to the first file, and / or the optimization permissions corresponding to the one or more items to be optimized corresponding to the first file.
[0362] Through the embodiments of this application, by using a visual human-computer interaction interface, software users can intuitively see the items that need to be optimized in the first file to achieve specific software functional requirements, as well as the optimization permissions corresponding to each item to be optimized, making the optimization operation more convenient for software users and improving the user experience.
[0363] In one possible embodiment, the above software development method may further perform the following steps, including but not limited to:
[0364] The software development device receives a second instruction, which requests optimization of one or more items to be optimized corresponding to the first file.
[0365] The software development device responds to the second instruction by optimizing one or more items to be optimized corresponding to the first file.
[0366] It is understandable that by receiving the second instruction through a visual human-computer interaction and responding to the second instruction to optimize one or more items to be optimized in the first file, the optimized second file can meet the specific software functional requirements of the first application model, improve the accuracy and efficiency of optimizing the first file, and make the optimization operation more convenient for software users, thereby improving the user experience.
[0367] In one possible embodiment, the above software development method may further perform the following steps, including but not limited to:
[0368] The software development device receives a third instruction, which requests a rollback of one or more optimized items in the first file.
[0369] The software development apparatus, in response to a third instruction, rolls back one or more optimized items in the first file.
[0370] Understandably, if a software user optimizes one or more items in the first file but then regrets the optimization operation due to the possibility of not achieving the expected results or other reasons, the user can respond to a third instruction requesting a rollback of one or more optimized items in the first file. This rollback can improve the expected results of the optimization.
[0371] For details, please refer to Figure 18, which is a schematic diagram of a visual human-computer interaction interface provided in an embodiment of this application.
[0372] As shown in Figure 18, since the binary file is involved in trimming, in order to ensure that the trimmed binary file meets the user's expectations, this application embodiment also provides corresponding log recording and verification capabilities to ensure the correctness of the optimized binary file.
[0373] In Figure 18, after importing the SDK binary file, SDK model, and application model, the symbols (functions and variables) in the SDK binary file will be listed in this view. Then, click the "Model Analysis" button, and the interface will display the items to be pruned obtained from the analysis.
[0374] Optionally, users can choose to optimize individual symbols or click the "Apply All" button to apply all optimizations.
[0375] Optionally, the tool interface will highlight the items that need optimization based on the analysis.
[0376] Through the embodiments of this application, by using a visual human-computer interaction interface, software users can intuitively see the items that need to be optimized in the first file to achieve specific software functional requirements, as well as the optimization permissions corresponding to each item to be optimized, making the optimization operation more convenient for software users and improving the user experience.
[0377] In one possible embodiment, the above software development method may further perform the following steps, including but not limited to:
[0378] The software development device receives a fourth instruction, which requests a first optimization report corresponding to the first file. The first optimization report includes optimization information corresponding to the first file.
[0379] The software development device responds to the fourth instruction and generates the first optimization report.
[0380] Understandably, since the first file involves trimming, corresponding logging and verification capabilities are provided to ensure the trimmed second file meets user expectations and to guarantee the correctness of the optimization operation. Specifically, in response to the fourth instruction requesting the first optimization report corresponding to the first file, the system can generate the first optimization report after optimizing the first file.
[0381] The first optimization report in this application embodiment can be used to verify the first file before modification and the second file after modification, ensuring the correctness of the optimization operation.
[0382] Optionally, the aforementioned first optimization report includes, but is not limited to, one or more of the following:
[0383] Model elements in the first software development model, model elements in the first application model, symbol names in the first file, symbol types in the first file, addresses corresponding to symbols in the first file, memory sizes corresponding to symbols in the first file, optimization strategies corresponding to symbols in the first file, values before optimization corresponding to symbols in the first file, and values after optimization corresponding to symbols in the first file.
[0384] For example, the report format of the first optimization report mentioned above can be as shown in Table 1 below:
[0385] Table 1
[0386] In one possible embodiment, the above software development method may further perform the following steps, including but not limited to:
[0387] The software development device verifies the optimization corresponding to the first file based on the first file, the second file, and the first optimization report.
[0388] Through the embodiments of this application, the first file before modification and the second file after modification can be verified based on the first file, the second file, and the first optimization report to ensure the correctness of the optimization operation.
[0389] Optionally, the above-mentioned verification of the optimization corresponding to the first file based on the first file, the second file, and the first optimization report can be implemented in ways including but not limited to the following:
[0390] The software development device obtains the difference information between the first file and the second file based on the first file and the second file.
[0391] The software development device verifies the consistency of the optimization strategy and / or optimization measures corresponding to the first document based on the difference information and the first optimization report.
[0392] Through the embodiments of this application, the consistency of the optimization strategy and / or optimization measures corresponding to the first file can be verified based on the difference information between the first file and the second file, as well as the first optimization report, to ensure the correctness of the optimization operation.
[0393] Optionally, the above software development method may also perform the following steps, including but not limited to:
[0394] The software development device controls the display of the first optimization report, and / or controls the display of difference information between the first and second files.
[0395] Understandably, a visual human-computer interaction interface can provide software users with log recording and verification capabilities for the optimization process, ensuring the completeness of the optimization operations. It can also make the optimization operations more convenient and intuitive for software users, thereby improving their user experience.
[0396] For details, please refer to Figure 19, which is a schematic diagram of an optimized verification provided by an embodiment of this application.
[0397] As shown in Figure 19, since modifying binary files is a sensitive operation, the system also provides the ability to verify the binary files before and after modification.
[0398] The verifier reads the original SDK binary, the optimized SDK binary, and the optimization report, and then analyzes the differences between the two. Furthermore, the binary differences are visualized by the tool, and simultaneously compared with the optimization report to help users confirm the consistency of the optimization strategy and measures.
[0399] Through the embodiments of this application, software users can be provided with log recording and verification capabilities corresponding to the optimization process, ensuring the completeness of the optimization operation, and making the optimization operation more convenient and intuitive for software users, thereby improving the user experience.
[0400] Furthermore, the system architecture and scenarios in which the software development method provided in this application is mainly applied have the following two typical characteristics:
[0401] Feature 1: SDK builders generate code and build SDK packages (in binary form) through a modeling approach.
[0402] Feature 2: After the SDK package is released, SDK users can make further optimizations according to different scenarios.
[0403] For example, in the automotive industry, the SDK builder is a Tier 1 supplier, and the SDK user is a car manufacturer.
[0404] For details, please refer to Figure 20, which is a schematic diagram of a software development application scenario provided by an embodiment of this application.
[0405] As shown in Figure 20, Tier 1 suppliers use a model-based approach to generate source code for automotive control-related software and compile it into SDK binary files, which are then released to car manufacturers. Car manufacturers can then perform secondary optimizations based on these SDK binary files.
[0406] In this way, Tier 1 suppliers can avoid releasing source code, protecting data security, and enabling the delivery of a single binary file to multiple car manufacturers, thus reducing product development costs. For car manufacturers, the ability to further optimize the SDK binary allows them to customize and optimize it according to their own needs.
[0407] Optionally, a specific scenario of the application of the software development method provided in this application in the vehicle field can be described as follows:
[0408] Tier 1 supplier H is a car door manufacturer that provides car doors and corresponding software packages (including advanced applications such as electric suction doors) to car manufacturers.
[0409] Car manufacturer A purchased products from supplier H and used them in its high, medium, and low-end models. The low-end models do not have advanced features such as electric suction doors enabled.
[0410] Supplier H provides the same software package to car manufacturer A, and also provides the modeled SDK performance optimization tools proposed in this application.
[0411] Based on the software package and the SDK optimization tools of this application, car manufacturer A has customized SDK packages suitable for high, medium and low-end models. The low-end software package contains only basic functions, has low memory consumption, and can run on low-end MCUs, thus reducing costs.
[0412] It is understandable that although this application is designed for AUTOSAR modeling scenarios, the model configuration described in this application can be further extended to any model, or even general configuration files, to achieve deep optimization of executable files through the cooperation of external information and binary SDK.
[0413] Furthermore, the application scenarios of this application are not limited to automotive software binary SDKs. In addition to the embedded field, it can also be extended to general application software and static libraries, etc., as a general method for binary optimization.
[0414] The methods of the embodiments of this application have been described in detail above. The following provides an apparatus for implementing any one of the methods in the embodiments of this application. For example, an apparatus is provided that includes a unit (or means) for implementing the steps performed by the device in any of the above methods.
[0415] Please refer to Figure 21, which is a schematic diagram of the structure of a software development device provided in an embodiment of this application.
[0416] As shown in Figure 21, the software development device 210 may include a communication unit 2101 and a processing unit 2102. The communication unit 2101 and the processing unit 2102 may be software, hardware, or a combination of software and hardware.
[0417] The communication unit 2101 can implement sending and / or receiving functions, and can also be described as a transceiver unit. The communication unit 2101 can also be a unit integrating an acquisition unit and a sending unit, wherein the acquisition unit is used to implement the receiving function, and the sending unit is used to implement the sending function. Optionally, the communication unit 2101 can be used to receive information sent by other devices, and can also be used to send information to other devices.
[0418] In one possible design, the software development apparatus 210 may correspond to the software development apparatus in the method embodiment shown in FIG. 6 above. For example, the software development apparatus 210 may be an electronic device or a chip within an electronic device. The software development apparatus 210 may include units for performing the operations performed by the software development apparatus in the method embodiment shown in FIG. 6 above, and each unit in the software development apparatus 210 is for implementing the operations performed by the software development apparatus in the method embodiment shown in FIG. 6 above. The descriptions of each unit are as follows:
[0419] Processing unit 2102 is used to acquire a first software development model, a first application model, and a first file, wherein the first file is associated with the first software development model;
[0420] The processing unit 2102 is further configured to obtain a second file based on the first mapping relationship between the first software development model and the first file, the first application model, the first software development model, and the first file, and the second file is used to provide the software corresponding to the first application model for use.
[0421] In one possible implementation, the device further includes a communication unit 2101;
[0422] The processing unit 2102 is specifically used to obtain the first software development model and the first file through the communication unit 2101.
[0423] Regarding the communication unit 2101 and processing unit 2102 described in this design, the steps they perform can be referred to the implementation method corresponding to the software development device in the method embodiment shown in FIG6 above.
[0424] Regarding the technical effects of the implementation methods performed by the communication unit 2101 and processing unit 2102 described in this design, please refer to the description of the technical effects corresponding to the method embodiment shown in FIG6 above.
[0425] In another possible design, the software development apparatus 210 may correspond to the software development apparatus in the method embodiment shown in FIG. 6 above. For example, the software development apparatus 210 may be an electronic device or a chip within an electronic device. The software development apparatus 210 may include units for performing the operations performed by the software development apparatus in the method embodiment shown in FIG. 6 above, and each unit in the software development apparatus 210 is for implementing the operations performed by the software development apparatus in the method embodiment shown in FIG. 6 above. The descriptions of each unit are as follows:
[0426] Processing unit 2102 is used to generate a first mapping relationship between a first software development model and a first file, wherein the first file and the first software development model are associated.
[0427] The communication unit 2101 is used to send first information, which includes a first mapping relationship, a first software development model, and a first file.
[0428] Regarding the communication unit 2101 and processing unit 2102 described in this design, the steps they perform can be referred to the implementation method corresponding to the software development device in the method embodiment shown in FIG6 above.
[0429] Regarding the technical effects of the implementation methods performed by the communication unit 2101 and processing unit 2102 described in this design, please refer to the description of the technical effects corresponding to the method embodiment shown in FIG6 above.
[0430] According to embodiments of this application, the various units in the device shown in FIG21 can be individually or entirely merged into one or more other units, or some of the units can be further divided into multiple functionally smaller units. This achieves the same operation without affecting the technical effect of the embodiments of this application. The above units are based on logical function division. In practical applications, the function of one unit can also be implemented by multiple units, or the function of multiple units can be implemented by one unit. In other embodiments of this application, the electronic device may also include other units. In practical applications, these functions can also be implemented with the assistance of other units, and can be implemented collaboratively by multiple units.
[0431] It should be noted that the implementation of each unit can also refer to the corresponding description of the method embodiment shown in Figure 6 above.
[0432] In the software development apparatus 210 described in Figure 21, the background noise overhead caused by the SDK decoupling development mode can be reduced, and the resource utilization and operating efficiency of the system can be improved.
[0433] If the software development device 210 described above can be an electronic device, please refer to the structural schematic diagram of the electronic device shown in Figure 22.
[0434] It should be understood that the electronic device 220 shown in FIG22 is only an example. The electronic device in the embodiments of this application may also include other components, or include components with functions similar to the various components in FIG22, or may not include all the components in FIG22.
[0435] Electronic device 220 includes transceiver interface 2201 and at least one processor 2202.
[0436] The electronic device 220 can correspond to a software development device. The transceiver interface 2201 is used for transmitting and receiving signals, and at least one processor 2202 executes program instructions, causing the electronic device 220 to implement the corresponding flow of the method executed by the corresponding device in the above method embodiment.
[0437] In one possible design, the electronic device 220 may correspond to the software development apparatus in the method embodiment shown in FIG. 6 above. For example, the electronic device 220 may be a software development apparatus or a chip within the software development apparatus. The electronic device 220 may include components for performing the operations performed by the software development apparatus in the above method embodiment, and each component in the electronic device 220 is respectively for implementing the operations performed by the software development apparatus in the above method embodiment. Specifically, it may be as follows:
[0438] Processor 2202 is used to acquire a first software development model, a first application model, and a first file, wherein the first file is associated with the first software development model;
[0439] The processor 2202 is further configured to obtain a second file based on the first mapping relationship between the first software development model and the first file, the first application model, the first software development model, and the first file, and the second file is used to provide the software corresponding to the first application model.
[0440] In one possible implementation, the device further includes a transceiver interface 2201;
[0441] The processor 2202 is specifically used to obtain the first software development model and the first file through the transceiver interface 2201.
[0442] Regarding the transceiver interface 2201 and at least one processor 2202 described in this design, the steps performed can be referred to the implementation method corresponding to the software development apparatus in the method embodiment shown in FIG6 above.
[0443] For the technical effects of the implementation methods performed by the transceiver interface 2201 and at least one processor 2202 described in this design, please refer to the description of the technical effects corresponding to the method embodiment shown in FIG6 above.
[0444] In another possible design, the electronic device 220 may correspond to the software development apparatus in the method embodiment shown in FIG. 6 above. For example, the electronic device 220 may be a software development apparatus or a chip within the software development apparatus. The electronic device 220 may include components for performing the operations performed by the software development apparatus in the above method embodiment, and each component in the electronic device 220 is respectively for implementing the operations performed by the software development apparatus in the above method embodiment. Specifically, it may be as follows:
[0445] Processor 2202 is used to generate a first mapping relationship between a first software development model and a first file, wherein the first file and the first software development model are associated.
[0446] The transceiver interface 2201 is used to send first information, which includes a first mapping relationship, a first software development model, and a first file.
[0447] Regarding the transceiver interface 2201 and at least one processor 2202 described in this design, the steps performed can be referred to the implementation method corresponding to the software development apparatus in the method embodiment shown in FIG6 above.
[0448] For the technical effects of the implementation methods performed by the transceiver interface 2201 and at least one processor 2202 described in this design, please refer to the description of the technical effects corresponding to the method embodiment shown in FIG6 above.
[0449] In the electronic device 220 described in Figure 22, the background noise overhead caused by the SDK decoupling development mode can be reduced, and the resource utilization and operating efficiency of the system can be improved.
[0450] If the software development device 210 described above can be a chip or a chip system, please refer to the schematic diagram of the chip structure shown in Figure 23.
[0451] As shown in Figure 23, chip 230 includes processor 2301 and interface 2302. The number of processors 2301 can be one or more, and the number of interfaces 2302 can be multiple. It should be noted that the functions of processor 2301 and interface 2302 can be implemented through hardware design, software design, or a combination of both; no restrictions are placed here.
[0452] Optionally, chip 230 may also include memory 2303 for storing necessary program instructions and data.
[0453] In this application, processor 2301 can be used to call the implementation program of the software development method provided in one or more embodiments of this application on a software development device from memory 2303, and execute the instructions included in the program. Interface 2302 can be used to output the execution results of processor 2301. In this application, interface 2302 can be specifically used to output various messages or information of processor 2301.
[0454] The software development methods provided by one or more embodiments of this application can be referred to the various embodiments shown in FIG6 above, which will not be repeated here.
[0455] The processor in this application embodiment can be a central processing unit (CPU), but it can also be other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The general-purpose processor can be a microprocessor or any conventional processor.
[0456] The memory in this application embodiment is used to provide storage space, in which data such as operating system and computer programs can be stored. The memory includes, but is not limited to, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM), or compact disc read-only memory (CD-ROM).
[0457] According to the method provided in the embodiments of this application, the embodiments of this application also provide a computer-readable storage medium storing a computer program. When the computer program is run on one or more processors, it can implement the method shown in FIG6.
[0458] According to the method provided in the embodiments of this application, the embodiments of this application also provide a computer program product, which includes a computer program. When the computer program runs on a processor, it can implement the method shown in FIG6.
[0459] According to the method provided in the embodiments of this application, the embodiments of this application also provide a software development system, which includes: a first software development device and a second software development device; wherein, the first software development device is used to execute the method executed by the model development tool mentioned above, and the second software development device is used to execute the method executed by the optimization tool mentioned above.
[0460] According to the method provided in the embodiments of this application, the embodiments of this application also provide a software development system, which includes at least one software development device 210, or electronic device 220, or chip 230.
[0461] This application embodiment also provides a terminal, which includes at least one software development device 210, or electronic device 220, or chip 230, or the above-described software development system.
[0462] Optionally, the terminal can be a means of transportation, such as a car, truck, aircraft, drone, slow transport vehicle, spacecraft, or ship, or any other possible means of transportation used in any possible scenario. This application embodiment does not limit this.
[0463] Optionally, the terminal is used to implement the method shown in Figure 6 above.
[0464] Optionally, the software development method shown in Figure 6 above can be carried in the form of an executable file in the vehicle operating system (VOS) of the terminal.
[0465] This application also provides a processing apparatus, including a processor and an interface; the processor is used to execute the method in any of the above method embodiments.
[0466] It should be understood that the above-described processing device can be a chip. The units in the various device embodiments and the electronic devices in the method embodiments correspond completely, with corresponding modules or units executing corresponding steps. For example, the communication unit (transceiver) executes the receiving or sending steps in the method embodiments, while other steps besides sending and receiving can be executed by the processing unit (processor). The specific functions of each unit can be found in the corresponding method embodiments. There can be one or more processors.
[0467] It is understood that in the embodiments of this application, the electronic device may perform some or all of the steps in the embodiments of this application. These steps or operations are merely examples, and the embodiments of this application may also perform other operations or variations thereof. Furthermore, the steps may be performed in different orders as presented in the embodiments of this application, and it is not necessarily necessary to perform all the operations in the embodiments of this application.
[0468] In the several embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between apparatuses or units may be electrical, mechanical, or other forms.
[0469] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0470] In addition, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit.
[0471] If the aforementioned functions are implemented as software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the contributing part, or a portion of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
[0472] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any changes or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application.
Claims
A software development method characterized by comprising: The software development method includes: Obtain a first software development model, a first application model, and a first file, wherein the first file is associated with the first software development model; Based on the first mapping relationship between the first software development model and the first file, the first application model, the first software development model, and the first file, a second file is obtained, which is used to provide the software corresponding to the first application model. The software development method according to claim 1, wherein The software development method also includes: Obtain the first mapping relationship between the first software development model and the first file. The software development method according to claim 2, wherein The first mapping relationship is obtained based on the second and third mapping relationships; The second mapping relationship includes the mapping relationship between the first software development model and the first program file, wherein the first program file is associated with the first software development model, and the third mapping relationship includes the mapping relationship between the first program file and the first file. The software development method according to any one of claims 1 to 3, characterized in that, The software development method also includes: Determine the first association between the first application model and the first software development model. The software development method according to claim 4, wherein Determining the first association relationship between the first application model and the first software development model includes: Based on the model elements in the first application model and the model elements in the first software development model, determine the dependencies between the model elements in the first application model and the model elements in the first software development model. The software development method according to claim 5, wherein The step of determining the dependency relationship between model elements in the first application model and model elements in the first software development model based on model elements in the first application model and model elements in the first software development model includes: Based on the model elements in the first application model, the model elements in the first software development model are traversed to determine the dependency relationship between the model elements in the first application model and the model elements in the first software development model. The software development method according to any one of claims 1 to 6, characterized in that The process of obtaining the second file based on the first mapping relationship between the first software development model and the first file, the first application model, the first software development model, and the first file includes: Based on the first mapping relationship, the first application model, and the first software development model, a first optimization strategy is generated. The first file is optimized based on the first optimization strategy to obtain the second file. The software development method according to claim 7, wherein The first optimization strategy is used to instruct the deletion of the first symbol in the first file, or to modify the first symbol to 0 or empty; Wherein, the first symbol corresponds to the first model element in the first software development model, and there is no dependency relationship between the first model element and any model element in the first application model. The software development method according to claim 8, wherein The step of optimizing the first file based on the first optimization strategy to obtain the second file includes: Delete the first symbol in the first file, or modify the value of the first symbol in the first file to 0 or empty, to obtain the second file. The software development method according to any one of claims 7 to 9, characterized in that The first optimization strategy is also used to instruct the modification of the value of the second symbol in the first file; Wherein, the second symbol corresponds to the second model element in the first software development model, the second model element has a dependency relationship with the third model element in the first application model, and the function indicated by the modified second symbol is the same as the function of the third model element. The software development method according to claim 10, wherein The step of optimizing the first file based on the first optimization strategy to obtain the second file includes: Modify the value of the second symbol in the first file to obtain the second file. The software development method according to any one of claims 7 to 11, characterized in that The first optimization strategy is also used to instruct on modifying the memory size of the third symbol in the first file; The third symbol corresponds to the fourth model element in the first software development model, the fourth model element has a dependency relationship with the fifth model element in the first application model, and the memory size corresponding to the fourth model element is smaller than the memory size corresponding to the fifth model element. The software development method according to claim 12, wherein The step of optimizing the first file based on the first optimization strategy to obtain the second file includes: Modify the memory size of the third symbol in the first file to obtain the second file. The software development method according to any one of claims 7 to 13, characterized in that The first optimization strategy is also used to instruct the deletion of the first configuration data corresponding to the fourth symbol in the first file; The fourth symbol corresponds to the sixth model element in the first software development model, the sixth model element has a dependency relationship with the seventh model element in the first application model, and the configuration data corresponding to the sixth model element includes the first configuration data, while the configuration data corresponding to the seventh model element does not include the first configuration data. The software development method according to claim 14, wherein The step of optimizing the first file based on the first optimization strategy to obtain the second file includes: Delete the first configuration data corresponding to the fourth symbol in the first file to obtain the second file. The software development method according to any one of claims 1 to 15, characterized in that, Before obtaining the second file, the software development method further includes: Initiate a first optimization permission authentication request, which is used to request authentication of permission to optimize the first file. The software development method according to any one of claims 1 to 16, characterized in that, The software development method also includes: Receive a first instruction, which is used to request analysis of the optimization items corresponding to the first file; In response to the first instruction, control the display of one or more items to be optimized corresponding to the first file, and / or the optimization permissions corresponding to one or more items to be optimized corresponding to the first file. The software development method according to any one of claims 1 to 17, characterized in that The software development method also includes: Receive a second instruction, which is used to request optimization of one or more items to be optimized corresponding to the first file; In response to the second instruction, one or more items to be optimized corresponding to the first file are optimized. The software development method according to claim 18, wherein The software development method also includes: Receive a third instruction, the third instruction being used to request a rollback of one or more optimized items in the first file; In response to the third instruction, one or more optimized items in the first file are rolled back. The software development method according to any one of claims 1 to 19, characterized in that The software development method also includes: Receive a fourth instruction, the fourth instruction being used to request a first optimization report corresponding to the first file, the first optimization report including optimization information corresponding to the first file; In response to the fourth instruction, the first optimization report is generated. The software development method according to claim 20, wherein The first optimization report includes one or more of the following: The model elements in the first software development model, the model elements in the first application model, the symbol names in the first file, the symbol types in the first file, the addresses corresponding to the symbols in the first file, the memory sizes corresponding to the symbols in the first file, the optimization strategies corresponding to the symbols in the first file, the values before optimization corresponding to the symbols in the first file, and the values after optimization corresponding to the symbols in the first file. The software development method according to claim 20 or 21, wherein The software development method also includes: Based on the first document, the second document, and the first optimization report, the optimization corresponding to the first document is verified. The software development method according to claim 22, wherein The step of verifying the optimization corresponding to the first file based on the first file, the second file, and the first optimization report includes: Based on the first file and the second file, obtain the difference information between the first file and the second file; Based on the difference information and the first optimization report, the consistency of the optimization strategy and / or optimization measures corresponding to the first file is verified. The software development method according to any one of claims 20 to 23, characterized in that The software development method also includes: The control displays the first optimization report, and / or the control displays the difference information between the first file and the second file. The software development method according to any one of claims 1 to 24, characterized in that, The software development method described applies to software systems that run on the AUTOSAR CP standard platform for automotive open system architecture. A software development method characterized by comprising: The software development method includes: Generate a first mapping relationship between a first software development model and a first file, wherein the first file is associated with the first software development model; Send the first information, which includes the first mapping relationship, the first software development model, and the first file. The software development method according to claim 26, wherein The generation of the first mapping relationship between the first software development model and the first file includes: Based on the first software development model, a first program file and a second mapping relationship are obtained, wherein the second mapping relationship includes the mapping relationship between the first software development model and the first program file; Based on the first program file, a third mapping relationship between the first file and the third mapping relationship is obtained, wherein the third mapping relationship includes the mapping relationship between the first program file and the first file; The first mapping relationship is generated based on the second mapping relationship and the third mapping relationship. The software development method according to claim 26 or 27, characterized in that The first information is used to obtain the second file corresponding to the first application model, and the second file is used to provide the software corresponding to the first application model. The software development method according to claim 28, wherein The first information is used to obtain the second file corresponding to the first application model, including: The first software development model in the first information is used to obtain a first association relationship between the first application model and the first software development model. The first association relationship and the first mapping relationship are used to obtain a first optimization strategy. The first optimization strategy is used to instruct the first file to be optimized to obtain the second file. The software development method according to claim 29, wherein The first optimization strategy is used to instruct the deletion of the first symbol in the first file, or to modify the first symbol to 0 or empty; Wherein, the first symbol corresponds to the first model element in the first software development model, and there is no dependency relationship between the first model element and any model element in the first application model. The software development method according to claim 29 or 30, characterized in that The first optimization strategy is also used to instruct the modification of the value of the second symbol in the first file; Wherein, the second symbol corresponds to the second model element in the first software development model, the second model element has a dependency relationship with the third model element in the first application model, and the function indicated by the modified second symbol is the same as the function of the third model element. The software development method according to any one of claims 29 to 31, characterized in that The first optimization strategy is also used to instruct on modifying the memory size of the third symbol in the first file; The third symbol corresponds to the fourth model element in the first software development model, the fourth model element has a dependency relationship with the fifth model element in the first application model, and the memory size corresponding to the fourth model element is smaller than the memory size corresponding to the fifth model element. The software development method according to any one of claims 29 to 32, characterized in that The first optimization strategy is also used to instruct the deletion of the first configuration data corresponding to the fourth symbol in the first file; The fourth symbol corresponds to the sixth model element in the first software development model, the sixth model element has a dependency relationship with the seventh model element in the first application model, and the configuration data corresponding to the sixth model element includes the first configuration data, while the configuration data corresponding to the seventh model element does not include the first configuration data. The software development method according to any one of claims 26 to 33, characterized in that The software development method described applies to software systems that run on the AUTOSAR CP standard platform for automotive open system architecture. A software development apparatus characterized by comprising: Includes units for performing the method as described in any one of claims 1 to 34. A software development apparatus characterized by comprising: Includes a processor for performing the method as described in any one of claims 1 to 34. A chip characterized by It includes logic circuits and interfaces, wherein the logic circuits and the interfaces are coupled; The interface is used for inputting and / or outputting information, and the logic circuit is used for performing the method as described in any one of claims 1 to 34. A software development system characterized by include: First software development device and second software development device; Wherein, the first software development device is used to perform the method as described in any one of claims 1 to 25, and the second software development device is used to perform the method as described in any one of claims 26 to 34. A terminal, characterized by comprising: This includes the software development apparatus as described in claim 35, or the software development apparatus as described in claim 36, or the chip as described in claim 37, or the software development system as described in claim 38. A computer-readable storage medium, characterized by The computer readable storage medium is for storing a computer program which, when executed, causes the method of any one of claims 1 to 34 to be performed. A computer program product, characterized in that The computer program product comprises a computer program which, when executed, causes the method of any one of claims 1 to 34 to be performed.