DE102021005227A1 - File generator for checking a file for a security system for a vehicle - Google Patents

File generator for checking a file for a security system for a vehicle Download PDF

Info

Publication number
DE102021005227A1
DE102021005227A1 DE102021005227.7A DE102021005227A DE102021005227A1 DE 102021005227 A1 DE102021005227 A1 DE 102021005227A1 DE 102021005227 A DE102021005227 A DE 102021005227A DE 102021005227 A1 DE102021005227 A1 DE 102021005227A1
Authority
DE
Germany
Prior art keywords
file
output
input
formal
generator
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102021005227.7A
Other languages
German (de)
Inventor
Rainer Straschill
Tobias Schäfer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
FEV Europe GmbH
Original Assignee
FEV Europe GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by FEV Europe GmbH filed Critical FEV Europe GmbH
Publication of DE102021005227A1 publication Critical patent/DE102021005227A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/51Source to source

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

Die Erfindung betrifft ein Dateigenerator (11) zum Erzeugen einer Ausgangsdatei (22) zur Überprüfung einer Eingangsdatei (21) für ein Sicherheitssystem (9) eines Fahrzeugs (1), der Dateigenerator (11) aufweisend ein Dateigenerierungsmodul (12) und eine Datenbasis mit Referenzdateien (14), die formale Merkmale aufweisen, wobei das Dateigenerierungsmodul (12) Parameter zum Erzeugen von formalen Merkmalen aufweist und ausgebildet und eingerichtet ist, in Abhängigkeit von der Eingangsdatei (21) und Werten der Parameter die Ausgangsdatei (22) mit funktionellen Merkmalen und zumindest einem formalen Merkmal zu erzeugen, das an zumindest ein formales Merkmal zumindest einer der Referenzdateien (14) angepasst ist, wobei die Eingangsdatei (21) und die Ausgangsdatei (22) jeweils zumindest einen Teil eines jeweiligen Computerprogrammes zur Steuerung des Sicherheitssystems (9) ausbilden und funktionelle Merkmale der Eingangsdatei (21) in ihrer Gesamtheit dieselben Funktionen wie die funktionellen Merkmale der Ausgangsdatei (22) aufweisen.

Figure DE102021005227A1_0000
The invention relates to a file generator (11) for generating an output file (22) for checking an input file (21) for a security system (9) of a vehicle (1), the file generator (11) having a file generation module (12) and a database with reference files (14) that have formal features, wherein the file generation module (12) has parameters for generating formal features and is designed and set up, depending on the input file (21) and values of the parameters, the output file (22) with functional features and at least to generate a formal feature which is adapted to at least one formal feature of at least one of the reference files (14), the input file (21) and the output file (22) each forming at least part of a respective computer program for controlling the security system (9) and functional characteristics of the input file (21) in their entirety the same functions as the functional Have characteristics of the output file (22).
Figure DE102021005227A1_0000

Description

Die Erfindung betrifft einen Dateigenerator zum Erzeugen einer Ausgangsdatei zur Überprüfung einer Datei für ein Sicherheitssystems für ein Fahrzeug und ein Verfahren zum Erzeugen einer Ausgangsdatei zur Überprüfung einer Datei für ein Sicherheitssystem eines Fahrzeugs.The invention relates to a file generator for generating an output file for checking a file for a security system for a vehicle and a method for generating an output file for checking a file for a security system for a vehicle.

Assistenzsysteme für ein autonomes Fahren von Fahrzeugen können Algorithmen aufweisen, die Programmteile zur Steuerung eines Sicherheitssystems eines Fahrzeugs generieren können. Um derartige neu generierte Teile eines Programmcodes überprüfen zu können, können diese Programmteile dekompiliert werden.Assistance systems for autonomous driving of vehicles can have algorithms that can generate program parts for controlling a safety system of a vehicle. In order to be able to check such newly generated parts of a program code, these program parts can be decompiled.

Es wird ein Dateigenerator zum Erzeugen einer Ausgangsdatei zur Überprüfung einer Eingangsdatei für ein Sicherheitssystem eines Fahrzeugs vorgeschlagen. Der Dateigenerator weist ein Dateigenerierungsmodul und eine Datenbasis mit Referenzdateien auf. Die Referenzdateien weisen formale Merkmale auf. Das Dateigenerierungsmodul weist Parameter zum Erzeugen von formalen Merkmalen auf und ist ausgebildet und eingerichtet, in Abhängigkeit von der Eingangsdatei und Werten der Parameter die Ausgangsdatei mit funktionellen Merkmalen und zumindest einem formalen Merkmal zu erzeugen, das an zumindest ein formales Merkmal zumindest einer der Referenzdateien angepasst ist. Die Eingangsdatei und die Ausgangsdatei bilden jeweils zumindest einen Teil eines jeweiligen Computerprogrammes zur Steuerung des Sicherheitssystems aus. Funktionelle Merkmale der Eingangsdatei weisen in ihrer Gesamtheit dieselben Funktionen wie die funktionellen Merkmale der Ausgangsdatei auf.A file generator for generating an output file for checking an input file for a security system of a vehicle is proposed. The file generator has a file generation module and a database with reference files. The reference files have formal characteristics. The file generation module has parameters for generating formal features and is designed and set up to generate the output file with functional features and at least one formal feature, which is adapted to at least one formal feature of at least one of the reference files, depending on the input file and values of the parameters . The input file and the output file each form at least part of a respective computer program for controlling the security system. Overall, functional features of the input file have the same functions as the functional features of the output file.

Die Eingangsdatei bildet bevorzugt vollständig das Computerprogramm zur Steuerung des Sicherheitssystems aus. Die Referenzdateien umfassen bevorzugt Programme oder Teile von Programmen, insbesondere Unterfunktionen und/oder Subroutinen. Die Referenzdateien umfassen insbesondere Text in einer Hochsprache, wie zum Beispiel C, C++, Matlab, Matlab-Simulink oder Fortran, oder in einer Beschreibungssprache, wie zum Beispiel VHDL-x oder Verilog. Die Referenzdateien sind bevorzugt von einem Menschen programmiert. Eine weiterführende Variante umfasst auch eine Ausgestaltung, bei welcher die Referenzdateien maschinell programmiert sind. Die Referenzdateien weisen bevorzugt ebenfalls funktionale Merkmale auf.The input file preferably completely forms the computer program for controlling the security system. The reference files preferably include programs or parts of programs, in particular subfunctions and/or subroutines. In particular, the reference files include text in a high-level language such as C, C++, Matlab, Matlab-Simulink or Fortran, or in a description language such as VHDL-x or Verilog. The reference files are preferably programmed by a human. A further variant also includes an embodiment in which the reference files are machine-programmed. The reference files preferably also have functional features.

Unter dem Begriff „Datei“ wird insbesondere eine Aneinanderreihung von Zeichen verstanden, die auf einem Datenträger oder einem Speichermedium speicherbar ist oder gespeichert ist. Insbesondere kann die Ein- und Ausgangsdatei jeweils einen Text mit Zeichen ausbilden. Die Zeichen umfassen Buchstaben und Ziffern. In einer besonderen Ausgestaltung können die Zeichen auch Bilder oder Diagramme, insbesondere Symbole, wie sie in Flussdiagrammen verwendet werden, aufweisen.The term "file" means in particular a series of characters that can be stored or is stored on a data carrier or a storage medium. In particular, the input and output files can each form a text with characters. The characters include letters and numbers. In a special embodiment, the characters can also have images or diagrams, in particular symbols such as are used in flow charts.

Die Eingangsdatei und/oder die Ausgangsdatei weisen bevorzugt jeweils ein maschinenlesbares Format auf. Die Ein- und Ausgangsdatei bilden jeweils bevorzugt ein Computerprogramm aus, welches kompilierbar ist. Demnach ist es insbesondere möglich, durch ein Kompilieren der Eingangsdatei und der Ausgangsdatei ein erstes ausführbares Programm beziehungsweise ein zweites ausführbares Programm zu erzeugen.The input file and/or the output file each preferably have a machine-readable format. The input and output files each preferably form a computer program that can be compiled. Accordingly, it is possible in particular to generate a first executable program or a second executable program by compiling the input file and the output file.

Ein Prozessor des Sicherheitssystems ist insbesondere ausgebildet und eingerichtet, das erste und zweite ausführbare Programm abzuarbeiten, insbesondere einzulesen und Befehle, die in dem ersten und zweiten ausführbaren Programm enthalten sind, auszuführen.A processor of the security system is designed and set up in particular to process the first and second executable programs, in particular to read them in and to execute commands contained in the first and second executable programs.

Die funktionellen Merkmale der Eingangsdatei umfassen bevorzugt eine Beschreibung sämtlicher Operationen in Textform, die der Prozessor bei einem Ausführen der ersten ausführbaren Datei ausführt. Analog umfassen die funktionellen Merkmale der Ausgangsdatei bevorzugt eine Beschreibung sämtlicher Operationen in Textform, die der Prozessor bei einem Abarbeiten der zweiten ausführbaren Datei ausführt.The functional characteristics of the input file preferably include a textual description of all operations performed by the processor when executing the first executable file. Similarly, the functional features of the output file preferably include a description in text form of all operations that the processor performs when processing the second executable file.

Die funktionellen Merkmale der Eingangsdatei weisen insbesondere in ihrer Gesamtheit dieselben Funktionen wie die funktionellen Merkmale der Ausgangsdatei auf, wenn ein erstes Ergebnis bei einem Ausführen der ersten ausführbaren Datei mithilfe des Prozessors stets dasselbe wie ein zweites Ergebnis bei einem Ausführen der zweiten ausführbaren Datei mithilfe des Prozessors ist. Beispielsweise kann die Eingangsdatei vorsehen, zunächst eine Integration von Werten zu einem Integral durchzuführen und dann einen Funktionswert in Abhängigkeit des Integrals und einer Funktion zu berechnen während die Ausgangsdatei vorsehen kann, zunächst mehrere Funktionswerte jeweils in Abhängigkeit von den einzelnen Werten und der Funktion zu berechnen und im Anschluss daran eine Integration der Funktionswerte durchzuführen. In beiden Fällen kann, je nach Eigenschaft der Funktion, dasselbe Ergebnis erzielt werden. Mit „stets“ ist insbesondere gemeint, dass das erste Ergebnis unabhängig von Werten von Variablen der Ein-bzw. Ausgangsdatei gleich dem zweiten Ergebnis ist.In particular, the functional characteristics of the input file have, in their entirety, the same functions as the functional characteristics of the output file if a first result of executing the first executable file using the processor is always the same as a second result of executing the second executable file using the processor is. For example, the input file can provide for first integrating values into an integral and then calculating a function value as a function of the integral and a function, while the output file can provide for first calculating and calculating a plurality of function values, each depending on the individual values and the function then perform an integration of the function values. In both cases, depending on the property of the function, the same result can be obtained. "Always" means in particular that the first result is independent of the values of variables of the input or output file is equal to the second result.

Gemäß einer Weiterbildung weisen die funktionellen Merkmale der Eingangsdatei insbesondere dieselben Funktionen wie die funktionellen Merkmale der Ausgangsdatei auf, wenn der Prozessor bei dem Ausführen der zweiten und ersten ausführbaren Datei dieselben Befehle ausführt.According to a further development, the functional features of the input file have in particular the same functions as the functional features of the output file when the processor is Running the second and first executable runs the same commands.

