DE102005049657A1 - Verfahren zur automatischen Generierung eines Computerprogramms - Google Patents

Verfahren zur automatischen Generierung eines Computerprogramms Download PDF

Info

Publication number
DE102005049657A1
DE102005049657A1 DE200510049657 DE102005049657A DE102005049657A1 DE 102005049657 A1 DE102005049657 A1 DE 102005049657A1 DE 200510049657 DE200510049657 DE 200510049657 DE 102005049657 A DE102005049657 A DE 102005049657A DE 102005049657 A1 DE102005049657 A1 DE 102005049657A1
Authority
DE
Germany
Prior art keywords
program module
main program
main
parameters
module
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.)
Withdrawn
Application number
DE200510049657
Other languages
English (en)
Inventor
Wolfgang Dr. Reinelt
Christian Lundquist
Samuel Malinen
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.)
Robert Bosch Automotive Steering GmbH
Original Assignee
ZF Lenksysteme 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 ZF Lenksysteme GmbH filed Critical ZF Lenksysteme GmbH
Priority to DE200510049657 priority Critical patent/DE102005049657A1/de
Publication of DE102005049657A1 publication Critical patent/DE102005049657A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1487Generic software techniques for error detection or fault masking using N-version programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/187Voting techniques
    • G06F11/188Voting techniques where exact match is not required

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zur automatischen Generierung eines Computerprogramms zur Überwachung wenigstens eines Hauptprogrammmoduls, mit wenigstens einem Entscheidungsprogrammmodul und wenigstens einem diversitären Programmmodul. Eine vorgegebene, die Funktion des Hauptprogrammmoduls repräsentativ beschreibende Anzahl von Messdatensätzen (DS) mit Eingangswerten und zugehörigen Ausgangswerten des Hauptprogrammmoduls liegen als Eingabe vor. In einem ersten Verfahrensschritt (1) wird die Modellklasse für das diversitäre Programmmodul mittels einer Systemidentifikation des Hauptprogrammmoduls anhand der Messdatensätze (DS) bestimmt. In einem zweiten Verfahrensschritt (2) werden die Parameter für das diversitäre Programmmodul mit der in dem ersten Verfahrensschritt (1) bestimmten Modellklasse über eine Schätzung anhand der Messdatensätze (DS) ermittelt. In einem dritten Verfahrensschritt (3) werden die Parameter des Entscheidungsprogrammmoduls über ein statistisches Modell, welches aus Abweichungen zwischen Ausgangswerten fehlerfreier Messdatensätze (DS) des diversitären Programmmoduls und des Hauptprogrammmoduls hergeleitet wird, bestimmt. In einem vierten Verfahrensschritt (4) werden die Programmcodemittel für das Computerprogramm zur Überwachung des wenigstens einen Hauptprogrammmoduls mit dem diversitären Programmmodul und dem Entscheidungsprogrammmodul anhand der jeweils bestimmten Parameter generiert.

