Computer-implemented method for automatically archiving control device software

By encapsulating control device software and development environment within a virtual computing unit, the problem of software maintenance over long periods of time is solved, enabling stable and secure software changes and avoiding the waste of resources from redevelopment.

CN121729673APending Publication Date: 2026-03-24ROBERT BOSCH GMBH
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-06-14
Publication Date
2026-03-24

AI Technical Summary

Technical Problem

Existing technologies make it difficult to effectively maintain the software of control devices over long periods of time, which means that software changes in vehicles or control devices require redevelopment, which is resource-intensive and may affect driving safety.

Method used

By creating virtual computing units, the control device software and development environment are stored together in a virtual machine, packaged using a hypervisor or virtual machine monitor, and automatically activated when needed to enable software changes, including source code, compiled code, and related tools and data.

Benefits of technology

It enables software maintenance over extended periods, ensures the integrity and security of software changes, avoids the waste of resources from redevelopment, and ensures the stability and security of vehicle control equipment.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121729673A_ABST
    Figure CN121729673A_ABST
Patent Text Reader

Abstract

The invention relates to a computer-implemented method for automatically archiving control device software, comprising: reading (120) control device software for a control device of a vehicle and a development environment for developing the control device software in accordance with reception of an archiving trigger signal; creating (130) a virtual computing unit; storing (140) the read-in control device software together with the read-in development environment in the virtual computing unit; and archiving (160) the virtual compute sheet.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The invention relates to a computer-implemented method for automatically archiving control device software and a computing unit and a computer program for carrying out the method. BACKGROUND

[0002] Software maintenance or "Software Maintenance" is a sub-discipline within software development, in which modifications to software after delivery of the product are made in order to correct errors, improve performance or extend the functionality of the software. The following categories are distinguished in the standard IEEE P14764 / DIS (January 2021 - ISO / IEC / IEEE). Corrective maintenance, which involves eliminating errors that have manifested themselves at the user. Preventive maintenance, which involves eliminating errors that are known but have not yet manifested themselves at the user. Perfective maintenance, which involves improving properties such as, for example, software ergonomics, computing power or maintainability. Adaptive maintenance, which involves adapting the software to changing or variable environmental conditions.

[0003] Software maintenance can be carried out on various software versions. Usually, software maintenance is carried out on the last supplied version number, however it is also possible that under active maintenance there are multiple versions and thus multiple parallel maintenance strands can be formed. During such software maintenance most small changes are made to the software and the changed software can be introduced into the market or into products located in the market. In these cases, systematic changes are often excluded and require a restart of the project.

[0004] Maintenance of software in the case of classic IT systems and their software takes place over a relatively short period of time of approximately 2-5 years, whereas it is not uncommon in the automotive or vehicle sector for vehicles and the software-intensive control devices contained therein that implement the vehicle functions to be in the field for 15 years or more. It is desirable to also implement software maintenance of control device software over such long periods of time in order to be able to create changes to the control device software. SUMMARY

[0005] According to the invention, a computer-implemented method for automatically archiving control device software having the features of the independent patent claim and a computing unit and a computer program for carrying out the method are proposed. Advantageous design solutions are the dependent claims and the subject matter described subsequently.

[0006] The invention provides a possibility for being able to automatically archive or secure or save control device software for later software maintenance in order to create changes to the software.

[0007] In the scope of the method, a control device software for a control device of a vehicle is read in and a development environment for developing the control device software. The control device software can for example have parts of source code, compiled code, executable code, etc. The control device software can in particular be read in from a database of a programming or development environment.

[0008] The control device software can in particular also be used in the field and executed in control devices in a plurality of vehicles running in the field. For example, the control device software can be provided for executing safety-critical functions for safe operation and for controlling the vehicle, for example in the course of a drive control or in the course of a driving assistance function, etc.

[0009] The control device software has in particular been developed with the aid of the development environment. The development environment is in particular a software environment which has been utilized in the course of software development to develop and create source code and machine-readable executable code of the control device software.

[0010] Upon receipt of an archiving trigger signal, for example from a local computing unit, such as a PC, or from a remote computing unit or a remote computing unit system, such as a server or a so-called cloud, which has been used in the course of development of the control device software, the development environment and the control device software developed therefrom are automatically read in.