Die formalen Merkmale umfassen beispielsweise eine Art und Weise, wie Zeilenabstände, Benennungen von Variablen und/oder eine Unterteilung der funktionellen Merkmale in Unterfunktionen in der Eingangs-, Referenz- bzw. Ausgangsdatei realisiert sind. Die formalen Merkmale können gemäß einer Variante Merkmale sein, die keinen Einfluss auf eine Funktionsweise des Prozessors bei einem Abarbeiten der ersten beziehungsweise zweiten ausführbaren Datei haben. Liegt beispielsweise eine unterschiedliche Aufteilung der funktionellen Merkmale in Unterfunktionen bei der Eingangs- bzw. Ausgangsdatei vor, können nach einem Kompilieren der Eingangs- bzw. Ausgangsdatei dennoch das erste und zweite ausführbare Programm identisch sein.The formal features include, for example, a way in which line spacing, naming of variables and/or a subdivision of the functional features into sub-functions are implemented in the input file, reference file or output file. According to one variant, the formal features can be features that have no influence on the functioning of the processor when processing the first or second executable file. If, for example, there is a different division of the functional features into subfunctions in the input file or output file, the first and second executable program can still be identical after the input file or output file has been compiled.

Gemäß einer weiteren Variante können die formalen Merkmale der Eingangsdatei sich derart von den formalen Merkmalen der Ausgangsdatei unterscheiden, dass eine Art und Weise, wie das erste Ergebnis bei einem Ausführen der ersten ausführbaren Datei und das zweite Ergebnis bei einem Ausführen der zweiten ausführbaren Datei mithilfe des Prozessors erzielbar ist, unterschiedlich ist, das erste Ergebnis jedoch gleich dem zweiten Ergebnis ist. Dies gilt insbesondere für alle möglichen Kombinationen von Werten der Variablen der Ein- bzw. Ausgangsdatei.According to a further variant, the formal characteristics of the input file can differ from the formal characteristics of the output file in such a way that a way in which the first result when executing the first executable file and the second result when executing the second executable file using the processor is achievable is different, but the first result is equal to the second result. This applies in particular to all possible combinations of values of the variables in the input or output file.

Beispielsweise kann eine erste Verkettung von Vorschriften, die zunächst eine Durchführung der oben beschriebenen Integration und im Anschluss daran eine Berechnung des Funktionswertes vorsieht, ein erstes formales Merkmal der Eingangs- oder Ausgangsdatei sein. Genauso kann eine zweite Verkettung von Vorschriften, die zunächst eine Berechnung der einzelnen Funktionswerte und im Anschluss daran die Durchführung der Integration vorsieht, ein zweites formales Merkmal der Eingangs- oder Ausgangsdatei sein. Die erste Verkettung schreibt eine unterschiedliche Reihenfolge von Rechenschritten gegenüber der zweiten Verkettung vor. Ist ein Ergebnis nach Anwendung der ersten beziehungsweise zweiten Verkettung der Vorschriften dasselbe, so kann die jeweilige Reihenfolge der ersten beziehungsweise zweiten Verkettung ein jeweiliges formales Merkmal der Eingangs- beziehungsweise Ausgangsdatei ausbilden. Die Rechenschritte der ersten beziehungsweise zweiten Verkettung der Vorschriften geben jeweils zusammen genommen ein jeweiliges Beispiel für ein funktionelles Merkmal der Eingangs- beziehungsweise Ausgangsdatei an.For example, a first concatenation of specifications, which initially provides for the integration described above to be carried out and then for a calculation of the function value, to be a first formal feature of the input or output file. In the same way, a second concatenation of specifications, which first provides for a calculation of the individual function values and then for the implementation of the integration, can be a second formal feature of the input or output file. The first concatenation prescribes a different order of calculation steps compared to the second concatenation. If a result is the same after applying the first or second chaining of the regulations, the respective order of the first or second chaining can form a respective formal feature of the input or output file. The calculation steps of the first and second linking of the regulations, taken together, each indicate a respective example of a functional feature of the input or output file.

Der Prozessor kann Teil eines Steuergerätes des Sicherheitssystems sein. Das Sicherheitssystem kann beispielsweise ein ABS-, ESP-, Airbag- oder ASR-System sein. Mit einer Steuerung des Sicherheitssystems ist auch eine Regelung des Sicherheitssystems umfasst.The processor can be part of a control unit of the security system. The safety system can be an ABS, ESP, airbag or ASR system, for example. Control of the safety system also includes regulation of the safety system.

Die Ausgangsdatei weist zumindest das eine formale Merkmal auf, das zumindest an das eine formale Merkmal der zumindest einen Referenzdatei angepasst ist. Bevorzugt weist die Ausgangsdatei mehrere formale Merkmale auf, die an mehrere Merkmale zumindest einer der Referenzdateien und bevorzugt von mehreren Referenzdateien angepasst ist. Vorteilhafterweise sind alle formalen Merkmale der Ausgangsdatei an formale Merkmale der Referenzdateien, insbesondere an formale Merkmale einer einzelnen Referenzdatei, angepasst.The output file has at least one formal feature that is at least matched to the one formal feature of the at least one reference file. The output file preferably has a number of formal features which are adapted to a number of features of at least one of the reference files and preferably of a number of reference files. All formal features of the original file are advantageously adapted to formal features of the reference files, in particular to formal features of an individual reference file.

Dadurch dass zumindest das eine formale Merkmal der Ausgangsdatei an zumindest das eine formale Merkmal der zumindest einen Referenzdatei angepasst ist, ist die Ausgangsdatei leichter für einen Menschen, insbesondere Programmierer, der die Ausgangsdatei überprüfen soll, lesbar. Dies erleichtert eine Überprüfung der Eingangsdatei insbesondere dann, wenn die Eingangsdatei von einem Künstlichen Intelligenz (Kl)-Algorithmus generiert ist. Beispielsweise kann eine „ausgerollte“ Schleife in der ersten generierten ausführbaren Datei in der Ausgangsdatei als eine „normale“ Schleife vorliegen. Des Weiteren können Bezeichnungen von Variablen der Eingangsdatei an häufig in den Referenzdateien verwendete Variablennamen angepasst werden. Dadurch, dass die funktionellen Merkmale der Eingangsdatei in ihrer Gesamtheit dieselben Funktionen wie die funktionellen Merkmale der Ausgangsdatei aufweisen, genügt es, zur Überprüfung der Eingangsdatei lediglich die Ausgangsdatei zu überprüfen.Because at least one formal feature of the original file is adapted to at least one formal feature of the at least one reference file, the original file is easier to read for a person, in particular a programmer, who is supposed to check the original file. This makes it easier to check the input file, in particular when the input file is generated by an artificial intelligence (AI) algorithm. For example, an "unrolled" loop in the first generated executable may exist in the output file as a "normal" loop. Furthermore, designations of variables in the input file can be adapted to variable names that are frequently used in the reference files. Due to the fact that the functional features of the input file have the same functions as the functional features of the output file in their entirety, it is sufficient to check the input file only to check the output file.

Des Weiteren kann der vorgeschlagene Dateigenerator auch bei einer Softwareentwicklung, bei welcher mehrere unterschiedliche Programmierer Programme programmieren, verwendet werden. Insbesondere ist es möglich, Namen für Variablen in automatisierter Form zu vereinheitlichen. Des Weiteren ist es möglich, einen strukturellen Aufbau verschiedener Programme, die von unterschiedlichen Programmierern programmiert wurden, zu vereinheitlichen. Ein jeweiliger struktureller Aufbau der Eingangsdatei, der Referenzdatei und der Ausgangsdatei können im Sinne der Erfindung zu den formalen Merkmalen der Eingangsdatei, Referenzdatei beziehungsweise der Ausgangsdatei gehören.Furthermore, the proposed file generator can also be used in software development in which several different programmers program programs. In particular, it is possible to standardize names for variables in an automated manner. Furthermore, it is possible to unify a structural configuration of various programs programmed by different programmers. A respective structural design of the input file, the reference file and the output file can belong to the formal features of the input file, reference file or output file within the meaning of the invention.

In einer weiteren Ausgestaltung ist vorgesehen, dass der Dateigenerator ein erstes Überprüfungsmodul aufweist, das ausgebildet und eingerichtet ist, eine erste Überprüfung, ob die funktionellen Merkmale der Eingangsdatei dieselben Funktionen wie die funktionellen Merkmale der Ausgangsdatei aufweisen, durchzuführen.A further embodiment provides that the file generator has a first checking module that is designed and set up to carry out a first check as to whether the functional features of the input file have the same functions as the functional features of the output file.

Dadurch kann automatisch überprüft werden, dass das erste Ergebnis gleich dem zweiten Ergebnis ist, unabhängig davon, ob der Prozessor die erste oder zweite ausführbare Datei ausführt.This can automatically verify that the first result is equal to the second result, regardless of whether the processor is running the first or second executable.

In einer weiteren Ausgestaltung ist vorgesehen, dass das erste Überprüfungsmodul einen SAT-Löser aufweist und ausgebildet und eingerichtet ist, die erste Überprüfung mithilfe des SAT-Lösers durchzuführen. Mit dem SAT-Löser ist ein Löser gemeint, der beispielsweise überprüfen kann, ob die Eingangsdatei und die Ausgangsdatei, jeweils als der Teil des jeweiligen Computerprogrammes oder als das jeweilige Computerprogramm als Ganzes, erfüllbar sind. Mit „erfüllbar“ ist insbesondere gemeint, ob durch Auswahl einer Kombination von Werten der Variablen, die in der Eingangsdatei beziehungsweise in der Ausgangsdatei enthalten sind, eine lauffähige Anwendung der ersten beziehungsweise zweiten ausführbaren Datei auf dem Prozessor bereitgestellt werden kann. Der Begriff SAT-Löser leitet sich vom englischen „satisfiability“ ab, wobei der Begriff mit „Erfüllbarkeit“ übersetzt werden kann.A further configuration provides that the first checking module has a SAT solver and is designed and set up to carry out the first check using the SAT solver. The SAT solver means a solver that can check, for example, whether the input file and the output file can be fulfilled as part of the respective computer program or as the respective computer program as a whole. “Achievable” means in particular whether an executable application of the first or second executable file can be provided on the processor by selecting a combination of values of the variables contained in the input file or in the output file. The term SAT solver is derived from the English "satisfiability", whereby the term can be translated as "satisfiability".

Der SAT-Löser kann in diesem Sinne ein Entscheidungsproblem lösen. Insbesondere ist der SAT-Löser ausgebildet und eingerichtet zu überprüfen, ob eine aussagenlogische Formel erfüllbar ist. Vorteilhafterweise ist der SAT-Löser ausgebildet und eingerichtet, eine erste aussagenlogische Formel für die Eingangsdatei und eine zweite aussagenlogische Formel für die Ausgangsdatei zu generieren und zu deren Erfüllbarkeit zu überprüfen. Gemäß einer vorteilhaften Weiterbildung ist der SAT-Löser ausgebildet und eingerichtet, eine dritte aussagenlogische Formel zu generieren, die Werte von Variablen der Eingangsdatei mit Werten von Variablen der Ausgangsdatei vergleicht.In this sense, the SAT solver can solve a decision problem. In particular, the SAT solver is designed and set up to check whether a propositional logic formula can be satisfied. The SAT solver is advantageously designed and set up to generate a first propositional formula for the input file and a second propositional formula for the output file and to check whether they can be fulfilled. According to an advantageous development, the SAT solver is designed and set up to generate a third propositional logic formula that compares values of variables in the input file with values of variables in the output file.