Description

  • Die Erfindung betrifft ein Verfahren zur automatischen Generierung eines Computerprogramms zur Überwachung wenigstens eines Hauptprogrammmoduls mit wenigstens einem Entscheidungsprogrammmodul und wenigstens einem diversitären Programmmodul. Die Erfindung betrifft ebenfalls ein Computerprogramm mit Programmcodemitteln, um ein derartiges Verfahren durchzuführen.
  • Elektronische Systeme mit hoher Sicherheitseinstufung, insbesondere elektronisch geregelte Lenksysteme, müssen teilweise diversitär bzw. diversitär redundant ausgeführt werden, wenn die zugehörige Hardwareplattform keine genügend hohe Sicherheit bietet. Entsprechende Sicherheitsnormen sind in „IEC61508: Functional Safety of E/E/PES Systems. International Electrotechnical Commission IEC, Geneve, Switzerland, 1998" angegeben. Diversitär bedeutet nachfolgend, dass ein einzelner zufälliger Hardwarefehler nicht die eigentliche Funktion, d. h. die Hauptfunktion und die diversitäre Funktion derart verfälschen darf, dass ein sicherheitsrelevanter Zustand des Systems entsteht. Zur Erhöhung der Ausfallsicherheit, werden diversitäre Systeme mehrfach ausgelegt (Redundanz), allerdings werden bewusst verschiedene Realisierungen und keine identischen Einzelsysteme verwendet. Insbesondere sollen auch zufällige Hardwarefehler durch einen sogenannten Voter entdeckt und entsprechend gehandelt bzw. eine Warnmeldung oder Fehlermeldung ausgegeben werden.
  • Um Diversität zu erreichen sind folgende Möglichkeiten bekannt:
    • 1. Hardware-Diversität: derselbe Algorithmus wird auf mehreren verschiedenen Prozessoren gerechnet (auch redundantes Rechnen genannt);
    • 2. Algorithmische Diversität: zur Berechnung einer Funktion werden unterschiedliche Berechnungsverfahren angewendet (beispielsweise Sinus-Berechnung);
    • 3. Datenstrukturen-Diversität: Verwendung von Listen anstatt Arrays oder Verwendung von Integer- anstatt von Float-Datenstrukturen;
    • 4. Funktionale Diversität: Verschiedene physikalische Gesetzmäßigkeiten werden zugrunde gelegt, d. h. beispielsweise werden Größen gemessen und gleichzeitig berechnet;
    • 5. Verwendung unterschiedlicher Arten der Spezifikation;
    • 6. Verwendung unterschiedlicher Compiler;
    • 7. Verwendung unterschiedlicher Basis-Software, insbesondere unterschiedlicher Betriebssysteme;
    • 8. Programmierung und Entwurf von Software durch unterschiedliche Personen;
    • 9. Einsatz unterschiedlicher Entwurfkonzepte;
    • 10. Implementierung in unterschiedlichen Programmiersprachen.
  • Nachweisbar sind grundsätzlich nur die Ansätze gemäß den Ziffern 1. bis 4. Die übrigen Maßnahmen 5. bis 10. sind eher von untergeordneter Bedeutung bzw. geringerer Güte, sodass sie allenfalls in Kombination herangezogen werden könnten. Ansatz 1 (Hardware-Diversität) wirkt sich negativ auf den Kostenfaktor und auf den Bauraumbedarf aus. Ansatz 3 (Algorithmische Diversität) ist als alleinige Maßnahme nur bedingt einsetzbar, da beispielsweise Integer- und Floatdatenstrukturen auf Rechnern zumeist gemeinsame Register oder dergleichen benutzen, wodurch die Diversität abgeschwächt wird.
  • Ansatz 4 (Funktionale Diversität) zeichnet sich durch eine hohe Güte aus, ist jedoch in der Entwicklung sehr aufwändig. Zum einen ist die Entwicklung eines funktional unterschiedlichen Algorithmus in der Regel schwierig, da unterschiedliche Entwickler mit derselben Ausbildung unabhängig voneinander häufig dieselben Ergebnisse erarbeiten. Des weiteren ist die Inbetriebnahme im System ebenfalls kritisch, denn einerseits sollen die Abschaltgrenzen, welche vom Sicherheitskonzept vorgeschrieben werden, eingehalten werden, während andererseits gerade in frühen Entwicklungsphasen eine gewisse Systemverfügbarkeit gewährleistet sein sollte. Darüber hinaus ist nachteilig, dass bei einer Änderung der Hauptfunktion die diversitäre Funktion manuell angepasst, mit entsprechenden Parametern versehen und in Betrieb genommen werden muss.
  • Der vorliegenden Erfindung liegt daher die Aufgabe zugrunde, ein Verfahren und ein Computerprogramm der eingangs erwähnten Art zu schaffen, welche die Nachteile des Standes der Technik vermeiden, insbesondere eine einfache Entwicklung und Anwendung diversitärer Programmmodule in sicherheitskritischen elektronischen Systemen ermöglichen.
  • Diese Aufgabe wird erfindungsgemäß durch die in Anspruch 1 genannten Merkmale gelöst.
  • Durch die erfindungsgemäßen Maßnahmen wird in einfacher und vorteilhafter Weise ein Verfahren bereitgestellt, welches eine wenigstens halbautomatische Modellklassenauswahl und ein automatisches Versehen einer zu einer Hauptfunktion bzw. zu einem Hauptprogrammmodul diversitären Funktion bzw. Programmmodul mit Parametern, basierend auf vorhandenen repräsentativen Messdaten (mit Eingangs- und Ausgangswerten) der Hauptfunktion, ermöglicht. Das Computerprogramm zur Überwachung des Hauptprogrammmoduls, welches ein diversitäres Programmmodul und ein Entscheidungsprogrammmodul bzw. einen Voter aufweist, das den Unterschied der Ausgangswerte von Hauptpfad und diversitärem Pfad beurteilt, wird automatisch generiert. Dabei wird in einem ersten Verfahrensschritt die Modellklasse für das diversitäre Programmmodul mittels einer Systemidentifikation des Hauptprogrammmoduls anhand der Messdatensätze bestimmt. Methoden der Systemidentifikation sind in „Lennart Ljung: System Identification – Theory For the User, 2nd ed, PTR Prentice Hall, Upper Saddle River, N.J., 1999" beschrieben. Die Modellklasse wird automatisch geschätzt bzw. gewählt. In einem zweiten Verfahrensschritt werden die Parameter bzw. Koeffizienten für das diversitäre Programmmodul mit der in dem ersten Verfahrensschritt bestimmten Modellklasse über eine Schätzung anhand der Messdatensätze ermittelt. In einem dritten Verfahrensschritt werden die Parameter des Voters über ein statistisches Modell, welches aus Abweichungen zwischen Ausgangswerten fehlerfreier Messdatensätze des diversen Programmmoduls und des Hauptprogrammmoduls hergeleitet wird, bestimmt. In dem dritten Verfahrensschritt sind bereits ein Hauptprogrammmodul und ein diversitäres Programmmodul, die im entsprechenden Arbeitsbereich ähnlich funktionieren, gegeben. Der Voter wird nun an diese Situation angepasst, indem Messdatensätze ohne Fehler ausgewählt werden, für welche jeweils die Abweichung zwischen beiden Modulen in ein statistisches Modell aufgenommen wird (z. B. ein Histogramm, eine adaptierte Normalverteilung oder dergleichen). Aufgrund dieser Statistik werden die Parameter des Voters gewählt. Unter den Parametern befindet sich auch die Wahrscheinlichkeit für einen Fehlalarm. In einem vierten Verfahrensschritt werden die Programmcodemittel für das Computerprogramm zur Überwachung des wenigstens einen Hauptprogrammmoduls mit dem diversitären Programmmodul und dem Voter anhand der jeweils bestimmten Parameter bzw. Modellklassen generiert. Zuvor wird das diversitäre Programmmodul mittels der Datensätze, die der Validierung des Programmcodes des Hauptprogrammmoduls dienen, überprüft bzw. validiert. Somit liegt ein validiertes diversitäres Programmmodul vor, welches in allen Arbeitsbereichen des Hauptprogrammmoduls diesem zwar hinreichend nahe ist, jedoch nicht zu jedem Zeitpunkt die Anforderung an die maxi mal erlaubte Abweichung erfüllt. Des weiteren wird der Voter ebenfalls vor der Generierung mit Datensätzen, welche nun auch Fehler enthalten, validiert.
  • Eine wichtige Vorraussetzung ist, dass die vorgegebene Anzahl an Messdatensätzen mit Eingangswerten und zugehörigen Ausgangswerten des Hauptprogrammmoduls die Funktionalität des Hauptprogrammmoduls hinreichend genau bzw. repräsentativ beschreibt. Der Voter kann nun im Betrieb die Ausgangswerte des Hauptprogrammmoduls und des diversitären Programmmoduls mittels der Amplitude der Ausgangswerte vergleichen, wobei eine bestimmte Entdeckungszeit für Fehler vorgegeben ist. Anhand des statistischen Modells des Voters kann ermittelt werden, ob die jeweilige Abweichung relevant ist und eine Warnmeldung oder Fehlermeldung ausgegeben wird. Kurzzeitige Abweichungen können entsprechend der Parameter des Voters eventuell innerhalb eines Toleranzbereichs unberücksichtigt bleiben.
  • Vorteilhaft ist es, wenn in dem ersten Verfahrensschritt, falls das Hauptprogrammmodul ein nichtlineares System aufweist, eine Funktionsbeschreibung des Hauptprogrammmoduls wenigstens teilweise vorgegeben wird. Durch die High-Level-Beschreibung (beispielsweise Multiplikation zweier Eingangswerte oder dergleichen) der Hauptfunktion bzw. des Hauptprogrammmoduls gibt der Entwickler eine nicht-lineare Modellklasse vor, da die automatische Ermittlung der Modellklassen im Falle nicht-linearer Systeme zumeist nicht trivial ist. Handelt es sich jedoch mit hinreichend guter Näherung um ein lineares zeitinvariantes System, wird automatisch die Modellklasse geschätzt bzw. ge wählt.
  • In dem zweiten Verfahrensschritt können, falls das Hauptprogrammmodul ein lineares System aufweist, die Parameter für das diversitäre Programmmodul in einfacher Weise über Methoden der linearen Parameterschätzung, insbesondere kleinste Quadrate bzw. Least-Squares-Methoden geschätzt bzw. ermittelt werden, da zumeist ein Rauschen oder dergleichen auf den Messwerten liegt. Diese können auch gleichzeitig Auskunft über die Güte der geschätzten Parameter geben.
  • Vorteilhaft ist es, wenn in dem zweiten Verfahrensschritt, falls das Hauptprogrammmodul ein nichtlineares System aufweist, die Parameter für das diversitäre Programmmodul über die Funktionsbeschreibung des Hauptprogrammmoduls ermittelt werden.
  • In einer erfindungsgemäßen Ausgestaltung können in dem zweiten Verfahrensschritt, falls das Hauptprogrammmodul ein nicht-lineares Systems aufweist, die Parameter für das diversitäre Programmmodul über eine Aufteilung in mehrere lineare Modelle für unterschiedliche Arbeitspunkte des Hauptprogrammmoduls ermittelt werden, insbesondere, wenn mehrere unterschiedliche Arten von Messdatensätzen vorliegen.
  • Alternativ können in dem zweiten Verfahrensschritt, falls das Hauptprogrammmodul ein nicht-lineares System aufweist, die Parameter für das diversitäre Programmmodul über eine Linearisierung des nicht-linearen Modells und eine anschließende Parameterschätzung mittels Methoden der linearen Parameterschätzung, insbe sondere Least-Squares-Methoden, ermittelt werden.
  • In vorteilhafter Weise können der erste Verfahrensschritt und/oder der zweite Verfahrensschritt mittels eines neuronalen Netzwerks realisiert werden.
  • Das Hauptprogrammmodul kann ein Steuerungsprogramm für ein elektronisch geregeltes Lenksystem oder Teile davon umfassen. Derartige elektronische Lenksysteme (EPS – Electric Power Steering, AFS – Active Front Steering, Steer by Wire oder dergleichen) sind in höhere Sicherheitsstufen eingeteilt. Für diese Systeme bieten sich die erfindungsgemäßen einfach zu entwickelnden und einfach zu applizierenden Softwaresicherheitsmaßnahmen in vorteilhafter Weise an.
  • Ein Computerprogramm mit Programmcodemitteln, um das erfindungsgemäße Verfahren durchzuführen, ist in Anspruch 10 angegeben.
  • Das erfindungsgemäße Verfahren kann wie folgt angewendet werden:
    • 1. Der Entwicklungsingenieur des Hauptprogrammmoduls bzw. der Hauptfunktion verwendet das erfindungsgemäße Verfahren zur schnellen parallelen Entwicklung des diversitären Funktionsblocks bzw. des diversitären Programmmoduls. Somit wird das erfindungsgemäße Verfahren bzw. das erfindungsgemäße Computerprogramm nach der Fertigstellung des Hauptprogrammmoduls durch den Entwicklungsingenieur ausgeführt. In vorteilhafter Weise entwickelt der Entwicklungsingenieur beide Funktionen mit annähernd gleichem Aufwand. Das erfindungsgemäße Verfahren ist unabhängig vom Hauptprogrammmodul.
    • 2. Das erfindungsgemäße Verfahren kann in eine Entwicklungsumgebung derart integriert sein, dass es nach dem Laden des Hauptprogrammmoduls und der Einspeisung der Messdatensätze das Computerprogramm zur Überwachung des Hauptprogrammmoduls automatisch erzeugt. D. h. das Verfahren wird in einfacher Weise in die Entwicklungssoftware eingebaut, wobei der Hauptpfad geladen wird und ein diversitärer Pfad automatisch mit Hilfe der eingespeisten Messdaten angelegt wird.
    • 3. Der Computer, auf welchem das erfindungsgemäße Computerprogramm abläuft ist ein Steuergerät eines elektronisch geregelten Lenksystems, wobei das Computerprogramm derart in eine Entwicklungsumgebung integriert ist, dass es nach dem Laden des Hauptprogrammmoduls und einer Einspeisung der durch vordefinierte Fahrmanöver erzeugten Messdatensätze das Computerprogramm zur Überwachung eines Hauptprogrammmoduls automatisch erzeugt, wobei das Entscheidungsprogrammmodul bzw. der Voter nachträglich überprüft wird. Bei dieser Alternative wird der diversitäre Pfad automatisch mit Hilfe vordefinierter Fahrmanöver angelegt. Der Voter muss mit fehlerbehafteten Datensätzen nachträglich validiert bzw. überprüft werden.
  • Weitere vorteilhafte Ausgestaltungen und Weiterbildungen ergeben sich aus den restlichen Unteransprüchen. Nachfolgend ist anhand der Zeichnung ein Ausführungsbeispiel der Erfindung prinzipmäßig beschrieben.
  • Es zeigt:
  • 1 eine vereinfachte schematische Darstellung eines Computerprogramms zur Überwachung eines Hauptprogrammmoduls; und
  • 2 ein vereinfachtes Diagramm eines erfindungsgemäßen Verfahrens zur automatischen Generierung des Computerprogramms aus 1.
  • In 1 ist ein Computerprogramm P zur Überwachung eines Hauptprogrammmoduls M mit einem Entscheidungsprogrammmodul bzw. Voter V und einem diversitären Programmmodul N dargestellt. Das Hauptprogrammmodul M und das diversitäre Programmmodul N erhalten dieselben Eingangswerte y1, y2 und liefern jeweils Ausgangswerte x, x ^. Das diversitäre Programmmodul N weist eine funktionale Diversität zu dem Hauptprogrammmodul M auf. In weiteren Ausführungsbeispielen könnte dies auch selbstverständlich eine algorithmische Diversität (beispielsweise stark vereinfacht bei einer Berechnung von x = y1 + y2 durch M, eine Berechnung von x ^ = –((– Y1) – (– y2)) durch N, usw.), eine Datenstrukturen-Diversität (Integer gegenüber Float) oder dergleichen sein. Der Voter V erhält als Eingabe die Ausgangswerte x, x ^ des Hauptprogrammmoduls M und des diversitären Programmmoduls N und entscheidet ob die Abweichung der beiden Ausgangswerte x, x ^ (im einfachsten Fall der Betrag von (x – x ^)) sicherheitsrelevant ist bzw. die Amplitude A innerhalb einer vorgegebenen Entdeckungszeit T einen bestimmten vorgegebenen Wert überschreitet. Sollte dies der Fall sein, könnte ein zufälliger Fehler auf der Hardware auf welcher die Programmmodule M, N ablaufen, aufgetreten sein. Als Ausgabe kann der Vo ter V dann ein Alarmsignal oder dergleichen zur Abschaltung und/oder anderen entsprechenden Maßnahmen ausgeben.
  • In 2 ist vereinfacht ein Diagramm des erfindungsgemäßen Verfahrens zur automatischen Generierung eines Computerprogramms P zur Überwachung eines Hauptprogrammmoduls M mit einem Entscheidungsprogrammmodul V und einem diversitären Programmmodul N dargestellt, wobei eine, die vorgegebene Funktion des Hauptprogrammmoduls M repräsentativ beschreibende, Anzahl von Messdatensätzen DS mit Eingangswerten und zugehörigen Ausgangswerten des Hauptprogrammmoduls M als Eingabe vorliegt. Das erfindungsgemäße Verfahren ist in vorteilhafter Weise selbst als Computerprogramm mit Programmcodemitteln implementiert. In einem ersten Verfahrensschritt 1 wird die Modellklasse für das diversitäre Programmmodul N mittels einer Systemidentifikation des Hauptprogrammmoduls M anhand der vorliegenden Messdatensätze DS bestimmt. Eine Systemidentifikation ist die empirische mathematische Beschreibung der Abhängigkeit einer physikalischen Größe von einer oder mehreren anderen physikalischen Größen mit Hilfe einer statistischen Auswertung von Messungen. Sie dient dem Zweck, mit Hilfe ausreichend vieler Messergebnisse beliebige andere Fälle zu berechnen, die in den Messungen nicht enthalten sind.
  • Wenn in dem ersten Verfahrensschritt 1 dem Hauptprogrammmodul M ein nicht-lineares System zugeordnet wird, kann durch den Entwickler eine High-Level-Funktionsbeschreibung des Hauptprogrammmoduls M wenigstens teilweise vorgegeben werden, da die automati sche Ermittlung der Modellklassen im Falle nichtlinearer Systeme nicht immer trivial ist. Siehe hierzu „J. Sjöberg, Q. Zhang, L. Ljung, A. Benveniste, B. Deylon, P. Glorennec, H. Hjalmarsson, A. Juditsky: Nonlinear Black-box Modeling in System Identification: a Unified Overview. Automatica, Vol 31, pp 1691-1724, 1995.". In einem Verfahrensschritt 2 werden die Parameter bzw. Koeffizienten für das diversitäre Programmmodul N mit der in dem ersten Verfahrensschritt 1 bestimmten Modellklasse über eine Schätzung anhand der Messdatensätze DS ermittelt. Falls es sich bei dem Hauptprogrammmodul M um ein lineares System handelt, können die Parameter für das diversitäre Programmmodul N in einfacher Weise über Methoden der linearen Parameterschätzung, insbesondere kleinste Quadrate bzw. Least-Square-Methoden ermittelt werden, da die Messwerte zumeist ein Rauschen aufweisen. Handelt es sich jedoch um ein nicht-lineares System bei dem Hauptmodul M, so kann die Ermittlung der Parameter für das diverse Programmmodul N über die High-Level-Funktionsbeschreibung des Hauptprogrammmoduls M ermittelt werden. Des weiteren können bei Vorliegen eines nichtlinearen Systems die Parameter für das diversitäre Programmmodul N über eine Aufteilung in mehrere lineare Modelle für unterschiedliche Arbeitspunkte des Hauptprogrammmoduls M ermittelt werden, d. h. verschiedene Arten von Messdatensätzen werden auf verschiedene lineare Modelle aufgeteilt. Darüber hinaus könnten die Parameter des diversitären Programmmoduls N bei Vorliegen eines nicht-linearen Systems auch über eine Regressionsanalyse bzw. eine Linearisierung des nicht-linearen Modells und eine anschließende Parameterschätzung mittels Methoden der linearen Parameter schätzung, insbesondere Least-Squares-Methoden, ermittelt werden. Verwendet werden die Messdatensätze DS, welche zur Validierung des Programmcodes des Hauptprogrammmoduls M dienen. Die Messdatensätze DS können zudem in Identifikations- und Validierungs- bzw. Überprüfungsdaten unterteilt werden.
  • Nun liegt ein validiertes diversitäres Programmmodul N vor, welches in allen Arbeitsbereichen des Hauptprogrammmoduls M diesem hinreichend nahe ist, jedoch nicht zu jedem Zeitpunkt die Anforderung an die maximal erlaubte Abweichung erfüllt.
  • Der erste Verfahrensschritt 1 und/oder der zweite Verfahrensschritt 2 können mittels eines neuronalen Netzwerks (nicht dargestellt) realisiert werden.
  • In einem dritten Verfahrensschritt 3 werden die Parameter des Voters V über ein statisches Modell, welches aus Abweichungen zwischen Ausgangswerten fehlerfreier Messdatensätze DS des diversitären Programmmoduls N und des Hauptprogrammmoduls M hergeleitet wird, bestimmt. Gegeben sind das Hauptprogrammmodul M und das diversitäre Programmmodul N, welche im gewünschten Arbeitsbereich annähernd ähnlich funktionieren. Der Voter V wird nun entsprechend angepasst. Dazu werden Messdatensätze DS ohne Fehler ausgewählt. Für die Abweichung zwischen den beiden Modulen M, N wird daraus ein statistisches Modell hergeleitet (z. B. ein Histogramm, eine adaptierte Normalverteilung oder dergleichen). Aufgrund dieser Statistik werden die Parameter des Voters V gewählt. Der Voter V wird anschließend mit Messdatensätzen DS, welche auch Fehler auf weisen, validiert.
  • In einem vierten Verfahrensschritt 4 werden die Programmcodemittel für das Computerprogramm P zur Überwachung des Hauptprogrammmoduls M mit dem diversitären Programmmodul N und dem Voter V anhand der jeweils bestimmten Parameter generiert. Zur Anwendung des erfindungsgemäßen Verfahrens bzw. Computerprogramms sind unter anderem folgende drei Möglichkeiten denkbar:
    • 1. Der Entwickler verwendet das Verfahren zur schnellen parallelen Entwicklung der diversitären Funktion zur Hauptfunktion;
    • 2. Das Verfahren wird in eine Entwicklungssoftware bzw. eine Entwicklungsumgebung eingebaut (etwa in ein Makefile), wobei der Hauptpfad geladen wird, und der diversitäre Pfad automatisch mit Hilfe der eingespeisten Messdatensätze DS angelegt wird.
    • 3. Das Computerprogramm läuft auf dem Steuergerät eines elektronisch geregelten Lenksystems als vorteilhafte Anwendung ebenfalls in einer Entwicklungssoftware, wobei der Hauptpfad geladen wird, jedoch der diversitäre Pfad bzw. das diversitäre Programmmodul automatisch mit Hilfe vordefinierter Fahrmanöver als Messdatensätze DS im Fahrzeug durch einen Fahrer angelegt wird. Der Voter V muss mit Messdatensätzen DS, welche auch Fehler aufweisen, nachträglich validiert werden.
  • M
    Hauptprogrammmodul
    N
    Diversitäres Programmmodul
    V
    Entscheidungsprogrammmodul
    P
    Computerprogramm
    DS
    Messdatensätze
    1
    1. Verfahrensschritt
    2
    2. Verfahrensschritt
    3
    3. Verfahrensschritt
    4
    4. Verfahrensschritt