[0011] Furthermore, a virtual computing unit, a so-called virtual machine, is created in the scope of the present application. In this context, in particular a software-technical encapsulation of a computer system which contains a complete operable system, including an operating system, application software and its license management, should be understood as a virtual computing unit. For building and executing the virtual computing unit, a so-called hypervisor or virtual machine monitor (English: "virtual Machine Monitor", VMM) can be used, which provides a software abstraction layer on which the virtual computing unit can be executed.

[0012] The imported control device software, along with the imported development environment, is stored in a virtual computing unit. Suitablely, the complete control device software, including the software environment used to develop the control device software, is encapsulated in the virtual computing unit. Specifically, all data and software related to the development of the control device software are stored in the virtual computing unit, which, for example, ensures the compliance of the control device software with revision procedures in the case of bug fixes. In particular, the virtual computing unit is a representation or image of the corresponding software-intensive control device on which the control device software can be executed. Furthermore, the virtual computing unit is also an image of a computing unit, such as a PC, used for developing the control device software.

[0013] Virtual computing units, along with their control equipment software and development environment, are archived or stored. For example, virtual computing units can be stored in IT archiving solutions, such as databases, local computing units, or remote computing unit systems, such as servers or the so-called cloud.

[0014] In particular, upon receiving a trigger signal, the archived virtual computing unit, along with the stored control device software and development environment, is provided at any later point in time for developing software changes to the control device software. Since all the data and software required to revise the control device software are archived in the virtual computing unit, it can be suitably used at any time to develop changes to the control device software, for example, during software maintenance, and to output the software changes or correspondingly modified versions of the control device software to the field control device, where an older version of the control device software is still running.

[0015] Therefore, this invention provides a method for archiving control device software along with the development environment, enabling software maintenance of the control device software over extended periods. Specifically, the entire software development process, along with all IT solutions, software tools, testing equipment, source code, and other artifacts such as documentation, is archived, ensuring a complete chain from changing requirements through their implementation or realization to the necessary verification, validation, and release steps over long periods.

[0016] This invention is based on the use of techniques for constructing virtual computing units, wherein the scope of the virtual computing units is suitably arranged such that the virtual computing units can fully represent the characteristics of the control device. For this purpose, not only the control device and the control device software developed for the specific control device, but also the development environment used are automatically encapsulated in a virtual machine. The structure and scope of the virtual computing units can be adapted in particular flexibly, for example, according to the development process, (customer) requirements, product, etc.

[0017] This invention specifically provides an agent or software tool that automatically collects all necessary software packages, documentation, tools, etc., and installs them in a virtual computing unit, as well as verifies their operability. Therefore, automatic encapsulation within the virtual computing unit, where the time capsule itself can be indexed and managed, makes it possible, particularly for each field-existing control device software state, to have multiple capsules (Kapseln) existing simultaneously.

[0018] This invention improves upon traditional archiving mechanisms, where often only the source code of the corresponding control device software is stored in the software archive. With this traditional approach, for example, it's possible that the compiler used to create the software version for the control device may no longer run on the current development system after a few years. However, switching to the current compiler is often impossible because this could cause drastic changes to the HEX file, along with unpredictable effects on system behavior and, consequently, on vehicle safety. The consequence could be the cost of on-site re-backup, potentially equivalent to starting from scratch.

[0019] In contrast, within the scope of this invention, storing the entire control device software and the entire development environment in a virtual computing unit eliminates the risk that the development environment used at the time the control device software was created may no longer be operational on a new IT system at a later time. The virtual computing unit can be archived when development is no longer actively pursued and can be reactivated if software changes to the control device software must be implemented at a later time. In such a reactivation, the entire development environment exists and can be directly used for software maintenance and development.

[0020] After storage or archiving should be completed, archived virtual computing units can be deleted along with control device software and development environment, for example, after a pre-given time interval. Alternatively, archiving can be performed initially within a pre-given first time interval or initial storage duration, after which a decision can be made as to whether archiving should be extended or whether the virtual computing unit should be deleted.

[0021] According to one implementation, a virtual computing unit is created such that the virtual computing unit mimics, possesses, or has the characteristics of a control device. Suitably, the virtual computing unit may have a digital image of a corresponding control device or type of control device, on which control device software is executed in the field.