Die dritte aussagenlogische Formel ist insbesondere in Form eines zusammenhängenden booleschen Ausdruckes ausgebildet. Der boolesche Ausdruck kann je nachdem, welche Werte die Variablen der Eingangsdatei beziehungsweise der Ausgangsdatei annehmen, den Wert 0 oder 1 annehmen. Bevorzugt bildet der SAT-Solver die dritte aussagenlogische Formel derart, dass deren boolescher Ausdruck den Wert 1 annimmt, falls die funktionellen Merkmale der Eingangsdatei dieselben Funktionen wie die funktionellen Merkmale der Ausgangsdatei aufweisen. Dies gilt insbesondere dann, wenn die dritte aussagenlogische Formel unabhängig von den Werten der Variablen, insbesondere von einer beliebigen Kombination der Werte der Variablen, stets den Wert „1“ annimmt. Ist dies der Fall, kann insbesondere sichergestellt werden, dass der Prozessor beim Abarbeiten der ersten und zweiten ausführbaren Datei dasselbe Ergebnis erzielt.The third propositional formula is in particular in the form of a connected Boolean expression. The boolean expression can have the value 0 or 1, depending on the values that the variables of the input file or the output file take. The SAT solver preferably forms the third propositional logic formula in such a way that its Boolean expression assumes the value 1 if the functional features of the input file have the same functions as the functional features of the output file. This applies in particular if the third propositional formula always has the value “1” regardless of the values of the variables, in particular of any combination of the values of the variables. If this is the case, it can be ensured in particular that the processor achieves the same result when processing the first and second executable file.

In einer weiteren Ausgestaltung ist vorgesehen, dass das erste Überprüfungsmodul einen SMT-Löser aufweist und ausgebildet und eingerichtet ist, die erste Überprüfung mithilfe des SMT-Lösers durchzuführen. Mit dem SMT-Löser ist ein Löser gemeint, der ausgebildet und eingerichtet ist, Methoden der „satisfiability modulo theory“ anzuwenden. Im Vergleich zu dem SAT-Löser kann der SMT-Löser bevorzugt Ausdrücke aufweisen, die komplexe Ausdrücke, insbesondere boolesche Ausdrücke, die bei dem SAT-Löser Verwendung finden, zusammenfassen. Dadurch kann der SMT-Löser auf einer abstrakteren Ebene arbeiten, wodurch Theorien der höheren Mathematik verwendet werden können. Insbesondere können Theorien über die reellen Zahlen, Integerzahlen, Theorien über Datenstrukturen wie zum Beispiel Listen, Felder und Bitvektoren mit Hilfe des SMT-Lösers angewendet werden.A further configuration provides that the first checking module has an SMT solver and is designed and set up to carry out the first check using the SMT solver. The SMT solver means a solver that is trained and set up to apply methods of the "satisfiability modulo theory". Compared to the SAT solver, the SMT solver may preferably have expressions that summarize complex expressions, particularly Boolean expressions used in the SAT solver. This allows the SMT solver to work at a more abstract level, allowing the use of higher mathematics theories. In particular, theories about the real numbers, integers, theories about data structures such as lists, arrays and bit vectors can be applied using the SMT solver.

In einer weiteren Ausgestaltung ist vorgesehen, dass der Dateigenerator ein zweites Überprüfungsmodul aufweist, das ausgebildet und eingerichtet ist, eine Ähnlichkeit zwischen dem formalen Merkmal der Ausgangsdatei und dem zumindest einen formalen Merkmal der zumindest einen Referenzdatei zu bewerten. Das zweite Überprüfungsmodul ist bevorzugt ausgebildet und eingerichtet, eine Metrik zu bestimmen, die einen Grad der Ähnlichkeit zwischen dem formalen Merkmal der Ausgangsdatei und dem zumindest einen formalen Merkmal der zumindest einen Referenzdatei angibt. Insbesondere kann die Metrik eine Ähnlichkeit zwischen einer Gesamtheit aller formalen Merkmale der Ausgangsdatei und mehreren formalen Merkmalen der zumindest einen Referenzdatei, insbesondere mehreren Referenzdateien, angeben.A further embodiment provides that the file generator has a second checking module that is designed and set up to evaluate a similarity between the formal feature of the original file and the at least one formal feature of the at least one reference file. The second verification module is preferably designed and set up to determine a metric that indicates a degree of similarity between the formal feature of the output file and the at least one formal feature of the at least one reference file. In particular, the metric can indicate a similarity between a total of all formal features of the output file and a number of formal features of the at least one reference file, in particular a number of reference files.

Das zweite Überprüfungsmodul kann vorteilhafterweise verwendet werden, um die Ausgangsdatei erneut in Abhängigkeit von der Eingangsdatei zu generieren, wobei jedoch die Werte der Parameter verändert werden. Dadurch kann es gelingen, die formalen Merkmale der Ausgangsdatei noch weiter an die formalen Merkmale der Referenzdateien anzupassen.The second verification module can advantageously be used to regenerate the output file as a function of the input file, but changing the values of the parameters. This makes it possible to further adapt the formal characteristics of the source file to the formal characteristics of the reference files.

In einer weiteren Ausgestaltung ist vorgesehen, dass der Dateigenerator ein Adaptationsmodul aufweist, das ausgebildet und eingerichtet ist, die Werte der Parameter an einen Ausgabewert des zweiten Überprüfungsmoduls anzupassen. Das Adaptionsmodul erlaubt es, eine Anpassung der Werte der Parameter in Abhängigkeit von dem Ausgabewert des zweiten Überprüfungsmoduls vorzunehmen, insbesondere automatisiert durchzuführen.In a further refinement, it is provided that the file generator has an adaptation module which is designed and set up to adapt the values of the parameters to an output value of the second checking module. The adaptation module allows the values of the parameters to be adapted as a function of the output value of the second checking module, in particular in an automated manner.

In einer weiteren Ausgestaltung ist vorgesehen, dass das zweite Überprüfungsmodul in Form eines Diskriminators ausgebildet ist, der ausgebildet und eingerichtet ist, den Ausgabewert als binären Ausgabewert auszugeben und den binären Ausgabewert in Abhängigkeit des formalen Merkmals der Ausgangsdatei zu ermitteln. Beispielsweise kann der binäre Ausgabewert den Wert „1“ annehmen, wenn das formale Merkmal der Ausgangsdatei ähnlich zu zumindest dem einen formalen Merkmal der zumindest einen Referenzdatei ist. Andernfalls nimmt der binäre Ausgabewert bevorzugt den Wert „0“ an. Mithilfe des binären Ausgabewertes ist es möglich, auf einfache Art und Weise zu entscheiden, ob die Werte der Parameter weiter angepasst werden sollen oder nicht.In a further refinement, it is provided that the second checking module is in the form of a discriminator which is designed and set up to output the output value as a binary to output the output value and to determine the binary output value depending on the formal characteristic of the output file. For example, the binary output value can assume the value “1” if the formal feature of the output file is similar to at least one formal feature of the at least one reference file. Otherwise, the binary output value preferably assumes the value "0". With the help of the binary output value, it is possible to easily decide whether the values of the parameters should be further adjusted or not.

In einer weiteren Ausgestaltung ist vorgesehen, dass das Dateigenerierungsmodul und das zweite Überprüfungsmodul ein generatives adversariales Netzwerk (GAN) ausbilden. Diese Ausgestaltung lässt sich besonders einfach realisieren, falls das zweite Überprüfungsmodul in Form eines Diskriminators ausgebildet ist. Das generative adversariale Netzwerk kann es ermöglichen, die formalen Merkmale der Referenzdateien durch ein Training des GANs mithilfe der Referenzdateien in einem unüberwachten Lernen zu erlernen. Dadurch kann unter Umständen darauf verzichtet werden, die formalen Merkmale manuell zu spezifizieren.A further embodiment provides that the file generation module and the second verification module form a generative adversarial network (GAN). This refinement can be implemented particularly easily if the second checking module is designed in the form of a discriminator. The generative adversarial network can allow the formal features of the reference files to be learned by training the GAN using the reference files in unsupervised learning. As a result, it may be possible to dispense with manually specifying the formal characteristics.

Der Ausdruck „Modul“, wie er hierin benutzt wird, beschreibt eine beliebige bekannte oder später entwickelte Hardware, Software, Firmware, Künstliche Intelligenz, Fuzzy-Logik oder Kombination aus einer Hardware, Software, Firmware, Künstliche Intelligenz und/oder Fuzzy-Logik, die in der Lage ist, die mit dem jeweiligen „Modul“ assoziierte Funktionalität auszuführen.The term "module" as used herein describes any known or later developed hardware, software, firmware, artificial intelligence, fuzzy logic or combination of hardware, software, firmware, artificial intelligence and/or fuzzy logic, capable of performing the functionality associated with each "module".

Weiterhin wird ein Verfahren zum Erzeugen einer Ausgangsdatei zur Überprüfung einer Eingangsdatei eines Sicherheitssystems für ein Fahrzeug vorgeschlagen. Das Verfahren weist die folgenden Schritte auf. In einem ersten Schritt wird die Eingangsdatei eingelesen. In einem zweiten Schritt wird die Ausgangsdatei mithilfe eines Dateigenerierungsmoduls in Abhängigkeit von der Eingangsdatei generiert. Die Eingangsdatei und die Ausgangsdatei bilden jeweils zumindest ein Teil eines jeweiligen Computerprogrammes zur Steuerung des Sicherheitssystems aus. Des Weiteren weisen funktionelle Merkmale der Eingangsdatei in ihrer Gesamtheit dieselben Funktionen wie die funktionellen Merkmale der Ausgangsdatei auf. In einem dritten Schritt wird zumindest ein formales Merkmal der Ausgangsdatei an zumindest ein formales Merkmal einer Referenzdatei angepasst. Die Nummerierung der Schritte legt keine Reihenfolge bei einer Abarbeitung der Schritte fest. Insbesondere kann der dritte Schritt gleichzeitig mit dem zweiten Schritt durchgeführt werden. Das formale Merkmal der Referenzdatei kann insbesondere bei einer Formulierung einer Randbedingung bei einer Erzeugung der Ausgangsdatei verwendet werden.Furthermore, a method for generating an output file for checking an input file of a safety system for a vehicle is proposed. The procedure has the following steps. In a first step, the input file is read. In a second step, the output file is generated using a file generation module depending on the input file. The input file and the output file each form at least part of a respective computer program for controlling the security system. Furthermore, functional characteristics of the input file have, in their entirety, the same functions as the functional characteristics of the output file. In a third step, at least one formal feature of the original file is adapted to at least one formal feature of a reference file. The numbering of the steps does not determine the order in which the steps are processed. In particular, the third step can be carried out simultaneously with the second step. The formal feature of the reference file can be used in particular when formulating a boundary condition when generating the output file.

Weiterhin wird ein Computerprogrammprodukt vorgeschlagen. Das Computerprogramm umfasst ein Programm, das, wenn es von einem Computer ausgeführt wird, den Computer veranlasst, das vorgeschlagene Verfahren durchzuführen.Furthermore, a computer program product is proposed. The computer program comprises a program which, when executed by a computer, causes the computer to carry out the proposed method.