Claims (13)

  1. Verfahren zur automatischen Generierung eines Computerprogramms (P), zur Überwachung wenigstens eines Hauptprogrammmoduls (M), mit wenigstens einem Entscheidungsprogrammmodul (V) und wenigstens einem diversitären Programmmodul (N), wobei eine vorgegebene, die Funktion des Hauptprogrammmoduls (M) repräsentativ beschreibende, Anzahl von Messdatensätzen (DS) mit Eingangswerten und zugehörigen Ausgangswerten des Hauptprogrammmoduls (M) als Eingabe vorliegen, wobei – in einem ersten Verfahrensschritt (1) die Modellklasse für das diversitäre Programmmodul (N) mittels einer Systemidentifikation des Hauptprogrammmoduls (M) anhand der Messdatensätze (DS) bestimmt wird, wonach – in einem zweiten Verfahrensschritt (2) die Parameter für das diversitäre Programmmodul (N) mit der in dem ersten Verfahrensschritt (1) bestimmten Modellklasse über eine Schätzung anhand der Messdatensätze (DS) ermittelt werden, wonach – in einem dritten Verfahrensschritt (3) die Parameter des Entscheidungsprogrammmoduls (V) über ein statistisches Modell, welches aus Ab weichungen zwischen Ausgangswerten fehlerfreier Messdatensätze (DS) des diversitären Programmmoduls (N) und des Hauptprogrammmoduls (M) hergeleitet wird, bestimmt werden, und wonach – in einem vierten Verfahrensschritt (4) die Programmcodemittel für das Computerprogramm (P) zur Überwachung des wenigstens einen Hauptprogrammmoduls (M) mit dem diversitären Programmmodul (N) und dem Entscheidungsprogrammmodul (V) anhand der jeweils bestimmten Parameter generiert werden.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass in dem ersten Verfahrensschritt (1), wenn das Hauptprogrammmodul (M) ein nicht-lineares System aufweist, eine Funktionsbeschreibung des Hauptprogrammmoduls (M) wenigstens teilweise vorgegeben wird.
  3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass in dem zweiten Verfahrensschritt (2), wenn das Hauptprogrammmodul (M) ein lineares System aufweist, die Parameter für das diversitäre Programmmodul (N) über Methoden der linearen Parameterschätzung, insbesondere Least-Squares-Methoden, ermittelt werden.
  4. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass in dem zweiten Verfahrensschritt (2), wenn das Hauptprogrammmodul (M) ein nicht-lineares System auf weist, die Parameter für das diversitäre Programmmodul (N) über die Funktionsbeschreibung des Hauptprogrammmoduls (M) ermittelt werden.
  5. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass in dem zweiten Verfahrensschritt (2), wenn das Hauptprogrammmodul (M) ein nicht-lineares System aufweist, die Parameter für das diversitäre Programmmodul (N) über eine Aufteilung in mehrere lineare Modelle für unterschiedliche Arbeitspunkte des Hauptprogrammmoduls (M) ermittelt werden.
  6. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass in dem zweiten Verfahrensschritt (2), wenn das Hauptprogrammmodul (M) ein nicht-lineares System aufweist, die Parameter für das diversitäre Programmmodul (N) über eine Linearisierung des nicht-linearen Modells und eine anschließende Parameterschätzung mittels Methoden der linearen Parameterschätzung, insbesondere Least-Squares-Methoden, ermittelt werden.
  7. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass der erste Verfahrensschritt (1) und/oder der zweite Verfahrensschritt (2) mittels eines neuronalen Netzwerks realisiert werden.
  8. Verfahren nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, dass wenigstens ein Teil der Messdatensätze (DS) zur Überprüfung des diversitären Programmmoduls (N) und/oder des Entscheidungsprogrammmoduls (V) herangezogen werden.
  9. Verfahren nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, dass das Hauptprogrammmodul (M) ein Steuerungsprogramm für ein elektronisch geregeltes Lenksystem oder Teile davon umfasst.
  10. Computerprogramm mit Programmcodemitteln, um ein Verfahren gemäß einem der Ansprüche 1 bis 9 durchzuführen, wenn dass Programm auf einem Computer ausgeführt wird.
  11. Computerprogramm nach Anspruch 10, dadurch gekennzeichnet, dass es nach der Fertigstellung des Hauptprogrammmoduls (M) ausgeführt wird.
  12. Computerprogramm nach Anspruch 10, dadurch gekennzeichnet, dass es in eine Entwicklungsumgebung derart integriert ist, dass es nach dem Laden des Hauptprogrammmoduls (M) und der Einspeisung der Messdatensätze (DS) das Computerprogramm (P) zur Überwachung des Hauptprogrammmoduls (M) automatisch erzeugt.
  13. Computerprogramm nach Anspruch 10, dadurch gekennzeichnet, dass der Computer ein Steuergerät eines elektronisch geregelten Lenksystems ist, wobei das Computerprogramm (P) derart in eine Entwicklungsumgebung integriert ist, dass es nach dem Laden des Hauptprogrammmoduls (M) und einer Einspeisung der durch vordefinierte Fahrmanöver erzeugten Messdatensätze (DS) das Computerprogramm (P) zur Überwachung eines Hauptprogrammmoduls (M) automatisch erzeugt, wobei das Entscheidungsprogrammmodul (V) nachträglich überprüft wird.
