DE102005049657A1 - Verfahren zur automatischen Generierung eines Computerprogramms - Google Patents
Verfahren zur automatischen Generierung eines Computerprogramms Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1487—Generic software techniques for error detection or fault masking using N-version programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/18—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
- G06F11/187—Voting techniques
- G06F11/188—Voting 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 aus1 . - 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 Verfahrensschritt1 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 Verfahrensschritt2 werden die Parameter bzw. Koeffizienten für das diversitäre Programmmodul N mit der in dem ersten Verfahrensschritt1 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 Verfahrensschritt2 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)
- 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. - 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. - 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. - 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. - 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. - 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. - 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. - 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.
- 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.
- 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.
- Computerprogramm nach Anspruch 10, dadurch gekennzeichnet, dass es nach der Fertigstellung des Hauptprogrammmoduls (M) ausgeführt wird.
- 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.
- 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.
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)
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 |
-
2005
- 2005-10-18 DE DE200510049657 patent/DE102005049657A1/de not_active Withdrawn
Patent Citations (4)
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 |