Vorteilhafte Weiterbildungen der Erfindung sind in den abhängigen Ansprüchen angegeben. Bevorzugte Ausführungsbeispiele werden anhand der folgenden Figuren näher erläutert. Dabei zeigt schematisch

  • 1 ein Fahrzeug mit einem Steuergerät, einem Sensorsystem und einer Kl-Einheit;
  • 2 einen Dateigenerator zum Erzeugen einer Ausgangsdatei zur Überprüfung einer Eingangsdatei für ein Sicherheitssystem des in 1 gezeigten Fahrzeugs;
  • 3 den in 2 gezeigten Dateigenerator mit einem zweiten Überprüfungsmodul;
  • 4 den in 2 gezeigten Dateigenerator mit einem Dateigenerierungsmodul mit einem Kompilierer und einem Dekompilierer;
  • 5 Schritte eines Verfahrens zum Erzeugen einer Ausgangsdatei zur Überprüfung einer Eingangsdatei für ein Sicherheitssystem des in 1 gezeigten Fahrzeugs.
Advantageous developments of the invention are specified in the dependent claims. Preferred exemplary embodiments are explained in more detail with reference to the following figures. It shows schematically
  • 1 a vehicle with a control unit, a sensor system and an AI unit;
  • 2 a file generator for generating an output file for checking an input file for a security system of the in 1 vehicle shown;
  • 3 the in 2 shown file generator with a second verification module;
  • 4 the in 2 shown file generator with a file generation module with a compiler and a decompiler;
  • 5 Steps of a method for generating an output file for checking an input file for a security system of the in 1 shown vehicle.

1 zeigt ein Fahrzeug 1 mit einem Steuergerät 6, einem Sensorsystem 3 und einer KI-Einheit 2. Das Sensorsystem 3 umfasst bevorzugt mehrere verschiedene Arten von Sensoren, wie beispielsweise ein Lidar-, ein Radar-, und einen Raddrehzahlsensor. Das Sensorsystem 3 ist insbesondere ausgebildet und eingerichtet, eine Verkehrssituation, in der sich das Fahrzeug 1 befindet, zu erfassen. Die Verkehrssituation ist beispielsweise durch eine Anordnung und insbesondere einer Bewegung von Fahrzeugen 4 um das Fahrzeug 1 herum beschreibbar. Weiterhin kann die Verkehrssituation mittels jeweiliger Geschwindigkeitswerte und Beschleunigungswerte der umliegenden Fahrzeuge 4 und einer Geschwindigkeit und einer Beschleunigung des Fahrzeugs 1 beschrieben werden. Die jeweiligen Geschwindigkeits- und Beschleunigungswerte der Fahrzeuge 4 und des Fahrzeugs 1 können als Verkehrsdaten bezeichnet werden und sind mithilfe des Sensorsystems 3 erzeugbar. 1 shows a vehicle 1 with a control unit 6, a sensor system 3 and an AI unit 2. The sensor system 3 preferably includes several different types of sensors, such as a lidar, a radar, and a wheel speed sensor. The sensor system 3 is designed and set up in particular to detect a traffic situation in which the vehicle 1 is located. The traffic situation can be described, for example, by an arrangement and in particular a movement of vehicles 4 around vehicle 1 . Furthermore, the traffic situation can be described using respective speed values and acceleration values of the surrounding vehicles 4 and a speed and an acceleration of the vehicle 1 . The respective speed and acceleration values of vehicles 4 and vehicle 1 can be referred to as traffic data and can be generated using sensor system 3 .

Die Verkehrsdaten werden bevorzugt während der Verkehrssituation mittels einer Auswertungseinheit 5 des Fahrzeugs 1 gespeichert und bevorzugt verarbeitet. Dadurch kann die Verkehrssituation in Form einer Referenzverkehrssituation erfasst und dokumentiert, insbesondere abgespeichert, werden. Analog zu der Referenzverkehrssituation können zu mehreren unterschiedlichen Zeitpunkten weitere Referenzverkehrssituationen mithilfe von weiteren Verkehrsdaten, die analog zu den Verkehrsdaten mithilfe des Sensorsystems 3 erzeugbar sind, erfasst, insbesondere abgespeichert, werden.The traffic data are preferably stored and preferably processed during the traffic situation by means of an evaluation unit 5 of the vehicle 1 . As a result, the traffic situation can be recorded and documented, in particular stored, in the form of a reference traffic situation. Analogous to the reference traffic situation tion, further reference traffic situations can be recorded, in particular stored, at several different points in time using further traffic data, which can be generated analogously to the traffic data using the sensor system 3 .

Die Kl-Einheit 2 ist vorteilhafterweise ausgebildet und eingerichtet, in Abhängigkeit von den Verkehrsdaten und/oder den weiteren Verkehrsdaten ausführbare Dateien oder Teile von ausführbaren Dateien zum Steuern, insbesondere Regeln, eines Sicherheitssystems 9 des Fahrzeugs 1 zu generieren.The AI unit 2 is advantageously designed and set up to generate executable files or parts of executable files for controlling, in particular rules, a safety system 9 of the vehicle 1 as a function of the traffic data and/or the additional traffic data.

Die derart generierten Dateien können von der Kl-Einheit 2 auf das Steuergerät 6 übertragen werden. Bevorzugt ist die Kl-Einheit 2 ausgebildet und eingerichtet, eine erste generierte ausführbare Datei 10 in einem Speicher 7 des Steuergerätes 6 abzuspeichern. Die erste generierte ausführbare Datei 10 kann insbesondere Befehle zum Steuern oder Regeln des Sicherheitssystems 9 mithilfe des Steuergerätes 6 aufweisen. Die Befehle der ersten generierten ausführbaren Datei 10 können insbesondere zum Steuern oder Regeln des Sicherheitssystems 9 bei neuen Verkehrssituationen verwendet werden, die jeweils ähnlich zu einer der Referenzverkehrssituationen sind. Nach einem Detektieren einer der neuen Verkehrssituationen als eine zu einer der Referenzverkehrssituationen ähnlichen Verkehrssituation kann das Steuergerät 6 die Befehle der ersten generierten ausführbaren Datei 10 ausführen, um das Sicherheitssystem 9 zu steuern oder zu regeln. Ein Generieren der ersten ausführbaren Datei 10 kann somit als ein Anlernen oder Adaptieren des Sicherheitssystems 9 während eines Betriebes des Fahrzeugs 1 betrachtet werden.The files generated in this way can be transferred from the AI unit 2 to the control device 6 . The AI unit 2 is preferably designed and set up to store a first generated executable file 10 in a memory 7 of the control unit 6 . The first generated executable file 10 can in particular have commands for controlling or regulating the security system 9 using the control device 6 . The commands of the first generated executable file 10 can be used in particular to control or regulate the safety system 9 in new traffic situations that are each similar to one of the reference traffic situations. After detecting one of the new traffic situations as a traffic situation similar to one of the reference traffic situations, the control device 6 can execute the commands of the first generated executable file 10 in order to control or regulate the security system 9 . Generating first executable file 10 can thus be regarded as training or adapting safety system 9 while vehicle 1 is in operation.

Ein Prozessor 8 des Steuergerätes 6 kann die erste ausführbare Datei 10 in einen Cache des Prozessors 8 laden und abarbeiten. Unter einem Abarbeiten im Sinne der Erfindung wird ein Ausführen von Befehlen, die in der ersten ausführbaren Datei 10 enthalten sind, mittels des Prozessors 8 verstanden. Führt der Prozessor 8 die Befehle der ersten ausführbaren Datei 10 aus, so wird das Sicherheitssystem 9 des Fahrzeugs 1 gesteuert, insbesondere geregelt.A processor 8 of control device 6 can load first executable file 10 into a cache of processor 8 and process it. Processing within the meaning of the invention is understood to mean executing commands contained in the first executable file 10 by means of the processor 8 . If the processor 8 executes the commands of the first executable file 10, then the security system 9 of the vehicle 1 is controlled, in particular regulated.

2 zeigt einen Dateigenerator 11 zum Erzeugen einer Ausgangsdatei 22 zur Überprüfung einer Eingangsdatei 21 für das Sicherheitssystem 9 des Fahrzeugs 1. Gemäß einer Variante des Dateigenerators 11 kann die erste ausführbare Datei 10 die Eingangsdatei 21 sein. 2 shows a file generator 11 for generating an output file 22 for checking an input file 21 for the security system 9 of the vehicle 1. According to a variant of the file generator 11, the first executable file 10 can be the input file 21.

Die erste ausführbare Datei 10 kann mithilfe eines Dekompilierers in eine erste Textdatei konvertiert werden. Die erste Textdatei gibt beispielsweise einen Programmcode in einer Hochsprache, wie beispielsweise C++, wieder. Gemäß eines weiteren Ausführungsbeispiels ist die erste Textdatei die Eingangsdatei 21. Es versteht sich von selbst, dass die erste Textdatei durch ein Kompilieren in ein für den Prozessor 8 lauffähiges Programm überführt werden kann. Somit eignet sich die Eingangsdatei 21 in Form der ersten Textdatei für das Sicherheitssystem 9. Vorteilhafterweise weist der Dateigenerator 11 den Kompilierer auf. Die erste Textdatei wird im Folgenden auch als Eingangstext bezeichnet.The first executable file 10 can be converted into a first text file using a decompiler. The first text file represents, for example, program code in a high-level language such as C++. According to a further exemplary embodiment, the first text file is the input file 21. It goes without saying that the first text file can be converted into a program that the processor 8 can run by compiling. The input file 21 in the form of the first text file is therefore suitable for the security system 9. The file generator 11 advantageously has the compiler. The first text file is also referred to below as the input text.

Die Ausgangsdatei 22 ist bevorzugt ein zweiter Text in einer Hochsprache, wie beispielsweise C++. Der zweite Text wird im Folgenden als Ausgangstext bezeichnet. Möglich ist, dass sich eine Sprache des Eingangstextes von einer Sprache des Ausgangstextes unterscheidet. So können der Eingangstext in der Hochsprache C und der Ausgangstext in der Hochsprache C++ verfasst sein.The output file 22 is preferably a second text in a high-level language such as C++. The second text is referred to below as the source text. It is possible that the language of the input text differs from the language of the source text. The input text can be written in the high-level language C and the source text in the high-level language C++.

Der Dateigenerator 11 weist ein Dateigenerierungsmodul 12 und eine Datenbasis 13 mit Referenzdateien 14 auf. Die Referenzdateien 14 weisen formale Merkmale auf. Das Dateigenerierungsmodul 12 weist Parameter zum Erzeugen von formalen Merkmalen auf und ist ausgebildet und eingerichtet, in Abhängigkeit von der Eingangsdatei 21 und Werten der Parameter die Ausgangsdatei 22 mit funktionalen Merkmalen und zumindest einem formalen Merkmal zu erzeugen. Das formale Merkmal der Ausgangsdatei 22 ist an zumindest ein formales Merkmal zumindest einer Referenzdatei 14.1 der Referenzdateien 14 angepasst.The file generator 11 has a file generation module 12 and a database 13 with reference files 14 . The reference files 14 have formal features. The file generation module 12 has parameters for generating formal features and is designed and set up to generate the output file 22 with functional features and at least one formal feature depending on the input file 21 and values of the parameters. The formal feature of the output file 22 is adapted to at least one formal feature of at least one reference file 14.1 of the reference files 14.