DE200510049657 2005-10-18 2005-10-18 Verfahren zur automatischen Generierung eines Computerprogramms Withdrawn DE102005049657A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE200510049657 DE102005049657A1 (de) 2005-10-18 2005-10-18 Verfahren zur automatischen Generierung eines Computerprogramms

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE200510049657 DE102005049657A1 (de) 2005-10-18 2005-10-18 Verfahren zur automatischen Generierung eines Computerprogramms

Publications (1)

Publication Number Publication Date
DE102005049657A1 true DE102005049657A1 (de) 2007-04-19

Family

ID=37896450

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200510049657 Withdrawn DE102005049657A1 (de) 2005-10-18 2005-10-18 Verfahren zur automatischen Generierung eines Computerprogramms

Country Status (1)

Country Link
DE (1) DE102005049657A1 (de)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4866610A (en) * 1987-04-24 1989-09-12 Syndetic Corporation Generalized system for generating computer programs
DE10041072A1 (de) * 2000-08-22 2002-03-14 Siemens Ag Verfahren zur automatischen Erzeugung von Programmcode
DE10215653A1 (de) * 2002-04-09 2003-11-06 Bernhard Voslamber Verfahren und Anordung zur automatischen Erzeugung von Programmcodeabschnitten sowie ein entsprechendes Computerprogrammprodukt und ein entsprechendes computerlesbares Speichermedium
WO2004079476A2 (en) * 2003-03-06 2004-09-16 Sap Aktiengesellschaft A method for generating a computer program and a computer program product

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4866610A (en) * 1987-04-24 1989-09-12 Syndetic Corporation Generalized system for generating computer programs
DE10041072A1 (de) * 2000-08-22 2002-03-14 Siemens Ag Verfahren zur automatischen Erzeugung von Programmcode
DE10215653A1 (de) * 2002-04-09 2003-11-06 Bernhard Voslamber Verfahren und Anordung zur automatischen Erzeugung von Programmcodeabschnitten sowie ein entsprechendes Computerprogrammprodukt und ein entsprechendes computerlesbares Speichermedium
WO2004079476A2 (en) * 2003-03-06 2004-09-16 Sap Aktiengesellschaft A method for generating a computer program and a computer program product