[0022] According to one embodiment, the method further includes verifying the operability of the control device software and development environment stored in the virtual computing unit. Specifically, this allows for automatic verification of whether the created virtual computing unit can be used for later software maintenance. If operability is not identified during this verification process, error correction can be automatically implemented, or a new virtual computing unit can be created. In particular, the virtual computing unit is archived only after its operability has been confirmed during the verification process.

[0023] According to one implementation, providing an archived virtual computing unit for developing control device software involves activating or executing the virtual computing unit. This reactivates, restores, and puts the control device software and development environment stored in the virtual computing unit into operation. Suitably, the development environment is restored and executed in a virtual computing unit previously used for developing an archived version of the control device software. Using the development environment stored in the activated virtual computing unit, software changes to the control device software stored in the activated virtual computing unit are developed and created. For example, this software change may create an update or new version of the control device software. The created software change is transmitted to the vehicle's control device and can be installed or executed there. For this purpose, the software change, particularly an update or new version of the control device software, can be transmitted to the control device, for example, as a so-called over-the-air update, via a radio connection, such as a mobile radio connection or a WLAN connection. The virtual computing unit or the computing unit executing the virtual computing unit can be in a radio connection with the control device or with the corresponding fleet of vehicles for this purpose.

[0024] According to one implementation, the created software changes, along with the control device software and development environment, are stored in a virtual computing unit, and the virtual computing unit is re-archived. Specifically, the changed version of the control device software is also archived in the virtual computing unit along with the previous version and development environment for later software maintenance. Thus, there are two distinct archived virtual computing units.

[0025] According to one implementation, the stored development environment includes an operating system and / or a compiler and / or (software) testing tools or testing equipment and / or (software) development tools and / or archives containing data or information about the development of the control device software, such as development companion archives or documents and / or third-party software or software from third-party vendors. In particular, the development environment is a complete software system for creating, programming, and compiling the source code and executable machine code upon which the control device software is based.

[0026] According to one embodiment, the stored control device software includes source code and / or machine-readable executable (machine) code and / or configuration parameters. In particular, editable source code and / or the associated executable code compiled from the source code, along with pre-defined parameters, are stored in the virtual computing unit.

[0027] According to one implementation, the control device software and development environment stored in the virtual computing unit constitute a V-model. In this context, the action model from software development should be understood as the V-model, according to which the software development process is organized in phases. According to this V-model, the control device software can first be designed, developed, and finally created in one or more development phases. In one or more subsequent testing phases, the created control device software can be tested for quality assurance. Based on the tests performed, the created control device software can be modified or improved as needed, particularly to meet the presets from the corresponding development phases. Suitably, data, software tools, files, etc., used in the various phases of the V-model can be stored in the virtual computing unit in a hierarchical or structured manner. Software components that only indirectly affect the control equipment software, such as requirements management software ("Requirements Tool" or "Requirements Engineering Tool"), can be selectively installed in the virtual computing unit either along with the data or simply archived in a tool-independent format (e.g., PDF, XML export of requirements, etc.). In particular, all necessary tools and all necessary data for the complete V-model to which the control equipment software has been developed are stored in the virtual computing unit.

[0028] According to one embodiment, the virtual computing unit is provided with at least one interface for activation and interaction with the virtual computing unit, particularly at least one programming interface or application programming interface (API) for programming applications. For example, the virtual computing unit may have a development interface for developing control device software or software source code, a test interface for testing the control device software, and a configuration interface for configuring the virtual computing unit itself and for configuring software tools used in the development process.

[0029] According to one embodiment, the method further includes storing metadata about archived virtual computing units and / or about control device software and / or about the development environment in an external database. This external database is particularly located outside the virtual computing unit or independent of it. For example, the external database may be located in the computing unit executing the virtual computing unit or in another additional computing unit. The metadata specifically includes information, characteristics, or features about the virtual computing unit, control device software, and / or development environment, which are needed for archiving, management, and later reactivation. For example, the metadata allows identifying relevant capsules through a relational database. The metadata or external database is particularly used for analysis: which capsules or virtual computing units must be reactivated if changes are required. In the case of faulty control device software in the field, this can, for example, identify capsules or virtual computing units that may have produced faulty or require-change product software.