Die Eingangsdatei 21 und die Ausgangsdatei 22 bilden jeweils zumindest einen Teil eines jeweiligen Computerprogrammes, insbesondere ein jeweiliges Computerprogramm, zur Steuerung des Sicherheitssystems 9 aus. Weiterhin weisen die funktionellen Merkmale der Eingangsdatei 21 in ihrer Gesamtheit dieselben Funktionen wie die funktionellen Merkmale der Ausgangsdatei 22 auf.The input file 21 and the output file 22 each form at least part of a respective computer program, in particular a respective computer program, for controlling the security system 9 . Furthermore, the functional features of the input file 21 have the same functions as the functional features of the output file 22 in their entirety.

Das formale Merkmal kann beispielsweise ein Zeilenabstand, eine Schriftgröße, eine Angabe über eine Programmstruktur oder ein Typ einer Funktion oder Unterfunktion sein, wie dieser beziehungsweise diese in der Referenzdatei 14.1 oder in den Referenzdateien 14 verwendet werden. Entsprechend kann durch eine Veränderung eines jeweiligen Wertes eines ersten, zweiten, dritten und/oder vierten Parameters des Dateigenerierungsmoduls 12 ein Zeilenabstand, eine Schriftgröße, eine Angabe über eine Programmstruktur beziehungsweise ein Typ einer Funktion oder Unterfunktion der Ausgangsdatei veränderbar sein. Die Werte des ersten, zweiten, dritten und/oder vierten Parameters werden bevorzugt derart verändert, dass das formale Merkmal der Ausgangsdatei möglichst ähnlich zu dem formalen Merkmal der Referenzdatei 14.1 bzw. den Referenzdateien 14 ist. Ein derartiges Verändern beziehungsweise Anpassen der Werte der Parameter kann in einer einfachen Variante manuell erfolgen.The formal feature can be, for example, a line spacing, a font size, an indication of a program structure or a type of a function or sub-function, such as this or these are used in the reference file 14.1 or in the reference files 14. Correspondingly, by changing a respective value of a first, second, third and/or fourth parameter of the file generation module 12, a line spacing, a font size, an indication of a program structure or a type of a function or sub-function of the output file can be changed. The values of the first, second, third and/or fourth parameters are preferably changed in such a way that the formal feature of the output file is as similar as possible to the forma len feature of the reference file 14.1 or the reference files 14 is. Such a change or adjustment of the values of the parameters can be done manually in a simple variant.

Der Dateigenerator kann zur Erzeugung der Ausgangsdatei 22 in Abhängigkeit der Eingangsdatei 21 einen Dekompilierer aufweisen. In diesem Fall ist die erste ausführbare Datei 10 bevorzugt die Eingangsdatei 21. Der erste, zweite, dritte und/oder vierte Parameter können bei dieser Ausgestaltung Freiheitsgrade des Dekompilierers sein.The file generator can have a decompiler to generate the output file 22 depending on the input file 21 . In this case, the first executable file 10 is preferably the input file 21. In this embodiment, the first, second, third and/or fourth parameters can be degrees of freedom of the decompiler.

2 zeigt weiterhin eine mögliche Ausgestaltung, bei welcher der Dateigenerator 11 ein erstes Überprüfungsmodul 15 aufweist. Das erste Überprüfungsmodul 15 ist ausgebildet und eingerichtet, eine erste Überprüfung durchzuführen. Bei einer Durchführung der ersten Überprüfung überprüft das erste Überprüfungsmodul 15, ob die funktionellen Merkmale der Eingangsdatei 21 in ihrer Gesamtheit dieselben Funktionen wie die funktionellen Merkmale der Ausgangsdatei 22 aufweisen. Vorteilhafterweise weist das erste Überprüfungsmodul 15 einen SMT-Löser auf und ist ausgebildet und eingerichtet, die erste Überprüfung mit Hilfe des SMT-Lösers durchzuführen. 2 also shows a possible embodiment in which the file generator 11 has a first checking module 15 . The first checking module 15 is designed and set up to carry out a first check. When the first check is carried out, the first check module 15 checks whether the functional features of the input file 21 have the same functions as the functional features of the output file 22 in their entirety. The first checking module 15 advantageously has an SMT solver and is designed and set up to carry out the first check using the SMT solver.

Gemäß einer bevorzugten Ausführungsform ist das erste Überprüfungsmodul 15 ausgebildet und eingerichtet, den Eingangstext in einen ersten übersetzten Text und den Ausgangstext in einen zweiten übersetzten Text zu überführen. Der erste und zweite übersetzte Text beschreibt vorteilhafterweise den Eingangstext beziehungsweise den Ausgangstext jeweils in einer Prädikatenlogik erster Ordnung. Vorteilhafterweise ist der SMT-Löser ausgebildet und eingerichtet, anhand des ersten und zweiten übersetzten Textes zu überprüfen, ob die funktionellen Merkmale der Eingangsdatei 21 in ihrer Gesamtheit dieselben Funktionen wie die funktionellen Merkmale der Ausgangsdatei 22 aufweisen.According to a preferred embodiment, the first checking module 15 is designed and set up to convert the input text into a first translated text and the source text into a second translated text. The first and second translated text advantageously describes the input text or the output text in a first-order predicate logic. The SMT solver is advantageously designed and set up to use the first and second translated text to check whether the functional features of the input file 21 have the same functions as the functional features of the output file 22 in their entirety.

Das Dateigenerierungsmodul 12 weist bevorzugt zumindest eine erste Schnittstelle 17 auf, die für eine Eingabe der Werte der Parameter verwendet werden kann. Über die Schnittstelle 17 oder eine weitere Schnittstelle sind bevorzugt Informationen über die formalen Merkmale der Referenzdateien 14 eingebbar. Diese Informationen können beispielsweise Informationen über den Zeilenabstand, die Schriftgröße, die Angabe über die Programmstruktur oder den Typ der Funktion oder Unterfunktion der Referenzdatei 14.1 enthalten.The file generation module 12 preferably has at least one first interface 17, which can be used for entering the values of the parameters. Information about the formal characteristics of the reference files 14 can preferably be entered via the interface 17 or another interface. This information can contain, for example, information about the line spacing, the font size, information about the program structure or the type of function or sub-function of the reference file 14.1.

3 zeigt eine weitere Ausgestaltung des Dateigenerators 11. Komponenten des in 3 gezeigten Dateigenerators 11, die dieselben Bezugszeichen wie Komponenten des in 2 gezeigten Dateigenerators 11 haben, weisen dieselben Funktionen wie die in 2 gezeigten Komponenten auf. Zusätzlich zu der in 2 gezeigten Ausgestaltung weist der Dateigenerator 11 gemäß 3 ein zweites Überprüfungsmodul 18 auf. 3 shows a further embodiment of the file generator 11. Components of the in 3 File generator 11 shown, which has the same reference numbers as components of the in 2 shown file generator 11 have the same functions as those in 2 shown components. In addition to the in 2 shown embodiment, the file generator 11 according to 3 a second verification module 18 on.

Das zweite Überprüfungsmodul 18 ist ausgebildet und eingerichtet, eine Ähnlichkeit zwischen dem formalen Merkmal der Ausgangsdatei 22 und dem zumindest einen formalen Merkmal der zumindest einen Referenzdatei 14.1 zu bewerten. The second verification module 18 is designed and set up to evaluate a similarity between the formal feature of the output file 22 and the at least one formal feature of the at least one reference file 14.1.

Vorteilhafterweise ist das zweite Überprüfungsmodul 18 in Form eines KI-Moduls ausgebildet. Das zweite Überprüfungsmodul 18 kann insbesondere ein neuronales Netz, wie beispielsweise ein Multilayer-Perceptron, und/oder ein faltendes neuronales Netzwerk (CNN) aufweisen. Das zweite Überprüfungsmodul 18 ist bevorzugt derart trainiert, dass es zumindest das formale Merkmal der Referenzdatei 14.1, insbesondere die formalen Merkmale der Referenzdateien 14, detektieren kann. Ein einzelner Trainingsdatensatz zum Trainieren des zweiten Überprüfungsmoduls umfasst vorteilhaft eine der Referenzdateien 14 oder ist mithilfe zumindest einer der Referenzdateien 14 erzeugt. Die Referenzdateien 14 können manuell oder automatisiert erstellt sein. Vorteilhaft wird zu allen Referenzdateien 14 ein jeweiliger Trainingsdatensatz generiert.The second checking module 18 is advantageously designed in the form of an AI module. The second checking module 18 can in particular have a neural network, such as a multilayer perceptron, and/or a convolutional neural network (CNN). The second verification module 18 is preferably trained in such a way that it can detect at least the formal feature of the reference file 14.1, in particular the formal features of the reference files 14. A single training data record for training the second checking module advantageously includes one of the reference files 14 or is generated using at least one of the reference files 14 . The reference files 14 can be created manually or automatically. A respective training data record is advantageously generated for all reference files 14 .

Die formalen Merkmale der jeweiligen Referenzdateien können beispielsweise jeweils mittels eines Trainingsdatenvektors beschrieben werden. Werte des jeweiligen Trainingsdatenvektors können zum Beispiel die Schriftgröße und/oder den Typ der Funktion der entsprechenden Referenzdatei 14 aufweisen. Analog kann das formale Merkmal oder formale Merkmale der Ausgangsdatei 22 mittels eines Prüfdatenvektors beschrieben werden. Werte des jeweiligen Prüfdatenvektors können zum Beispiel die Schriftgröße und/oder den Typ der Funktion der Ausgangsdatei 22 aufweisen.The formal features of the respective reference files can each be described by means of a training data vector, for example. Values of the respective training data vector can have the font size and/or the type of the function of the corresponding reference file 14, for example. Analogously, the formal feature or formal features of the output file 22 can be described using a test data vector. Values of the respective test data vector can have the font size and/or the type of the function of the output file 22, for example.

Das zweite Überprüfungsmodul 18 kann die Ähnlichkeit zwischen dem formalen Merkmal der Ausgangsdatei 22 und dem zumindest einen formalen Merkmal der zumindest einen Referenzdatei 14.1 beispielsweise bewerten, indem das zweite Überprüfungsmodul 18 den kleinsten Abstand zwischen dem Prüfdatenvektor und den jeweiligen Trainingsdatenvektoren bestimmt. Hierzu berechnet das zweite Überprüfungsmodul 18 bevorzugt eine Norm eines jeweiligen Differenzvektors. Die jeweiligen Differenzvektoren können als jeweilige Differenzen zwischen dem Prüfdatenvektor und den jeweiligen Trainingsvektoren gebildet werden. Der jeweilige Abstand kann als Norm der Differenzvektoren berechnet werden. Der kleinste Abstand gibt nur ein sehr einfaches Beispiel an, wie das zweite Überprüfungsmodul 18 eine Metrik bestimmen kann, die ein Maß für die Ähnlichkeit zwischen dem formalen Merkmal der Ausgangsdatei 22 und dem zumindest einen formalen Merkmal der zumindest einen Referenzdatei 14.1 ist.The second verification module 18 can evaluate the similarity between the formal feature of the output file 22 and the at least one formal feature of the at least one reference file 14.1, for example by the second verification module 18 determining the smallest distance between the test data vector and the respective training data vectors. For this purpose, the second checking module 18 preferably calculates a norm of a respective difference vector. The respective difference vectors can be formed as respective differences between the test data vector and the respective training vectors. The respective distance can be calculated as the norm of the difference vectors. The smallest distance only gives a very simple example of how the second verification module 18 can determine a metric that is a measure of the similarity between the formal feature of the Aus transition file 22 and the at least one formal feature of the at least one reference file 14.1.