Similar Documents

Publication Publication Date Title
EP3709166B1 (de) Verfahren und system zur sicheren signalmanipulation für den test integrierter sicherheitsfunktionalitäten
DE102017214611B4 (de) Verfahren zum Überprüfen eines Reaktionssignals einer Fahrzeugkomponente sowie Überprüfungsvorrichtung und Kraftfahrzeug
EP2534011A1 (de) Fahrzeug-sensor-knoten
DE102016102282B4 (de) Verfahren und Vorrichtung zum Überwachen einer Datenverarbeitung und -übertragung in einer Sicherheitskette eines Sicherheitssystems
DE102012016403B4 (de) Verfahren zur Parametrierung eines Feldgeräts und entsprechendes Feldgerät und System zur Parametrierung
DE102004020994B4 (de) Verfahren und Vorrichtung zum computergestützten Konstruieren einer sicherheitsgerichteten elektrischen Schaltung
EP3470937B1 (de) Verfahren und vorrichtungen zum überwachen der reaktionszeit einer durch ein sicherheitssystem bereitgestellten sicherheitsfunktion
EP2902905B1 (de) Verfahren zur Überprüfung der Abarbeitung von Software
DE102009034242A1 (de) Verfahren und Vorrichtung zum Prüfen eines Steuergeräts eines Fahrzeugs
DE102005049657A1 (de) Verfahren zur automatischen Generierung eines Computerprogramms
EP2182331A1 (de) Auslagerung einer Komponente mit Auswirkung auf die Sicherheitsfunktion aus dem sicherheitsrelevanten Bereich
DE102009012887B4 (de) Verfahren zum Prüfen einer nicht korrekten Installation von Fahrzeugsensoren
WO2005001692A2 (de) Verfahren und vorrichtung zur überwachung eines verteilten systems
DE102017123910A1 (de) Verfahren und Vorrichtung zum Überwachen der Sicherheitsintegrität einer durch ein Sicherheitssystem bereitgestellten Sicherheitsfunktion
DE102019203775B4 (de) Verfahren und Vorrichtung zur Verwendung der Fehlerfortpflanzung
DE10220811B4 (de) Verfahren und Vorrichtung zur Überwachung der Funktionsweise eines Systems
WO2013127646A1 (de) Vorrichtung und verfahren zum testen von elektronischen geräten mit einer räumlich getrennten steuereinrichtung
DE10312557B4 (de) Verfahren zur Überprüfung der funktionalen Sicherheit von elektronischen Systemen eines Fahrzeugs
EP3092536A1 (de) Verfahren und steuersystem
DE102022201857A1 (de) Verfahren zum Steuern einer Robotervorrichtung
EP3451086A1 (de) Verfahren zum betrieb einer auf funktionale sicherheit ausgelegten maschine oder anlage und engineeringsystem
DE102019121657A1 (de) Verfahren, Vorrichtung, Computerprogramm und Computerprogrammprodukt zum Ermitteln eines Wirknetzes eines Fahrzeuges und Verfahren, Vorrichtung, Computerprogramm und Computerprogrammprodukt zum Ermitteln von Sensitivitätskennwerten von Wirkketten eines Wirknetzes eines Fahrzeuges
DE102020207921A1 (de) Verfahren zum Einrichten eines Fahrzeugsimulationsmodells
DE102010014720A1 (de) Verfahren zum Verifizieren eines aus einem Quellmodell generierten Zielprogramms
EP2229609B1 (de) Rechnersystem zur auswertung sicherheitskritischer sensorgrössen

Legal Events

Date Code Title Description
OM8 Search report available as to paragraph 43 lit. 1 sentence 1 patent law
R012 Request for examination validly filed

Effective date: 20110716

R016 Response to examination communication
R120 Application withdrawn or ip right abandoned
R120 Application withdrawn or ip right abandoned

Effective date: 20130504