[0030] According to one implementation, the metadata includes one or more of the following information: a project name or a unique identifier for the control device software and its version; and / or an identifier for the target product of the control device software or the control device or control device type in which the control device software is executed in the field, such as a hardware part number, OEM control device identifier, etc.; and / or, particularly, a list of all (software) tools used in the (series) development of the control device software; and / or, particularly, a list of all (software) tools stored in the virtual computing unit for the (series) development of the control device software; and / or a list of all included software licenses, such as those for tool and product software; and / or a list of all third-party software or software from third-party vendors stored in the virtual computing unit, such as open-source software, software from original equipment manufacturers or vehicle manufacturers, etc.; and / or a collection of software sources, such as the software configuration management system used. External sources, tags, and links to Configuration Management (SCM); and / or a list of known security vulnerabilities; and / or information about the version of the development process used to develop the control device software; and / or a list of stored hardware, such as evaluation boards, test hardware, debuggers, hardware-in-the-loop systems, etc., and particularly information about its storage; and / or information about the contractual basis for archiving or storage, such as a link to the contract or requirement along with the storage duration if archiving has been commissioned; and / or the initial storage duration, after which a decision is made, in particular, whether archiving should be extended or whether virtual computing units should be deleted.

[0031] The computing unit according to the invention is specifically designed in terms of programming techniques for implementing the method according to the invention.

[0032] It is also advantageous to implement the method according to the invention in the form of a computer program or computer program product having program code for implementing all method steps, because this results in particularly low costs, especially when the execution control device is also used for other tasks and therefore already exists. Finally, a machine-readable storage medium is provided having the computer program as described above stored thereon. Suitable storage media or data carriers for providing the computer program are particularly magnetic, optical, and electrical storage devices, such as hard disks, flash memory, EEPROM, DVDs, etc. Downloading the program via a computer network (Internet, intranet, etc.) is also possible. Such downloading can be performed wired, cable-connected, or wirelessly (e.g., via WLAN networks, 3G, 4G, 5G, or 6G connections, etc.).

[0033] Other advantages and design solutions of the present invention will become apparent from the specification and the accompanying drawings.

[0034] The invention is schematically illustrated in the accompanying drawings according to embodiments and is described below with reference to the accompanying drawings. Attached Figure Description

[0035] Figure 1 One embodiment of the method according to the present invention is illustrated schematically as a block diagram.

[0036] Figure 2 The illustration schematically shows a virtual computing unit that can be created during one embodiment of the method according to the invention.

[0037] Figure 3 The illustration schematically shows a virtual computing unit that can be created during one embodiment of the method according to the invention. Detailed Implementation

[0038] exist Figure 1 The diagram below schematically illustrates one embodiment of the method according to the present invention.

[0039] In step 110, a (software) development process is implemented, during which control device software for a vehicle or for a specific type of control device is developed and created. For example, the control device software may be configured to perform safety-critical functions and to control the vehicle, such as during engine control.

[0040] The control device software is developed in a (software) development environment. In this environment, multiple software programs or tools, such as development tools, testing tools, and third-party vendor software, are executed under an operating system. The development tools are used to create source code, which is then compiled into machine-readable and executable code using a compiler. Testing tools are used to test the control device software and, for example, verify it against preset parameters.

[0041] For example, the development of control device software can be carried out according to the V-model, in which the control device software is first designed, developed, and finally created in one or more development phases. In one or more subsequent testing phases, the created control device software is tested for quality assurance to ensure it meets the requirements of the corresponding development phase.

[0042] Once the control equipment software has been fully created and the vehicle's control equipment has been put into operation in the field, the control equipment software should be archived so that changes to the control equipment software can be created at a later time, for example, as an update, during software maintenance.

[0043] For this purpose, an agent or software tool is provided within the scope of this method, which automatically performs corresponding archiving based on the receipt of an archiving trigger signal. Such an archiving trigger signal can be generated, for example, by a user or programmer, but it can also be generated automatically, for example, due to the compilation process of the control device software.