Praktischerweise kann das KI-Modul mithilfe einer lernenden Vektorquantisierung trainiert werden. Hierbei können sogenannte Codebook-Vektoren mithilfe der Trainingsdatenvektoren erstellt werden. Es können mehrere Codebook-Vektoren für jeweils ein formales Merkmal der Referenzdateien 14 gebildet werden. Bei einer Anwendung des zweiten Überprüfungsmodul 18 kann der Prüfdatenvektor mit den Codebook-Vektoren verglichen werden. Derjenige Codebook-Vektor, der dem Prüfdatenvektor am ähnlichsten ist, kann ein Neuron in dem Überprüfungsmodul 18 aktivieren und dadurch eine Berechnung der Metrik initialisieren.Conveniently, the AI module can be trained using a learning vector quantization. Here, so-called codebook vectors can be created using the training data vectors. A number of codebook vectors can be formed for each one formal feature of the reference files 14 . In an application of the second verification module 18, the test data vector can be compared to the codebook vectors. The codebook vector that most closely resembles the test data vector can activate a neuron in the verification module 18, thereby initiating a calculation of the metric.

In Abhängigkeit von einem Ergebnis einer Bewertung der Ähnlichkeit können die Werte der Parameter des Dateigenerierungsmoduls 12 verändert, insbesondere angepasst, werden. Dies kann gemäß einer einfachen Ausgestaltung auch manuell umgesetzt werden. Das zweite Überprüfungsmodul 18 gibt das Ergebnis der Bewertung in Form eines Ausgabewertes aus. Beispielsweise kann der kleinste Abstand der Ausgabewert des zweiten Überprüfungsmoduls 18 sein.Depending on a result of an evaluation of the similarity, the values of the parameters of the file generation module 12 can be changed, in particular adjusted. According to a simple configuration, this can also be implemented manually. The second checking module 18 outputs the result of the assessment in the form of an output value. For example, the smallest distance can be the output value of the second checking module 18 .

In einer besonderen Ausgestaltung können für ein Training des zweiten Überprüfungsmoduls 18 auch komplementäre Referenzdateien verwendet werden. Die komplementären Referenzdateien können ähnlich wie die Referenzdateien ausgebildet sein, mit dem Unterschied, dass sie nicht die formalen Merkmale der Referenzdateien aufweisen. Die komplementären Referenzdateien können beispielsweise Programme oder Teile von Programmen, insbesondere Unterfunktionen und/oder Subroutinen umfassen. Mithilfe der Referenzdateien 14 und den komplementären Referenzdateien kann das zweite Überprüfungsmodul 18 derart trainiert werden, dass es in einem trainierten Zustand wie ein Diskriminator arbeitet. Die komplementären Referenzdateien weisen bevorzugt formale Merkmale auf, die jeweils unterschiedlich zu allen formalen Merkmalen der Referenzdateien 14 sind.In a special embodiment, complementary reference files can also be used for training the second checking module 18 . The complementary reference files can be designed similarly to the reference files, with the difference that they do not have the formal characteristics of the reference files. The complementary reference files can include, for example, programs or parts of programs, in particular subfunctions and/or subroutines. With the aid of the reference files 14 and the complementary reference files, the second checking module 18 can be trained in such a way that it works like a discriminator in a trained state. The complementary reference files preferably have formal features that are different from all of the formal features of the reference files 14 .

Gemäß einer vorteilhaften Ausgestaltung weist der Dateigenerator 11 ein Adaptionsmodul 19 auf. Das Adaptationsmodul 19 kann in dem Dateigenerierungsmodul 12 integriert sein. Das Adaptationsmodul 19 ist bevorzugt ausgebildet und eingerichtet, die Werte der Parameter in Abhängigkeit des Ausgabewertes des zweiten Überprüfungsmoduls 18 derart anzupassen, dass das formale Merkmal der Ausgangsdatei möglichst ähnlich zu dem formalen Merkmal der Eingangsdatei ist. Das Adaptionsmodul 19 kann beispielsweise einen Algorithmus aufweisen, der ein Gradientenverfahren zur Anpassung der Werte der Parameter in Abhängigkeit des Ausgabewertes des zweiten Überprüfungsmoduls 18 durchführen kann. Der Ausgabewert des zweiten Überprüfungsmoduls 18 kann von dem zweiten Überprüfungsmodul 18 über die Schnittstelle 17 zu dem Adaptionsmodul 19 gesendet werden.According to an advantageous embodiment, the file generator 11 has an adaptation module 19 . The adaptation module 19 can be integrated in the file generation module 12 . The adaptation module 19 is preferably designed and set up to adapt the values of the parameters depending on the output value of the second checking module 18 in such a way that the formal feature of the output file is as similar as possible to the formal feature of the input file. The adaptation module 19 can have an algorithm, for example, which can carry out a gradient method for adapting the values of the parameters depending on the output value of the second checking module 18 . The output value of the second checking module 18 can be sent from the second checking module 18 via the interface 17 to the adaptation module 19 .

Das zweite Überprüfungsmodul 18 ist vorteilhafterweise in Form eines Diskriminators ausgebildet. Der Diskriminator ist ausgebildet und eingerichtet, einen binären Ausgabewert auszugeben und den binären Ausgabewert in Abhängigkeit des formalen Merkmals der Ausgangsdatei 22 zu ermitteln. Beispielsweise kann der binäre Ausgabewert den Wert „1“ annehmen, wenn das zweite Überprüfungsmodul 18 das formale Merkmal der Ausgangsdatei 22 als das zumindest eine formale Merkmal der Referenzdatei 14.1 erkennt. Insbesondere kann der binäre Ausgabewert den Wert „1“ annehmen, wenn die in Abhängigkeit des formalen Merkmals berechnete Metrik als Maß für die Ähnlichkeit einen Schwellwert überschreitet. Ist die Metrik größer als der Schwellwert, kann dies einem „Erkennen“ eines der formalen Merkmale der Referenzdateien 14 mittels des zweiten Überprüfungsmoduls 18 gleichen. Erkennt das zweite Überprüfungsmodul 18 in der Ausgangsdatei 22 keines der formalen Merkmale der Referenzdateien 14, so nimmt der binäre Ausgabewert bevorzugt den Wert „0“ an.The second checking module 18 is advantageously designed in the form of a discriminator. The discriminator is designed and set up to output a binary output value and to determine the binary output value depending on the formal feature of the output file 22 . For example, the binary output value can assume the value “1” if the second checking module 18 recognizes the formal feature of the output file 22 as the at least one formal feature of the reference file 14.1. In particular, the binary output value can assume the value "1" if the metric calculated as a function of the formal feature as a measure of similarity exceeds a threshold value. If the metric is greater than the threshold value, this can be equivalent to “recognition” of one of the formal features of the reference files 14 using the second verification module 18 . If the second checking module 18 does not recognize any of the formal features of the reference files 14 in the output file 22, then the binary output value preferably assumes the value “0”.

Für den Fall, dass das zweite Überprüfungsmodul 18 in Form des Diskriminators ausgebildet ist, kann das zweite Überprüfungsmodul 18 bevorzugt mithilfe der Referenzdateien 14 und den komplementären Referenzdateien trainiert werden. Ein jeweiliges „Label“, das heißt ein jeweiliger Sollwert des Ausgabewertes des zweiten Überprüfungsmoduls 18, wird bei einem Training des zweiten Überprüfungsmoduls 18 bevorzugt gleich „1“ gesetzt, falls das zweite Überprüfungsmodul 18 den Ausgabewert in Abhängigkeit von einer der Referenzdateien 14 als Eingangsgröße des zweiten Überprüfungsmoduls 18 berechnet. Für den Fall, dass das zweite Überprüfungsmodul 18 den Ausgabewert in Abhängigkeit von einer der komplementären Referenzdateien als Eingangsgröße des zweiten Überprüfungsmoduls 18 berechnet, wird bei dem Training der Sollwert des Ausgabewertes gleich „0“ gesetzt.In the event that the second verification module 18 is designed in the form of the discriminator, the second verification module 18 can preferably be trained using the reference files 14 and the complementary reference files. A respective "label", i.e. a respective target value of the output value of the second checking module 18, is preferably set to "1" during training of the second checking module 18 if the second checking module 18 uses the output value as a function of one of the reference files 14 as the input variable of the second verification module 18 is calculated. In the event that the second checking module 18 calculates the output value as a function of one of the complementary reference files as the input variable of the second checking module 18, the target value of the output value is set to “0” during the training.

Ein jeweiliger tatsächlicher berechneter Ausgabewert des zweiten Überprüfungsmoduls 18 wird stets mit dem entsprechenden Sollwert des Ausgabewertes verglichen, jeweils für den Fall das eine der Referenzdateien oder der komplementären Referenzdateien an einem Eingang des zweiten Überprüfungsmoduls 18 anliegt. Werte von Parametern des zweiten Überprüfungsmoduls 18 können in Abhängigkeit einer Abweichung des jeweiligen tatsächlichen berechneten Ausgabewertes von dem entsprechenden Sollwert verändert werden. Diese Werte werden bevorzugt derart verändert, dass eine Summe der Abweichungen, insbesondere eine mittlere Fehlerquadratsumme der Abweichungen, minimiert wird. Das Training des zweiten Überprüfungsmoduls 18 wird bevorzugt solange durchgeführt, bis die mittlere Fehlerquadratsumme unterhalb einer vorgegebenen Grenze liegt.A respective actually calculated output value of the second checking module 18 is always compared with the corresponding target value of the output value, in each case for the case that one of the reference files or the complementary reference files is present at an input of the second checking module 18 . Values of parameters of the second checking module 18 can be changed depending on a deviation of the respective actually calculated output value from the corresponding target value. These values are preferably changed in such a way that a sum of the deviations, in particular a mean square error sum of the deviations, is minimized. The training of the second verification module 18 is preferably carried out until the mean error sum of squares is below a predetermined limit.

Das Dateigenerierungsmodul 12 kann mithilfe des zweiten Überprüfungsmoduls 18 trainiert werden. Bei einem Training des Dateigenerierungsmoduls 12 können weitere Trainingsdateien benutzt werden, die vom Format her gleich der Eingangsdatei 21 sind. Ist beispielsweise die Eingangsdatei 21 die erste generierte ausführbare Datei 10, so sind die weiteren Trainingsdateien auch auf dem Prozessor ausführbare Dateien. Ist beispielsweise die Eingangsdatei 21 die erste Textdatei, so sind die weiteren Trainingsdateien bevorzugt auch Textdateien, die bevorzugt dasselbe Format wie die erste Textdatei aufweisen.The file generation module 12 can be trained using the second verification module 18 . When training the file generation module 12, further training files can be used which are the same as the input file 21 in terms of format. For example, if the input file 21 is the first executable file 10 generated, then the further training files are also executable files on the processor. For example, if the input file 21 is the first text file, then the further training files are preferably also text files, which preferably have the same format as the first text file.

Bei einem Training des Dateigenerierungsmoduls 12 erzeugt das Dateigenerierungsmodul 12 vorteilhaft eine jeweilige Ausgangstrainingsdatei jeweils in Abhängigkeit einer der weiteren Trainingsdateien. Das zweite Überprüfungsmodul 18 erzeugt bevorzugt zu jeder Ausgangstrainingsdatei einen jeweiligen Ausgangstrainingswert. Die jeweiligen Ausgangstrainingswerte berechnet das zweite Überprüfungsmodul 18 in Form der oben genannten Metrik als Maß für die Ähnlichkeit zwischen dem formalen Merkmal der jeweiligen Ausgangstrainingsdatei und dem zumindest einen formalen Merkmal der zumindest einen Referenzdatei 14.1 oder zu den formalen Merkmalen der Referenzdateien 14. Die entsprechende Metrik kann dabei nach einer der oben genannten Varianten berechnet werden. Bevorzugt wird hierbei die gleiche Berechnungsvariante verwendet wie bei einer Bestimmung der Metrik als Maß für die Ähnlichkeit zwischen dem formalen Merkmal der Ausgangsdatei 22 und dem zumindest einen formalen Merkmal der zumindest einen Referenzdatei 14.1 ist.When training the file generation module 12, the file generation module 12 advantageously generates a respective initial training file depending on one of the further training files. The second checking module 18 preferably generates a respective initial training value for each initial training file. The respective output training values are calculated by the second verification module 18 in the form of the above-mentioned metric as a measure of the similarity between the formal feature of the respective output training file and the at least one formal feature of the at least one reference file 14.1 or to the formal features of the reference files 14. The corresponding metric can be calculated according to one of the variants mentioned above. The same calculation variant is preferably used here as when determining the metric as a measure of the similarity between the formal feature of the output file 22 and the at least one formal feature of the at least one reference file 14.1.

Im Anschluss daran können die Werte der Parameter des Dateigenerierungsmoduls 12 an die Ausgangstrainingswerte angepasst werden. Ist beispielsweise das zweite Überprüfungsmodul 18 in Form des Diskriminators ausgebildet, werden die Werte der Parameter des Dateigenerierungsmoduls 12 vorteilhaft derart angepasst, dass die Ausgangstrainingswerte bei einem wiederholten Durchlauf einer Berechnung der Ausgangstrainingswerte Werte nahe „1“ annehmen.Following this, the values of the parameters of the file generation module 12 can be adapted to the initial training values. If, for example, the second checking module 18 is in the form of the discriminator, the values of the parameters of the file generation module 12 are advantageously adjusted in such a way that the initial training values assume values close to “1” in a repeated run of a calculation of the initial training values.

Zur Berechnung einer Veränderung der Werte der Parameter des Dateigenerierungsmoduls 12 können jeweilige partielle Ableitungen von jeweiligen Abweichungen der Ausgangstrainingswerte von dem Wert „1“ nach den entsprechenden Werten der Parameter des Dateigenerierungsmoduls 12 gebildet werden. In diesem Sinne kann ein Backpropagationverfahren angewendet werden, bei welchem Werte der partiellen Ableitungen anhand der Werte der Parameter des zweiten Überprüfungsmoduls 18 und der Werte der Parameter des Dateigenerierungsmoduls 12 berechnet werden. Die Werte des zweiten Überprüfungsmoduls 18 bleiben bei diesem Schritt bevorzugt unverändert. Die Werte der Parameter des Dateigenerierungsmoduls 12 werden bevorzugt in Abhängigkeit der Werte der partiellen Ableitungen neu berechnet. Das Training des Dateigenerierungsmoduls 12 wird vorteilhaft solange durchgeführt bis die Ausgangstrainingswerte im Mittel einen zweiten Schwellwert, beispielsweise 0,8, überschreiten.In order to calculate a change in the values of the parameters of the file generation module 12, respective partial derivations of respective deviations of the initial training values from the value “1” can be formed according to the corresponding values of the parameters of the file generation module 12. In this sense, a backpropagation method can be applied, in which values of the partial derivatives are calculated using the values of the parameters of the second verification module 18 and the values of the parameters of the file generation module 12 . The values of the second checking module 18 preferably remain unchanged in this step. The values of the parameters of the file generation module 12 are preferably recalculated depending on the values of the partial derivatives. The training of the file generation module 12 is advantageously carried out until the average initial training values exceed a second threshold value, for example 0.8.

Bevorzugt ist das zweite Überprüfungsmodul 18 in Form eines neuronalen Netzes, beispielsweise eines Multilayer-Perceptrons, ausgebildet. Weiterhin kann das Dateigenerierungsmodul 12 ebenfalls ein neuronales Netz, insbesondere ein Multilayer-Perceptron, aufweisen.The second checking module 18 is preferably in the form of a neural network, for example a multilayer perceptron. Furthermore, the file generation module 12 can also have a neural network, in particular a multilayer perceptron.

Vorzugsweise wirkt das Dateigenerierungsmodul 12 derart mit dem zweiten Überprüfungsmodul 18 zusammen, dass das Dateigenerierungsmodul 12 und das zweite Überprüfungsmodul 18 in Form des Diskriminators zusammen ein Generatives Adversariales Netzwerk (GAN) ausbilden.The file generation module 12 preferably interacts with the second verification module 18 in such a way that the file generation module 12 and the second verification module 18 in the form of the discriminator together form a generative adversarial network (GAN).

4 zeigt weiterhin eine weitere Ausgestaltung des Dateigenerators 11, bei welcher das Dateigenerierungsmodul 12 einen Kompilierer 41 und einen Dekompilierer 42 aufweist. Das Dateigenerierungsmodul 12 ist bei dieser Ausgestaltung ausgebildet und eingerichtet, mithilfe des Kompilierers 41 und in Abhängigkeit von der Eingangsdatei 21 eine kompilierte Datei 23 zu erzeugen und mithilfe des Dekompilierers 42 und in Abhängigkeit der kompilierten Datei 23 die Ausgangsdatei 22 zu erzeugen. Diese Ausgestaltung kann vorteilhaft dann verwendet werden, wenn die Eingangsdatei 21 ein Programmcode in einer Hochsprache, wie beispielsweise C++, ist. Die Eingangsdatei 21 kann insbesondere von einem Programmierer, d.h. einem Menschen, programmiert sein. Der Dekompilierer kann ein Dekompilierer nach dem Stand der Technik mit Freiheitsgraden sein. Der erste, zweite, dritte und/oder vierte Parameter des Dateigenerierungsmoduls 12 können bei dieser Ausgestaltung wie oben beschrieben ein entsprechender erster, zweiter, dritter beziehungsweise vierter Parameter des Dekompilierers sein. Eine Verwendung des Kompilierers 41 ermöglicht es, den Dekompilierer 42 zu benutzten, wenn die Eingangsdatei 21 als Text in einer Hochsprache vorliegt. Möglich ist, dass für ein Training des Dekompilierers 42 und/oder des Kompilierers 41 der Dekompilierer 42 und der Kompilierer 41 zusammen einen Autoencoder bilden. In diesem Fall werden während des Trainings des Dekompilierers 42 und/oder des Kompilierers 41 die Freiheitsgrade des Dekompilierers 42 nicht genutzt. Dies bedeutet, dass Werte von Parametern, die diese Freiheitsgrade realisieren, während diesem Training bevorzugt konstant bleiben. 4 FIG. 12 also shows a further embodiment of the file generator 11, in which the file generation module 12 has a compiler 41 and a decompiler 42. In this configuration, the file generation module 12 is designed and set up to generate a compiled file 23 using the compiler 41 and depending on the input file 21 and to generate the output file 22 using the decompiler 42 and depending on the compiled file 23 . This refinement can advantageously be used when the input file 21 is a program code in a high-level language such as C++. The input file 21 can in particular be programmed by a programmer, ie a human being. The decompiler may be a state of the art degrees of freedom decompiler. In this embodiment, as described above, the first, second, third and/or fourth parameters of the file generation module 12 can be a corresponding first, second, third and fourth parameter of the decompiler, respectively. Using the compiler 41 makes it possible to use the decompiler 42 when the input file 21 is text in a high-level language. It is possible for the decompiler 42 and the compiler 41 to form an autoencoder for training the decompiler 42 and/or the compiler 41 . In this In this case, the degrees of freedom of the decompiler 42 are not used during the training of the decompiler 42 and/or the compiler 41 . This means that values of parameters that realize these degrees of freedom preferably remain constant during this training.

Vorteilhafterweise weist der Dateigenerator in einer Weiterbildung dieser Ausgestaltung ein drittes Überprüfungsmodul 43 auf. Das dritte Überprüfungsmodul 43 ist ausgebildet und eingerichtet, eine dritte Überprüfung durchzuführen. Bei einer Durchführung der dritten Überprüfung überprüft das dritte Überprüfungsmodul 43, ob die funktionellen Merkmale der Eingangsdatei 21 in ihrer Gesamtheit dieselben Funktionen wie die funktionellen Merkmale der kompilierten Datei 23 aufweisen. Vorteilhafterweise weist das dritte Überprüfungsmodul 43 einen SMT-Löser auf und ist ausgebildet und eingerichtet, die dritte Überprüfung mit Hilfe des SMT-Lösers durchzuführen.In a further development of this embodiment, the file generator advantageously has a third checking module 43 . The third verification module 43 is designed and set up to carry out a third verification. When the third check is carried out, the third check module 43 checks whether the functional features of the input file 21 have the same functions as the functional features of the compiled file 23 in their entirety. The third checking module 43 advantageously has an SMT solver and is designed and set up to carry out the third check using the SMT solver.

Gemäß einer bevorzugten Ausführungsform ist das dritte Überprüfungsmodul 43 ausgebildet und eingerichtet, die Eingangsdatei 21 in einen weiteren ersten übersetzten Text und die kompilierte Datei 23 in einen weiteren zweiten übersetzten Text zu überführen. Der weitere erste und zweite übersetzte Text beschreibt vorteilhafterweise einen Text der Eingangsdatei 21 beziehungsweise einen Inhalt der kompilierten Datei 23 jeweils in einer Prädikatenlogik erster Ordnung. Vorteilhafterweise ist der SMT-Löser ausgebildet und eingerichtet, anhand des weiteren ersten und zweiten übersetzten Textes zu überprüfen, ob die funktionellen Merkmale der Eingangsdatei 21 in ihrer Gesamtheit dieselben Funktionen wie die funktionellen Merkmale der kompilierten Datei 23 aufweisen.According to a preferred embodiment, the third checking module 43 is designed and set up to convert the input file 21 into a further first translated text and the compiled file 23 into a further second translated text. The further first and second translated text advantageously describes a text of the input file 21 or a content of the compiled file 23 in a first-order predicate logic. The SMT solver is advantageously designed and set up to use the further first and second translated text to check whether the functional features of the input file 21 have the same functions as the functional features of the compiled file 23 in their entirety.