[0044] For this purpose, in step 120, the control device software and development environment are automatically read in. For example, the control device software and development environment can be read from the PC already used in step 110 for developing the control device software. Specifically, the development environment is read in as a complete software environment, which includes the operating system and compiler, all software tools used (testing tools, development tools, etc.), as well as software from third-party vendors and (development-accompanying) archives containing data related to the development of the control device software. Specifically, the control device software is read in as a complete base software package, which includes basic source code, executable machine-readable code where necessary, and additional configuration parameters.

[0045] In step 130, a virtual computing unit or virtual machine is created. For example, a hypervisor or virtual machine monitor (VMM) can be created and set up for this purpose, which executes the virtual computing unit.

[0046] In step 140, the imported control device software and the imported development environment are stored together in the virtual computing unit. Therefore, the complete control device software, including the complete software environment used to develop the control device software, is encapsulated in the virtual computing unit. Thus, all data and all software related to the development of the control device software are stored in the virtual computing unit.

[0047] In step 150, the operability of the created virtual computing unit or the control device software and development environment stored therein is verified. If operability is not identified, error elimination can be performed automatically, or steps 130 and 140 can be re-implemented to create a new virtual computing unit.

[0048] If operability has been confirmed during verification 150, the virtual computing unit is archived or stored in step 160. For example, the virtual computing unit can be archived in a remote computing unit or remote computing unit system, such as a server or a so-called cloud. The virtual computing unit can now remain active until software maintenance is required to create changes to the control device software.

[0049] Using storage, metadata about archived virtual computing units can be collected and stored in an external database, independent of the virtual computing unit. This metadata includes, for example, information about the virtual computing unit, control device software, and development environment, which is needed for archiving and later reactivation. For instance, the metadata allows the searched control device software version to be found through a relational database.

[0050] In step 170, if software maintenance should be performed and software changes to the control device software should be created, the archived computing unit is provided upon receipt of a trigger signal. The trigger signal for this purpose can be generated by the user, for example. To provide the virtual computing unit, the desired virtual computing unit is identified based on the stored metadata. The archived virtual computing unit is then (re)activated and put into operation. Software changes to the stored control device software are developed and created using the development environment stored in the virtual computing unit.

[0051] The software change can then be transmitted to the control device or to multiple control devices of the corresponding control device type, for example, during an over-the-air update via radio connection. After the software change has been created, it is stored in a virtual computing unit along with the control device software and development environment, and the virtual computing unit is then re-archived.

[0052] In step 180, after a pre-given time interval, it can be decided whether the archiving according to step 160 should be extended, or whether the virtual computing unit should be deleted in step 190.

[0053] exist Figure 2 The diagram schematically illustrates a virtual computing unit that can be created in one embodiment of the method according to the invention, and is indicated by 200.

[0054] Virtual computing units can be built and executed within real computing units that have corresponding hardware or hardware infrastructure 210. The hypervisor or virtual machine monitor (VMM) 220 is a software abstraction layer on which the virtual computing units can execute.

[0055] A software system that uses hardware 210 and management program 220 as virtual computing units to execute software systems Figure 2 This is represented by 230. The development environment for the control device software is now implemented in this virtual computing unit 230. During this process, an operating system 240 or an operating system environment with user applications is executed in the virtual computing unit 230.

[0056] Furthermore, software or software program 250 is implemented in virtual computing unit 230, the software or software program including source code for control device software and software tools for creating the control device software. For example, the software 250 may have artifacts 251, such as source code and executable machine code, and may have development tools 252, testing tools 253, version management software 254 (e.g., Git), requirements management software 255 (e.g., DOORS), and a development, build, and test chain (“toolchain”) 256.

[0057] Furthermore, multiple interfaces 260, programming interfaces, or application programming interfaces (APIs) are implemented in the virtual computing unit 230 for activation and interaction with the virtual computing unit. For example, a development interface 261 for developing control device software or software source code, a test interface 262 for performing tests on the control device software, and a configuration interface 263 for configuring the virtual computing unit 230 itself and configuring software tools used in the development process can be provided.

[0058] exist Figure 3 The diagram also schematically illustrates a virtual computing unit that can be created during one embodiment of the method according to the invention and is indicated by 300.