5 zeigt Schritte eines Verfahrens zum Erzeugen der Ausgangsdatei 22 zur Überprüfung der Eingangsdatei 21 des Sicherheitssystems 9 für das Fahrzeug 1. Das Verfahren weist die folgenden Schritte auf. In einem ersten Schritt 501 wird die Eingangsdatei 21 eingelesen. In einem zweiten Schritt 502 wird die Ausgangsdatei 22 mithilfe des Dateigenerierungsmoduls 12 in Abhängigkeit von der Eingangsdatei 21 generiert. Die Eingangsdatei 21 und die Ausgangsdatei 22 bilden jeweils zumindest ein Teil eines jeweiligen Computerprogrammes zur Steuerung des Sicherheitssystems 9 aus. Des Weiteren weisen funktionelle Merkmale der Eingangsdatei 21 in ihrer Gesamtheit dieselben Funktionen wie die funktionellen Merkmale der Ausgangsdatei 22 auf. In einem dritten Schritt 503 wird zumindest ein formales Merkmal der Ausgangsdatei 22 an zumindest ein formales Merkmal der Referenzdatei 14.1 angepasst. 5 shows steps of a method for generating the output file 22 for checking the input file 21 of the security system 9 for the vehicle 1. The method has the following steps. In a first step 501, the input file 21 is read. In a second step 502, the output file 22 is generated using the file generation module 12 as a function of the input file 21. The input file 21 and the output file 22 each form at least part of a respective computer program for controlling the security system 9 . Furthermore, functional features of the input file 21 have the same functions as the functional features of the output file 22 in their entirety. In a third step 503, at least one formal feature of the output file 22 is adapted to at least one formal feature of the reference file 14.1.

Claims (10)

Dateigenerator (11) zum Erzeugen einer Ausgangsdatei (22) zur Überprüfung einer Eingangsdatei (21) für ein Sicherheitssystem (9) eines Fahrzeugs (1), der Dateigenerator (11) aufweisend ein Dateigenerierungsmodul (12) und eine Datenbasis mit Referenzdateien (14), die formale Merkmale aufweisen, wobei das Dateigenerierungsmodul (12) Parameter zum Erzeugen von formalen Merkmalen aufweist und ausgebildet und eingerichtet ist, in Abhängigkeit von der Eingangsdatei (21) und Werten der Parameter die Ausgangsdatei (22) mit funktionellen Merkmalen und zumindest einem formalen Merkmal zu erzeugen, das an zumindest ein formales Merkmal zumindest einer der Referenzdateien (14) angepasst ist, wobei die Eingangsdatei (21) und die Ausgangsdatei (22) jeweils zumindest einen Teil eines jeweiligen Computerprogrammes zur Steuerung des Sicherheitssystems (9) ausbilden und funktionelle Merkmale der Eingangsdatei (21) in ihrer Gesamtheit dieselben Funktionen wie die funktionellen Merkmale der Ausgangsdatei (22) aufweisen.File generator (11) for generating an output file (22) for checking an input file (21) for a security system (9) of a vehicle (1), the file generator (11) having a file generation module (12) and a database with reference files (14), which have formal features, wherein the file generation module (12) has parameters for generating formal features and is designed and set up to assign the output file (22) with functional features and at least one formal feature as a function of the input file (21) and values of the parameters that is adapted to at least one formal feature of at least one of the reference files (14), the input file (21) and the output file (22) each forming at least part of a respective computer program for controlling the security system (9) and functional features of the input file (21) have the same overall functionality as the functional characteristics of the source file (22) have. Dateigenerator (11) nach Anspruch 1, wobei der Dateigenerator (11) ein erstes Überprüfungsmodul (15) aufweist, das ausgebildet und eingerichtet ist, eine erste Überprüfung, ob die funktionellen Merkmale der Eingangsdatei (21) dieselben Funktionen wie die funktionellen Merkmale der Ausgangsdatei (22) aufweisen, durchzuführen.File generator (11) after claim 1 , wherein the file generator (11) has a first checking module (15) which is designed and set up to carry out a first check as to whether the functional features of the input file (21) have the same functions as the functional features of the output file (22). Dateigenerator (11) nach Anspruch 2, wobei das erste Überprüfungsmodul (15) einen SAT-Löser aufweist und ausgebildet und eingerichtet ist, die erste Überprüfung mithilfe des SAT-Lösers durchzuführen.File generator (11) after claim 2 , wherein the first verification module (15) has a SAT solver and is designed and set up to carry out the first check using the SAT solver. Dateigenerator (11) nach Anspruch 2 oder 3, wobei das erste Überprüfungsmodul einen SMT-Löser aufweist und ausgebildet und eingerichtet ist, die erste Überprüfung mithilfe des SMT-Lösers durchzuführen.File generator (11) after claim 2 or 3 , wherein the first verification module has an SMT solver and is designed and set up to carry out the first check using the SMT solver. Dateigenerator (11) nach einem der vorhergehenden Ansprüche, wobei der Dateigenerator (11) ein zweites Überprüfungsmodul (18) aufweist, das ausgebildet und eingerichtet ist, eine Ähnlichkeit zwischen dem formalen Merkmal der Ausgangsdatei (22) und dem zumindest einen formalen Merkmal der zumindest einen Referenzdatei (14.1) zu bewerten.File generator (11) according to one of the preceding claims, wherein the file generator (11) has a second checking module (18) which is designed and set up to determine a similarity between the formal feature of the output file (22) and the at least one formal feature of the at least one Evaluate reference file (14.1). Dateigenerator (11) nach einem der vorhergehenden Ansprüche, wobei der Dateigenerator (11) ein Adaptationsmodul (19) aufweist, das ausgebildet und eingerichtet ist, die Werte der Parameter an einen Ausgabewert des zweiten Überprüfungsmoduls (18) anzupassen.File generator (11) according to one of the preceding claims, wherein the file generator (11) has an adaptation module (19) which is designed and set up to adapt the values of the parameters to an output value of the second checking module (18). Dateigenerator (11) nach Anspruch 5, wobei das Dateigenerierungsmodul (12) und das zweite Überprüfungsmodul (18) ein generatives adversariales Netzwerk ausbilden.File generator (11) after claim 5 , wherein the file generation module (12) and the second verification module (18) form a generative adversarial network. Dateigenerator (11) nach einem der vorhergehenden Ansprüche, wobei das Dateigenerierungsmodul (12) einen Kompilierer (41) und einen Dekompilierer (42) aufweist und ausgebildet und eingerichtet ist, mithilfe des Kompilierers (41) und in Abhängigkeit von der Eingangsdatei (21) eine kompilierte Datei (23) zu erzeugen und mithilfe des Dekompilierers (42) und in Abhängigkeit der kompilierten Datei (23) die Ausgangsdatei (22) zu erzeugen.File generator (11) according to one of the preceding claims, wherein the file generation module (12) has a compiler (41) and a decompiler (42) and is designed and set up using the compiler (41) and depending on the input file (21) a to generate the compiled file (23) and to generate the output file (22) using the decompiler (42) and depending on the compiled file (23). Verfahren zum Erzeugen einer Ausgangsdatei (22) zur Überprüfung einer Eingangsdatei (21) für ein Sicherheitssystem (9) eines Fahrzeugs (1) mit den folgenden Schritten: - Einlesen der Eingangsdatei (21); - Generieren der Ausgangsdatei (22) mithilfe eines Dateigenerierungsmoduls (12) in Abhängigkeit von der Eingangsdatei (21), wobei die Eingangsdatei (21) und die Ausgangsdatei (22) jeweils zumindest einen Teil eines jeweiligen Computerprogrammes zur Steuerung des Sicherheitssystems (9) ausbilden und funktionelle Merkmale der Eingangsdatei (21) in ihrer Gesamtheit dieselben Funktionen wie die funktionellen Merkmale der Ausgangsdatei (22) aufweisen; - Anpassen zumindest eines formalen Merkmals der Ausgangsdatei (22) an zumindest ein formales Merkmal einer Referenzdatei (14.1).Method for generating an output file (22) for checking an input file (21) for a security system (9) of a vehicle (1) with the following steps: - Reading in the input file (21); - Generating the output file (22) using a file generation module (12) depending on the input file (21), the input file (21) and the output file (22) each forming at least part of a respective computer program for controlling the security system (9) and functional features of the input file (21) as a whole have the same functions as the functional features of the output file (22); - Adapting at least one formal feature of the output file (22) to at least one formal feature of a reference file (14.1). Computerprogrammprodukt, umfassend ein Programm, das, wenn es von einem Computer ausgeführt wird, den Computer veranlasst, ein Verfahren nach Anspruch 9 durchzuführen.A computer program product comprising a program which, when executed by a computer, causes the computer to perform a method claim 9 to perform.
DE102021005227.7A 2020-11-27 2021-10-19 File generator for checking a file for a security system for a vehicle Pending DE102021005227A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102020007244.5A DE102020007244A1 (en) 2020-11-27 2020-11-27 File generator for checking a file for a security system for a vehicle
DE102020007244.5 2020-11-27

Publications (1)

Publication Number Publication Date
DE102021005227A1 true DE102021005227A1 (en) 2022-06-02

Family

ID=74239639

Family Applications (2)

Application Number Title Priority Date Filing Date
DE102020007244.5A Withdrawn DE102020007244A1 (en) 2020-11-27 2020-11-27 File generator for checking a file for a security system for a vehicle
DE102021005227.7A Pending DE102021005227A1 (en) 2020-11-27 2021-10-19 File generator for checking a file for a security system for a vehicle

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE102020007244.5A Withdrawn DE102020007244A1 (en) 2020-11-27 2020-11-27 File generator for checking a file for a security system for a vehicle

Country Status (1)

Country Link
DE (2) DE102020007244A1 (en)

Also Published As

Publication number Publication date
DE102020007244A1 (en) 2021-02-18

Similar Documents

Publication Publication Date Title
EP3701433B1 (en) Method, device and computer program for developing a deep neural network
WO2007060134A1 (en) Method and apparatus for determination of a model parameter of a reference vehicle model
DE102018208763A1 (en) Method, apparatus and computer program for operating a machine learning system
EP1715352A2 (en) Method and apparatus for diagnosing failures in a mechatronic system
DE102019124018A1 (en) Method for optimizing tests of control systems for automated vehicle dynamics systems
WO2021058223A1 (en) Method for applying automated driving functions efficiently and in a simulated manner
WO2020126597A1 (en) Method, computer program, machine-readable storage medium, and device for data prediction
DE102021206880A1 (en) Method and device for the optimal parameterization of a driving dynamics control system for vehicles
WO2020187591A1 (en) Method and device for controlling a robot
DE102021202813A1 (en) Method, device and computer program for an uncertainty assessment of an image classification
DE102018209250A1 (en) Control device, method for controlling a control device, computer-readable storage medium and control system
DE102018209108A1 (en) Fast fault analysis for machine learning technical devices
EP4285295A1 (en) Method for estimating a vehicle parameter for the operation of a vehicle
DE102021110309A1 (en) Method for modeling human driving behavior for training motion controllers based on a neural network
DE102020105783A1 (en) Method of creating a reduced neural network
DE102021005227A1 (en) File generator for checking a file for a security system for a vehicle
DE102018207220A1 (en) A method, apparatus and computer program for detecting a calculation error or a malfunction
DE102018125712A1 (en) Driving support method for a vehicle
DE102021200789A1 (en) Computer-implemented method and device for manipulation detection for exhaust aftertreatment systems using artificial intelligence methods
WO2022135959A1 (en) Device for a robust classification and regression of time sequences
WO2021089499A1 (en) Method and system for checking an automated driving function by reinforcement learning
DE102013200932B4 (en) Method and device for monitoring a function of an engine control unit for use in an engine system with an internal combustion engine
DE102018203137A1 (en) Method, device and computer program for operating an at least partially autonomous vehicle
DE102022203386B4 (en) Control method, control system, motor vehicle, computer program product and computer-readable medium
DE102019128115B4 (en) Vehicle model for longitudinal dynamics

Legal Events

Date Code Title Description
R084 Declaration of willingness to licence