[0059] Figure 3 The diagram illustrates a structure or hierarchy in which control device software and development environments can be stored within virtual computing units. This data structure specifically represents the V-model, according to which the control device software is developed, as explained above regarding step 110.

[0060] In multiple development phases 310, the control device software is first designed, developed, and created. Subsequently, in multiple testing phases 320, the created control device software is tested. The software tools 330 used in each phase 310, 320 can be stored in virtual computing units in a corresponding partitioned manner.

[0061] For example, in the first development phase 311 and the second development phase 312, requirements management software 331 (e.g., DOORS) can be used to develop presets and requirements for the control device software. In the third development phase 313 and the fourth development phase 314, software modeling tools 332, such as Enterprise Architect, can be used to create the source code for the control device software. In the fifth development phase 315, the source code is compiled, for example, and machine-readable and executable code is created. In this fifth development phase 315, tools 333, such as build toolchains, integrated development environments (DE), data warehouses (DW), corresponding compilers, and version control software (e.g., Git), can be used.

[0062] In the first testing phase 321 and the second testing phase 322, module testing software (English: "Unit Test" or "Unit Test Framework") 334 may be used, for example. In the third testing phase 323, software 335 for integration testing may be used, for example. In the fourth testing phase 324 and the fifth testing phase 325, software 336 for system testing may be used, for example.

[0063] In addition, for example, a development-related archive 340 containing data or information about the development of control device software can be stored in the V model.

Claims

1. A computer-implemented method for automatically archiving control device software, comprising: Based on the receipt of the archive trigger signal, read in (120) the control device software for the vehicle control device and the development environment for developing the control device software; Create (130) virtual computing units (200); The read-in control device software and the read-in development environment are stored together (140) in the virtual computing unit (200); Archive (160) the virtual computing unit (200).

2. The method according to claim 1, wherein the virtual computing unit (200) is created (130) such that the virtual computing unit (200) mimics the characteristics of the control device.

3. The method according to claim 1 or 2, further comprising verifying (150) the operability of the control device software and development environment stored in the virtual computing unit (200).

4. The method according to any one of the preceding claims further includes, upon receiving a provided trigger signal, providing (170) an archived virtual computing unit (200) for software changes to develop the software of the control device.

5. The method of claim 4, wherein providing (170) an archived virtual computing unit (200) for software changes to develop the control device software comprises: Activate the virtual computing unit (200); Software changes are made to the control device software stored in the virtual computing unit (200) using the development environment stored in the virtual computing unit; The created software changes are transmitted to the vehicle's control equipment.

6. The method of claim 5, further comprising: The created software changes are stored together with the control device software and the development environment in the virtual computing unit (200); Archive the virtual computing unit (200).

7. The method according to any one of the preceding claims, wherein the stored development environment includes an operating system (240) and / or a compiler and / or testing tools and / or development tools and / or archives and / or third-party software having data on the development of the control device software.

8. The method according to any one of the preceding claims, wherein the stored control device software includes source code and / or executable code and / or configuration parameters.

9. The method according to any one of the preceding claims, wherein the control device software and development environment stored in the virtual computing unit (200) constitute a V-model (300).

10. The method according to any one of the preceding claims, wherein the virtual computing unit is created with at least one interface (260) for activation and interaction with the virtual computing unit.

11. The method according to any one of the preceding claims further includes storing (160) metadata about the archived virtual computing unit and / or about the control device software and / or about the development environment in an external database.

12. The method of claim 11, wherein the metadata includes one or more of the following: Project Name; The target product of the control device software; A list of tools used in the development of the control device software; The list of tools for developing the control device software is stored in the virtual computing unit; List of software licenses; A list of third-party vendor software stored in the virtual computing unit; A collection of software sources; A list of security vulnerabilities; Information regarding versions of the control device software development process; A list of stored hardware; Information regarding the basis of the archived contracts; Initial storage duration.

13. A computing unit configured to implement all method steps of the method according to any one of the preceding claims.

14. A computer program, when executed on a computing unit, causes the computing unit to perform all the method steps of the method according to any one of claims 1 to 12.

15. A machine-readable storage medium having a computer program as claimed in claim 14 stored thereon.

Citation Information

Patent Citations

  • Finely divided, expandable, self extinguishing styrene polymers

    EP0014764A1