DE102017004348A1 - Verfahren zur Computer gestützten, automatisierten Überprüfung von Software-Anforderungen - Google Patents

Verfahren zur Computer gestützten, automatisierten Überprüfung von Software-Anforderungen Download PDF

Info

Publication number
DE102017004348A1
DE102017004348A1 DE102017004348.5A DE102017004348A DE102017004348A1 DE 102017004348 A1 DE102017004348 A1 DE 102017004348A1 DE 102017004348 A DE102017004348 A DE 102017004348A DE 102017004348 A1 DE102017004348 A1 DE 102017004348A1
Authority
DE
Germany
Prior art keywords
interface
description
software
test comprises
functional description
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
DE102017004348.5A
Other languages
English (en)
Inventor
Anmelder Gleich
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to DE102017004348.5A priority Critical patent/DE102017004348A1/de
Priority to CA3062465A priority patent/CA3062465A1/en
Priority to EP18726317.3A priority patent/EP3622403A2/de
Priority to CN201880042869.9A priority patent/CN110799951A/zh
Priority to PCT/EP2018/000246 priority patent/WO2018206146A2/de
Priority to US16/611,234 priority patent/US20200159980A1/en
Publication of DE102017004348A1 publication Critical patent/DE102017004348A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318307Generation of test inputs, e.g. test vectors, patterns or sequences computer-aided, e.g. automatic test program generator [ATPG], program translations, test program debugging
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318314Tools, e.g. program interfaces, test suite, test bench, simulation hardware, test compiler, test program languages
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318342Generation of test inputs, e.g. test vectors, patterns or sequences by preliminary fault modelling, e.g. analysis, simulation
    • G01R31/318357Simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • Processing Or Creating Images (AREA)

Abstract

Bei einem Verfahren zum Computer gestützten, automatisierten Überprüfen von Software-Anforderungen werden diese in einer Datenbank gespeichert. Dabei wird einerseits mindestens eine Schnittstellenbeschreibung und andererseits mindestens eine funktionelle Beschreibung hinterlegt. Die Software-Anforderung weist dabei wenigstens eine Subkomponente auf. Die Überprüfung schließt dabei das Computer gestützte Prüfen der Vollständigkeit und/oder Konsistenz der Schnittstellenbeschreibung und/oder der funktionellen Beschreibung ein. Dabei erstreckt sich die Prüfung auch auf Subkomponenten.

Description

  • Die Erfindung betrifft ein Verfahren zum Computer gestützten, automatisierten Überprüfen von mindestens einer Software-Anforderung und zur Erzeugung von Testdaten. Diese Software-Anforderung weist mindestens eine weitere Software-Anforderung als Subkomponente auf, wobei jede der Softwareanforderungen in mindestens einer Datenbank gespeichert ist und zumindest eine Schnittstellenbeschreibung und eine funktionelle Beschreibung aufweist.
  • Aus der Praxis sind verschiedene Computerprogramme bekannt, die Software-Anforderungen in Textform erfassen und in einer Datenbank ablegen. Diese Datenbank ist dabei verlinkt, um Textpassagen, die sich bereits in der Datenbank befinden, an anderer Stelle zu verwenden. So kann beispielsweise eine Schnittstellenbeschreibung im Rahmen einer Komponente zur Signalaufbereitung beschrieben werden. Wenn die dieser Schnittstelle zugeordneten Signale dann an anderer Stelle benötigt werden, kann die entsprechende Schnittstellenbeschreibung hierzu verlinkt werden. Dies hat den Vorteil, dass eine Änderung der Schnittstellenbeschreibung sich auch auf die anderen, verlinkten Komponenten auswirkt. Nachteilig ist jedoch, dass es dem Entwickler überlassen bleibt, ob er diese Verlinkungstechnik auch nutzt und wie er mit einer sich nachträglich ändernden Beschreibung umgeht. Damit kann der Entwickler, der in der Regel von einem mehrköpfigen Team gebildet wird, unvollständige bzw. inkonsistente Software-Anforderungen erstellen. Computerprogramme, welche mit derartigen, mangelhaften Software-Anforderungen erstellt sind, neigen zu großer Fehleranfälligkeit, wodurch sich der Entwicklungsprozess zeitlich sehr in die Länge streckt. In Ermangelung besserer Systeme sind jedoch Entwickler gezwungen, sich dieser bekannten Komponenten zu bedienen. Diese bilden daher den nächstliegenden Stand der Technik zum Erfindungsgegenstand.
  • Der Erfindung liegt die Aufgabe zugrunde, ein Verfahren der eingangs genannten Art zu schaffen, welches qualitativ höherwertige Software-Anforderungen erzeugt und Unvollständigkeiten bzw. Inkonsistenzen möglichst frühzeitig erkennt.
  • Diese Aufgabe wird erfindungsgemäß mit den folgenden Merkmalen gelöst.
  • Bei dem erfindungsgemäßen Verfahren wird mindestens eine Software-Anforderung in einer Datenbank gespeichert. Als Datenbank ist eine Ansammlung von Datenblöcken zu verstehen, die in einer oder mehreren Dateien gespeichert sind und für die eine wahlfreie Zugriffsmöglichkeit eingerichtet ist. Diese Software-Anforderung weist mindestens eine weitere Software-Anforderung als Subkomponente auf, wobei diese Subkomponente grundsätzlich in gleicher Weise wie die Hauptkomponente zu behandeln ist. Jede Software-Anforderung weist zumindest eine Schnittstellenbeschreibung für mindestens ein Eingangs- und/oder Ausgangssignal und mindestens eine funktionelle Beschreibung in formalisierter Form auf. Die Schnittstellenbeschreibung umfasst sämtliche Details, die die jeweilige Schnittstelle und das Signal betreffen, welches über diese Schnittstelle empfangen und/oder gesendet wird. Dies können beispielsweise sein: Datenbreite, Wertebereich, Protokoll, zugeordneter physikalischer Wert, Abtastfrequenz, Portzuordnung, Initialisierungserfordernis und -verfahren, Filtererfordernis und -verfahren, Mittelungserfordernis und -verfahren und Zuverlässigkeitsindikatoren. Diese Aufzählung ist jedoch nur beispielhaft und nicht abschließend zu verstehen. Die funktionelle Beschreibung erfolgt in formalisierter Form, beispielsweise als Flussdiagramm, Zustandsautomat oder Pseudocode. Auch diese Aufzählung ist nur beispielhaft und nicht abschließend zu verstehen. Um Lücken bzw. Fehler in der Software-Anforderung möglichst frühzeitig zu erkennen, erfolgt eine Computer gestützte Prüfung auf Vollständigkeit bzw. Konsistenz. Diese Prüfung umfasst die Schnittstellenbeschreibung und/oder die funktionelle Beschreibung. Bei der Vollständigkeitsprüfung der Schnittstellenbeschreibung kann insbesondere geprüft werden, ob alle erforderlichen Angaben in der Schnittstellenbeschreibung enthalten sind. Diese hängen grundsätzlich von der spezifizierten Art des Signals ab. So werden an rein binäre Signale wesentlich geringere Definitionsanforderungen gestellt als an seriell bzw. parallel übermittelte Daten. Werden Informationen beispielsweise seriell übertragen, so ist die Anwendung des jeweiligen Protokolls von entscheidender Bedeutung. Bei reinen Zustandsinformationen spiegelt das Signal unmittelbar einen äußeren Systemzustand wieder, so dass hier keinerlei Protokollinformationen benötigt werden. Bei der Konsistenzprüfung der Schnittstellenbeschreibung werden gegenseitige Abhängigkeiten berücksichtigt. Wird beispielsweise in der Schnittstellenbeschreibung ein Signal als serieller Datenstrom gekennzeichnet, ohne ein entsprechendes Protokoll zu spezifizieren, kann diese Inkonsistenz erkannt und als Warnung bzw. Fehler ausgegeben werden. Bezüglich Echtzeitanforderungen kommen Informationen wie Samplingrate, Latenzzeit und die geforderte Reaktionszeit auf ein bestimmtes Trigger-Ereignis in Betracht. Es ist auch daran gedacht zu prüfen, ob die angegebenen Echtzeitanforderungen konsistent zueinander sind. Eine Inkonsistenz ergibt sich beispielsweise daraus, dass die Reaktionszeit einer Schnittstellenbeschreibung eines Ausgangssignals kürzer ist als die Summe der damit verbundenen Sampling- und Bearbeitungszeiten. Ebenso könnte eine Inkonsistenz durch Verletzung des Abtasttheorems aufgefunden werden. Dies betrifft sowohl Eingangs- als auch Ausgangssignale. Wenn die Abtast- bzw. Update-Rate kleiner als die halbe Signalperiode ist, ist eine ordnungsgemäße Signalverarbeitung ausgeschlossen. In diesem Fall wird ein entsprechender Fehler bzw. eine Warnung ausgegeben. Bei der Schnittstellenbeschreibung spielt es keine Rolle, ob die Schnittstelle eine externe oder interne Hardware-Schnittstelle oder eine Software-Schnittstelle betrifft. Software-Schnittstellen sind in der Regel Daten, welche in einem entsprechenden Speicher abgelegt sind. Diese können in gleicher Weise wie Hardware-Schnittstellen beschrieben und geprüft werden. Die funktionelle Beschreibung beschreibt den konkreten Programmablauf und lässt sich folglich nicht mit der gleichen Gründlichkeit wie die Schnittstellenbeschreibung prüfen. In eingeschränktem Maß sind jedoch auch hier Prüfungen auf Vollständigkeit und Konsistenz möglich. Da alle genannten Prüfungen Computer gestützt stattfinden, können Dokumentationsfehler in der Software-Anforderung erkannt werden, bevor die erste Programmzeile der entwickelten Software geschrieben ist. Insbesondere ist daran gedacht, der Schnittstellenbeschreibung eine erhöhte Bedeutung zukommen zu lassen. Dies geschieht insbesondere dadurch, dass sämtliche Signal bezogenen Informationen ausschließlich in den Schnittstellenbeschreibungen abgelegt werden. Auf diese Weise wird vermieden, dass sich Signal bezogene Informationen der Vollständigkeits- bzw. Konsistenzprüfung entziehen können. Damit ergibt sich eine zwangsweise Verlinkung der Schnittstellenbeschreibungen. Wenn an irgendeiner Stelle in der Software-Anforderung Informationen zu einem Signal benötigt werden, können diese ausschließlich aus der zugeordneten Schnittstellenbeschreibung kommen. Da diese Schnittstellenbeschreibung aber auf Vollständigkeit und Konsistenz mit hoher Güte geprüft ist, werden Definitionsfehler und -lücken auf diese Weise mit hoher Wahrscheinlichkeit ausgeschlossen. Grundsätzlich zwingt dieses Verfahren den Entwickler dazu, sich frühzeitig zu allen möglichen Details Gedanken zu machen, bevor Inkonsistenzen entstehen können. Auf diese Weise entsteht eine Software mit hoher Qualität und sehr kurzem Entwicklungszyklus, was die Produktivität der Softwareerzeugung insgesamt erheblich verbessert.
  • Vorzugsweise umfasst die Prüfung der Schnittstellenbeschreibung das Überprüfen, ob bestimmte Informationen hinterlegt sind, beispielsweise ob die Schnittstelle zu initialisieren, zu filtern bzw. zu prüfen ist. Oftmals ist eine komplexe Signalaufbereitung erforderlich, was durch spezialisierte Bausteine wie beispielsweise Analog-Digital-Umsetzer, Frequenzzähler oder andere Komponenten erledigt wird. Diese Komponenten benötigen manchmal eine Initialisierung, bevor der erste Wert für das Signal ermittelt werden kann. Für andere Schnittstellen, beispielsweise reine Digitalschnittstellen ist dagegen eine Initialisierung oftmals nicht erforderlich. Je nach Signalqualität kann es auch erforderlich sein, das der Schnittstelle zugeordnete Signal zu filtern, um Störimpulse zu eliminieren oder die Signalgenauigkeit zu erhöhen. Es ist zweckmäßig zu prüfen, ob diesbezüglich entsprechende Angaben in der Schnittstellenbeschreibung enthalten sind, so dass beim Fehlen dieser Angaben eine entsprechende Warnung ausgegeben wird. Außerdem kann es erforderlich sein, ein der Schnittstelle zugeordnetes Signal zu prüfen, um beispielsweise dessen Konsistenz oder Qualität zu bestimmen. Auch das Vorhandensein dieser Information wird zweckmäßigerweise geprüft, um zu verhindern, dass Signale mit schlechter Qualität oder sogar irreguläre Signale der weiteren Prozessverarbeitung zugeführt werden.
  • Für den Fall, dass in der Schnittstellenbeschreibung die Initialisierung, das Filtern oder Prüfen gefordert wird, ist es zweckmäßig, auch das hierfür erforderliche Verfahren in der Schnittstellenbeschreibung zu hinterlegen. Dies erfolgt am zweckmäßigsten durch eine entsprechende funktionelle Beschreibung in formalisierter Form. Das erfindungsgemäße Verfahren prüft in diesem Fall, ob ein entsprechendes Verfahren hinterlegt ist oder entsprechende Parameter, beispielsweise die Zahl der erforderlichen Mittelungen, zur Filterung des Messwertes hinterlegt sind.
  • Oftmals haben Signale nur einen beschränkten Gültigkeitsbereich, wobei bei Über- bzw. Unterschreiten dieses Gültigkeitsbereichs Sonderbehandlungen auszuführen sind. Um diese Sonderbehandlungen konsistent über die gesamte Software-Anforderung zu erstellen, ist es zweckmäßig, den Gültigkeitsbereich des Signals in der Schnittstellenbeschreibung zu hinterlegen. Das erfindungsgemäße Verfahren prüft daher, ob ein entsprechender Gültigkeitsbereich definiert ist. Grundsätzlich ist daran gedacht, neben dem Gültigkeitsbereich auch Zwischenwerte, insbesondere Grenzwerte des Signals in der Schnittstellenbeschreibung zu hinterlegen. Diese Grenzwerte können dann beispielsweise in der funktionellen Beschreibung zum Vergleich mit dem Signal herangezogen werden. Es ist jedoch nicht zweckmäßig, diese Grenzwerte auf Vollständigkeit der Schnittstellenbeschreibung zu prüfen, da eine Prüfung anhand objektiver Kriterien fehlschlagen wird. Für derartige Anwendungsfälle ist es zweckmäßiger, die funktionelle Beschreibung dahingehend zu überprüfen, dass als Vergleichsparameter ausschließlich Parameter aus Schnittstellenbeschreibungen genutzt werden. Auf diese Weise ergibt sich eine konsistente Benutzung der Grenzwerte.
  • In der Regel müssen die Signale, die von Schnittstellen bezogen werden, in entsprechenden Variablen gespeichert werden. Auf diese Variablen kann dann die funktionelle Beschreibung Bezug nehmen, sofern sichergestellt ist, dass durch das Speichern der Signale in der Variablen kein Informationsverlust entsteht. Aus diesem Grund umfasst die Prüfung einen Vergleich der Datenbreite bzw. des Vorzeichens der Schnittstellenbeschreibung mit der zugeordneten Variablen. Kommt dieser Vergleich zu dem Ergebnis, dass beim Speichern des Signals in der Variablen Information verloren geht, weil beispielsweise die Datenbreite zu gering ist oder ein mögliches negatives Vorzeichen verloren ginge, so wird eine entsprechende Warnung erzeugt.
  • Naturgemäß ist die funktionelle Beschreibung wesentlich schwieriger zu prüfen als die Schnittstellenbeschreibung, da die funktionelle Beschreibung den eingesetzten Algorithmus wiedergeben muss. Es ist schwierig, einen Fehler in einem Algorithmus computergestützt aufzufinden. Trotzdem sind gewisse Prüfungen der funktionellen Beschreibung machbar. Beispielsweise kann geprüft werden, ob jeder Zustand der funktionellen Beschreibung aufgrund von definierten Zustandswechselbedingungen erreichbar ist. Ist ein Zustand nicht erreichbar, so liegt offensichtlich ein algorithmischer Fehler vor, der eine entsprechende Warnung zur Folge hat. Dabei kann es durchaus sein, dass ein Zustand nur dann erreichbar ist, wenn ein Signal seinen Gültigkeitsbereich verlässt, um in diesem Zustand dann eine Sonderbehandlungsroutine abzuarbeiten. Ist aber ein Zustand nur aufgrund von einander widersprechenden Signalbedingungen und/oder physikalisch nicht realisierbaren Signalen erreichbar, so liegt offensichtlich ein algorithmischer Fehler in der funktionellen Beschreibung vor, der beim Prüfen durch das erfindungsgemäße Verfahren zu einer entsprechenden Warnung führt.
  • Außerdem ist es vorteilhaft zur prüfen, ob von jedem Zustand der funktionellen Beschreibung ein Folgezustand erreichbar ist. Wenn kein Folgezustand mehr erreichbar wäre, müsste das System für immer in diesem Zustand verbleiben, so dass die Software als „abgestürzt“ zu bezeichnen wäre. Damit liegt für den Fall, dass kein Folgezustand erreichbar ist, ein algorithmischer Fehler in der funktionellen Beschreibung vor, der durch das erfindungsgemäße Verfahren zu einer entsprechenden Warnung führt.
  • Außerdem ist es zweckmäßig, die funktionelle Beschreibung dahingehend zu prüfen, ob jedes definierte Signal der Schnittstellenbeschreibung in der funktionellen Beschreibung verwendet wird. Im gegenteiligen Fall erzeugt das erfindungsgemäße Verfahren eine entsprechende Warnung. Diese Warnung zeigt dem Entwickler an, dass er entweder ein Signal in der funktionellen Beschreibung vergessen hat oder dieses Signal aus der Schnittstellenbeschreibung löschen oder als „reserviert“ markieren sollte. Diese Maßnahme verhindert insbesondere, dass der Entwickler aus Bequemlichkeitsgründen in der Schnittstellenbeschreibung seiner Software-Anforderung einfach grundsätzlich alle möglichen Schnittstellen in der Schnittstellenbeschreibung anführt, die er vielleicht irgendwo benötigen könnte. Damit umgeht der Entwickler aber das Gebot, sich über die erforderlichen Signale zuerst Gedanken zu machen, bevor er die funktionelle Beschreibung erstellt. Das erfindungsgemäße Verfahren quittiert diese Vorgangsweise dann mit einer entsprechenden Anzahl von Warnungen, so dass der Entwickler zwangsweise einen sauberen Schnittstellenansatz definieren muss.
  • Insbesondere bei komplexen Software-Anforderungen kommt es immer wieder vor, dass Ausgangssignale inkonsistent sind, da verschiedene Komponenten der Software-Anforderung unterschiedliche Werte für das Ausgangssignal fordern. Wenn beispielsweise eine Komponente ein bestimmtes Ausgangssignal auf Eins setzt, wenn ein Eingangssignal A aktiv ist und eine weitere Komponente dasselbe Ausgangssignal auf Null setzt, wenn ein Eingangssignal B inaktiv ist, so kann es durchaus vorkommen, dass widersprüchliche Bedingungen für das Ausgangssignal vorliegen, insbesondere wenn das Eingangssignal A aktiv und das Eingangssignal B inaktiv ist. Derartige Fehler sind in der fertigen Software nur sehr schwer zu finden und verursachen daher eine beträchtliche Verlängerung der Entwicklungszeit. Es ist daher zweckmäßig, die Eindeutigkeit der Ausgangssignale bzw. Ausgangssignaländerungen bereits in der funktionellen Beschreibung zu prüfen und Fälle wie den oben genannten mit einer entsprechenden Warnung zu quittieren.
  • In der Informatik sind rekursive Algorithmen bekannt, die einen einfachen, programmtechnischen Ansatz zur Lösung eines komplexen mathematischen Problems bieten. Derartige rekursive Ansätze sind jedoch in der Signalverarbeitung höchst gefährlich, da sie davon ausgehen, dass die entsprechenden Eingangswerte konstant bleiben. Dies ist bei der Signalverarbeitung aber gerade nicht der Fall. Aus diesem Grund ist es zweckmäßig zu prüfen, ob die funktionelle Beschreibung rekursive Signalabfragen enthält. Dies kann man am einfachsten dadurch feststellen, dass geprüft wird, ob eine Zustandsänderungsbedingung in der funktionellen Beschreibung in Abhängigkeit von einem Signal steht, welches von derselben funktionellen Beschreibung erzeugt werden soll. Damit werden rekursive Signalabfragen mit entsprechenden Warnungen durch das erfindungsgemäße Verfahren quittiert. Ein rekursiver Algorithmus ohne Einflussnahme auf Zustände, wie beispielsweise die schnelle Analog-Digital-Wandlung ist davon jedoch nicht betroffen.
  • Um zu verhindern, dass wichtige Werte, wie beispielsweise Vergleichswerte in Zustandsänderungsbedingungen an beliebiger Stelle hinterlegt werden und damit einer Vollständigkeitsprüfung entzogen werden, ist es vorteilhaft, wenn das erfindungsgemäße Verfahren Zustandswechselbedingungen dahingehend überprüft, ob darin Werte genutzt werden, die nicht in der Schnittstellenbeschreibung hinterlegt sind. Damit ist der Entwickler gezwungen, sämtliche Vergleichswerte, die er für seine funktionelle Beschreibung benötigt, in der Schnittstellenbeschreibung zu hinterlegen, wo sie dann in der gesamten Software-Anforderung auf Konsistenz überprüfbar ist.
  • Um auf der anderen Seite zu verhindern, dass der Entwickler prophylaktisch einfach alle möglichen Werte in der Schnittstellenbeschreibung definiert, die er möglicherweise einmal benötigen könnte, ist es zweckmäßig zu prüfen, ob die in der Schnittstellenbeschreibung definierten Werte in der funktionellen Beschreibung verwendet werden. Überflüssige Werte der Schnittstellenbeschreibung erzeugen dann eine entsprechende Warnung. Es kann beispielsweise vorkommen, dass neben einem komplett aufbereiteten Signal zusätzlich eine Signalrohform, beispielsweise das ungefilterte Signal, gespeichert werden soll. Kommt es zu einem unerwarteten Störfall, so kann aus diesem Speicher der zeitliche Verlauf des Rohsignals ausgelesen werden, um Anhaltspunkte für eine Früherkennung des Störfalls zu finden. Diese Information ist für die Weiterentwicklung des Softwareprodukts von erheblicher Bedeutung, insbesondere bei sicherheitsrelevanten Komponenten wie Flugzeug- oder Kraftwerkskomponenten. Um das Rohsignal einem Datenlogger zuführen zu können, muss dieses aber für die Datenlogger-Komponente verfügbar sein. Dies kann am einfachsten dadurch geschehen, dass es in der Schnittstellenbeschreibung aufgeführt wird. Damit wird aber auch klar dokumentiert, dass unterschiedliche Komponenten unterschiedliche Verarbeitungsstadien des Signals erhalten, wodurch Verwechslungen ausgeschlossen werden. Durch das Überprüfen der Verwendung des Rohsignals in der funktionellen Beschreibung ist außerdem sichergestellt, dass der Entwickler nicht grundsätzlich alle möglichen Verarbeitungsstufen in der Schnittstellenbeschreibung öffentlich macht, weil er auf diese Weise mit einer Vielzahl von Warnungen überschüttet würde.
  • Außerdem ist es zweckmäßig, die funktionelle Beschreibung dahingehend zu prüfen, ob ein berechneter Wert genutzt wird, bevor er überschrieben wird. In der Regel ist das Überschreiben eines Wertes vor dessen Auslesen ein algorithmischer Fehler, so dass hier eine entsprechende Warnung erstellt wird.
  • Oftmals ist es erforderlich, in einer Software-Anforderung verschiedene Modi zu definieren, in denen die zu erstellende Software jeweils unterschiedlich abgearbeitet werden soll. Diese Modi können beispielsweise sein: Normaler Betriebsmodus, Unterspannungsmodus, defekter Sensormodus, defekter Aktormodus, ungenügender Speicherplatzmodus usw. Alternativ oder zusätzlich können auch Modi für verschiedene Ausführungsformen der Software-Anforderung, beispielsweise für unterschiedliche Applikationsmodelle definiert werden. So kann eine bestimmte Komponente für ein Kraftfahrzeug unterschiedliche Modi für verschiedene Kraftfahrzeugmodelle aufweisen, so dass die Adaption auf ein bestimmtes Kraftfahrzeugmodell durch einfache Wahl des Modus erfolgen kann. Die unterschiedlichen Modi sind dabei auch kombiniert einsetzbar. So können beispielsweise zwei Modi für die Betriebsspannung, zwei Modi für den Zustand der Sensoren, zwei Modi für den Zustand der Aktoren und vier Modi für die Modelle eingesetzt werden. Dies ergibt dann 32 verschiedene Modi. In Realität können die Modi noch wesentlich komplexer werden, was deren akkumulierte Zahl noch wesentlich in die Höhe treibt. Bei derartigen Software-Anforderungen ist es relativ schwierig, eindeutig festzulegen, ob eine bestimmte funktionelle Beschreibung auch tatsächlich eindeutig den verschiedenen Modi zugeordnet ist. Diese eindeutige Zuordnung ist jedoch unabdingbare Voraussetzung für eine korrekt laufende Software. Aus diesem Grund ist es zweckmäßig zu prüfen, ob für jeden definierten Modus eindeutig festgelegt ist, ob mindestens eine der funktionellen Beschreibungen auszuführen ist. Beim Auftreten von Definitionslücken bezüglich der Moduswahl wird dann eine entsprechende Warnung erzeugt. Bei der Definition von Modi kommt es relativ häufig vor, dass mögliche Moduswechsel übersehen werden. Es kann zwar durchaus vorkommen, dass bestimmte Moduswechsel ausgeschlossen werden können. In der Regel ist jedoch ein nicht definierter Moduswechsel ein Indiz für eine unvollständige Software-Anforderung. Aus diesem Grund ist es zweckmäßig zu prüfen, ob von jedem Modus jeder andere Modus erreichbar ist, oder dessen Erreichbarkeit ausdrücklich verneint ist. Die letztgenannte Möglichkeit erlaubt, eine entsprechende Warnung zu unterdrücken, wenn ein bestimmter Modusübergang nicht vorgesehen ist. In diesem Fall ist jedoch eine ausdrückliche Verneinung erforderlich, so dass der Entwickler sich über den nicht definierten Moduswechsel Gedanken gemacht haben muss. Ein versehentliches Weglassen eines bestimmten Moduswechsels ist hierdurch jedoch ausgeschlossen.
  • Die Erfindung betrifft außerdem ein Verfahren zum Computer gestützten, automatischen Erzeugen von Testdaten für eine Software, die eine Software-Anforderung erfüllen soll. Im Stand der Technik wird hierzu eine Vielzahl von Testdaten zwischen den definierten Grenzen des Gültigkeitsbereichs der einzelnen Signale erzeugt, um die erzeugte Software zu testen. Bei Software-Anforderungen, die nach dem erfindungsgemäßen Verfahren geprüft sind, ist jedoch gewährleistet, dass - die Beachtung von Warnungen vorausgesetzt - sämtliche Schwellwerte zum Vergleich mit Signalen in den Schnittstellenbeschreibungen hinterlegt sind. Damit sind alle Grenzwerte, bei denen sich das Verhalten der Software in irgendeiner Weise ändert, durch Werte eindeutig festgelegt, die in den Schnittstellenbeschreibungen festgelegt sind. Dies wird beim erfindungsgemäßen Verfahren zum automatischen Erzeugen von Testdaten dahingehend ausgenutzt, dass die Schnittstellenbeschreibungen aller Eingangssignale analysiert werden, wobei alle in der Schnittstellenbeschreibung eingetragenen Werte jedes Eingangssignals sortiert werden. Zwischen jeweils benachbarten Werten dieser sortierten Wertereihe ändert sich das grundsätzliche Verhalten der Software nicht. Darum reicht es aus, jeweils einen Testwert zwischen diesen eingetragenen Werten zu erzeugen und diese Werte in unterschiedlichen Permutationen als Testdaten auszugeben. Damit werden wesentlich weniger Testdaten erzeugt, wobei sichergestellt ist, dass jede Abfragebedingung der Signale in den Testdaten realisiert wird. Der Test der Software wird auf diese Weise nicht nur schneller, sondern auch sicherer.
  • Das erfindungsgemäße Verfahren wird vorzugsweise für Software-Anforderungen eingesetzt, welche zur Steuerung und/oder Regelung mindestens eines technischen Prozesses dienen. Dort sind relativ hohe Anforderungen an die Software-Sicherheit zu stellen, so sich das erfindungsgemäße Verfahren. in diesem Bereich besonders vorteilhaft auswirkt.
  • Vorzugsweise läuft die Software auf mindestens einem Controller, welcher neben der zentralen Recheneinheit auch Speicher und Schnittstellen aufweist. In diesem Bereich, der auch als „embeded system“ bezeichnet wird, gelten besonders hohe Anforderungen an die Softwaresicherheit, da ein Eingriff in die Software von außen in der Regel nicht möglich ist.
  • Das erfindungsgemäße Verfahren wird beispielhaft und auszugsweise ohne Anspruch auf Vollständigkeit anhand der folgenden Ausführungsbeispiele unter Bezugnahme auf die Zeichnung näher erläutert. Diese Ausführungen dienen lediglich dazu, das erfindungsgemäße Verfahren zu erläutern und nicht, um den Schutzbereich festzulegen, der durch die Ansprüche definiert ist.
  • Es zeigt:
    • 1 ein Verfahren zum Prüfen der Schnittstellenbeschreibung auf Vollständigkeit,
    • 2 ein Verfahren zum Prüfen der funktionellen Beschreibung auf Erreichbarkeit aller Zustände und
    • 3 ein Verfahren zur Realisierung einer state-Funktion.
  • Die 1 zeigt einen Algorithmus zur Überprüfung der Schnittstellenbeschreibung auf Vollständigkeit. Dabei wird vorausgesetzt, dass dem Entwickler ein Template zur Anlage einer Schnittstellenbeschreibung in einer Datenbank zur Verfügung gestellt wurde, in dem entsprechende Felder zum Ausfüllen enthalten sind. Der Algorithmus gemäß 1 prüft die in der Datenbank abgelegten Schnittstellenbeschreibungen in folgender Weise:
    • In Schritt 1 wird eine Zählvariable n auf den Wert 0 initialisiert. Diese Zählvariable n dient zur Referenzierung der Schnittstellenbeschreibungen. Dies bedeutet, dass die erste Schnittstellenbeschreibung mit n = 0, die zweite Schnittstellenbeschreibung mit n = 1 usw. referenziert werden kann. In Schritt 2 wird eine weitere Zählvariable m auf den Wert 0 initialisiert. Diese Zählvariable m dient zur Referenzierung der einzelnen Datenfelder innerhalb der Schnittstellenbeschreibung, wobei das erste Datenfeld mit dem Index m = 0 referenziert wird.
    • In Schritt 3 wird abgefragt, ob in der Datenbank zur Schnittstellenbeschreibung n im Feld m ein Wert eingetragen ist. Außerdem wird in Schritt 3 abgefragt, ob der eingetragene Wert in der Datenbank auch konsistent zu den übrigen Werten der Schnittstellenbeschreibung n ist. Falls mindestens einer der genannten Tests fehlschlägt, verzweigt die Abfrage gemäß Schritt 3 zum Zweig 3F. In diesem Fall wird in Schritt 4 eine entsprechende Warnung erzeugt und ausgegeben. Falls die Tests gemäß Schritt 3 keine Beanstandungen finden, wird der Zweig 3T genutzt, wodurch die Ausgabe der Warnung in Schritt 4 unterdrückt wird.
    • In Schritt 5 wird die Zählvariable m inkrementiert, um auf diese Weise das nächste Feld innerhalb der Schnittstellenbeschreibung n zu adressieren.
    • Im folgenden Schritt 6 wird abgefragt, ob die Zählvariable m noch innerhalb zulässiger und vordefinierter Grenzwerte liegt. Falls dies der Fall ist, wird zum Zweig 6T verzweigt, so dass der Programmfluss mit Schritt 3 fortgesetzt wird. Liegt die Zählvariable m aber innerhalb des zulässigen Bereichs, so wird zum Zweig 6F verzweigt und der folgende Schritt 7 ausgeführt.
    • In Schritt 7 wird die Zählvariable n inkrementiert, um auf diese Weise die nächste Schnittstellenbeschreibung zu adressieren.
    • Im folgenden Schritt 8 wird abgefragt, ob die Zählvariable n noch innerhalb zulässiger und vordefinierter Grenzwerte liegt. Falls dies der Fall ist, wird zum Zweig 8T verzweigt, so dass der Programmfluss mit dem Schritt 2 fortgesetzt wird. Liegt die Zählvariable m aber innerhalb des zulässigen Bereichs, so wird zum Zweig 8F verzweigt und der folgende Schritt ausgeführt.
  • Nach Durchlaufen dieses Algorithmus sind sämtliche Schnittstellenbeschreibungen auf Vollständigkeit und Konsistenz geprüft. Wie man sieht, ist die Prüfung der Schnittstellenbeschreibung programmtechnisch relativ einfach, wobei trotzdem eine sehr hohe Prüfungsgüte erzielt werden kann. Diese Vereinfachung ist eine Folge der Trennung der gesamten Software-Anforderung in eine funktionelle Beschreibung und eine Schnittstellenbeschreibung.
  • 2 zeigt einen Algorithmus zur Überprüfung der funktionellen Beschreibung. Dabei wird vorausgesetzt, dass die funktionelle Beschreibung in Form eines Zustandsautomaten in der oben genannten Datenbank gespeichert ist.
  • In Schritt 10 wird die Funktion state (init) aufgerufen. Diese Funktion versetzt einen virtuellen Zustandsautomaten in jenen Zustand, in den der Zustandsautomat beispielsweise unmittelbar nach einem reset kommt. Dies ist also der Ausgangszustand des Zustandsautomaten. Außerdem werden von dieser Funktion verschiedene Prüfungen durchgeführt, die weiter unten erläutert sind.
  • In Schritt 11 wird eine Zählvariable n auf 0 initialisiert. Dabei wird vorausgesetzt, dass die einzelnen Zustände des Zustandsautomaten in der Datenbank über die Zählvariable n initiiert abgerufen werden können.
  • In Schritt 12 wird geprüft, ob beim Zustand n das checked-flag gesetzt ist. Falls dies nicht der Fall ist, verzweigt die Abfrage gemäß Schritt 12 in den Zweig 12F und erzeugt in Schritt 13 eine entsprechende Warnung, welche ausgegeben wird. Falls das checked-flag jedoch gesetzt war, verzweigt die Abfrage gemäß Schritt 12 in den Zweig 12T und unterdrückt die Ausgabe der Warnung durch Umgehung des Schritts 13.
  • In Schritt 14 wird die Zählvariable n inkrementiert, um auf diese Weise den nächsten, folgenden Zustand aufzurufen.
  • In der Abfrage gemäß Schritt 15 wird nun geprüft, ob die Zählvariable n innerhalb zulässiger Grenzen ist oder ob n einen Zustand referenziert, der nicht mehr existiert. Falls die Zählvariable n zulässig ist, verzweigt die Abfrage gemäß Schritt 15 zum Zweig 15T, so dass der Programmfluss zum Schritt 12 verzweigt. Falls jedoch die Zählvariable n ungültig ist, ist die Prüfung abgeschlossen.
  • In 3 ist der Algorithmus für die state-Funktion gemäß Schritt 12 dargestellt. Es versteht sich von selbst, dass der Schritt 10 in gleicher Weise auszubilden ist.
  • In einem Schritt 20 wird eine Zählvariable m auf den Wert 0 initialisiert. Diese Zählvariable m referenziert für den jeweiligen, ausgewählten Zustand eine entsprechende Zustandswechselbedingung, einschließlich einer Referenz auf den jeweiligen Folgezustand. In einem Schritt 21 wird abgefragt, ob ein checked-flag des ausgewählten Zustandes gesetzt ist. In diesem Fall wird der Programmfluss im Zweig 21T fortgesetzt. Falls das checked-flag jedoch nicht gesetzt ist, wird mit dem Zweig 21F fortgesetzt. Dabei ist zu berücksichtigen, dass das checked-flag jedes Zustandes zu Beginn des beschriebenen Algorithmus zurückgesetzt ist. Durch Setzen dieses checked-flags wird angezeigt, dass dieser Zustand bereits geprüft wurde und daher eine weitere Prüfung unterlassen werden kann. Auf diese Weise werden Endlosschleifen vermieden. Außerdem wird auf diese Weise die Effizienz des Algorithmus erheblich gesteigert, da doppelte und mehrfache Prüfungen desselben Zustandes zuverlässig ausgeschlossen werden.
  • Vom Zweig 21F wird der Schritt 22 ausgeführt, in dem das checked-flag gesetzt wird. Damit wird angezeigt, dass der aktuelle Zustand nunmehr der Prüfung unterworfen wurde und eine erneute Prüfung auszuschließen ist.
  • Im folgenden Schritt 23 erfolgen eine oder mehrere Abfragen zum Zustand, die insbesondere die Vollständigkeit und Konsistenz betreffen. Im Falle von Inkonsistenzen oder Unvollständigkeiten wird in den Zweig 28F verzweigt und in Schritt 24 eine entsprechende Warnung ausgegeben. Anderenfalls wird Schritt 24 durch Auswahl des Zweiges 24T unterdrückt.
  • Im folgenden Schritt 25 wird ein Zeiger der Übergangsbedingung mit dem Index m ausgelesen und in Schritt 26 die Funktion state mit dem auf diese Weise ermittelten Zeiger als Parameter aufgerufen. Damit ergibt sich ein rekursiver Aufruf der Funktion state, durch den sichergestellt ist, dass alle möglichen Zustände und Zustandsübergänge berücksichtigt werden.
  • In Schritt 27 wird die Zählvariable m inkrementiert, um die nächste Übergangsbedingung zu prüfen.
  • In Schritt 28 wird abgefragt, ob die Zählvariable m noch innerhalb erlaubter Grenzen liegt. Falls dies der Fall ist, wird in den Zweig 28T verzweigt, so dass dann wieder der Schritt 21 ausgeführt wird. Referenziert die Zählvariable m jedoch einen ungültigen Zustand, so wird in den Zweig 28F verzweigt und die Abfrage gemäß Schritt 29 ausgeführt. In dieser Abfrage gemäß Schritt 29 wird geprüft, ob die Zählvariable m einen Wert > 1 erreicht hat. Falls dies der Fall ist, wird die state-Funktion durch Wahl des Zweiges 29T beendet. Anderenfalls wird der Zweig 29F angewählt und in Schritt 30 die Warnung erzeugt, dass kein Folgezustand erreichbar ist.
  • Der Ablauf dieses Algorithmus ist durch den rekursiven Aufruf der Funktion state relativ komplex, aber anders nur sehr schwer realisierbar. Die Funktion state beginnt dabei mit dem Ausgangszustand gemäß Schritt 10 und prüft diesen nach den vorgegebenen Kriterien. Für den Fall, dass der Zustand bereits geprüft wurde, werden sämtliche Prüfungen, einschließlich der Aufrufe von Folgezuständen unterdrückt. Der rekursive Algorithmus geht zunächst die Zustände in der Reihenfolge der ersten in jedem Zustand genannten Übergangsbedingung durch, bis entweder kein Folgezustand mehr gefunden werden kann oder ein Zustand aufgerufen wird, der bereits geprüft wurde. Anschließend wird die zuletzt gewählte Übergangsbedingung des Zustandsautomaten auf die in der Datenbank nächste angegebene Übergangsbedingung verändert und der Algorithmus in gleicher Weise ausgeführt. Demnach werden die einzelnen Übergangsbedingungen des Initialisierungszustandes in der Regel zuletzt bearbeitet.

Claims (19)

  1. Verfahren zum Computer gestützten, automatisierten Überprüfen von mindestens einer Softwareanforderung, welche mindestens eine weitere Softwareanforderung als Subkomponente aufweist, wobei die Softwareanforderungen in mindestens einer Datenbank gespeichert sind und zumindest eine Schnittstellenbeschreibung für mindestens ein Eingangs- und/oder Ausgangssignal und mindestens eine funktionelle Beschreibung in formalisierter Form aufweisen, dadurch gekennzeichnet, dass die Überprüfung das Computer gestützte Prüfen der Vollständigkeit und/oder Konsistenz der Schnittstellenbeschreibung und/oder der funktionellen Beschreibung einschließt, und sich die genannte Überprüfung auch auf die weiteren Softwareanforderungen erstreckt.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Prüfung umfasst, ob eine in der Schnittstellenbeschreibung genannte Schnittstelle zu initialisieren und/oder das Signal zu filtern und/oder zu prüfen ist.
  3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass die Prüfung umfasst, wie eine in der Schnittstellenbeschreibung genannte Schnittstelle zu initialisieren und/oder das Signal zu filtern und/oder zu prüfen ist.
  4. Verfahren nach mindestens einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass die Prüfung umfasst, ob ein Gültigkeitsbereich eines in der Schnittstellenbeschreibung genannten Signals definiert ist.
  5. Verfahren nach mindestens einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass die Prüfung umfasst, ob eine Datenbreite und/oder ein Vorzeichen zwischen der in der Schnittstellenbeschreibung genannten Schnittstelle und einer der Schnittstelle zugeordneten Variablen kompatibel sind.
  6. Verfahren nach mindestens einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass die Prüfung umfasst, ob jeder Zustand der funktionellen Beschreibung aufgrund von definierten Zustandswechselbedingungen erreichbar ist.
  7. Verfahren nach mindestens einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass die Prüfung umfasst, ob von jedem Zustand der funktionellen Beschreibung ein Folgezustand erreichbar ist.
  8. Verfahren nach mindestens einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, dass die Prüfung umfasst, ob jede Zustandsänderungsbedingung der funktionellen Beschreibung. einen eindeutigen Folgezustand auswählt.
  9. Verfahren nach mindestens einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, dass die Prüfung umfasst, ob jedes Signal der Schnittstellenbeschreibung in der funktionellen Beschreibung verwendet wird.
  10. Verfahren nach mindestens einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, dass die Prüfung umfasst, ob jedes in der Schnittstellenbeschreibung definierte Ausgangssignal oder Ausgangssignaländerung eindeutig von in der funktionellen Beschreibung definierten Zuständen definiert ist.
  11. Verfahren nach mindestens einem der Ansprüche 1 bis 10, dadurch gekennzeichnet, dass die Prüfung umfasst, ob die funktionelle Beschreibung mindestens eine Abhängigkeit einer Zustandsänderungsbedingung von einem Signal definiert, welches in derselben funktionellen Beschreibung erzeugt werden soll.
  12. Verfahren nach mindestens einem der Ansprüche 1 bis 11, dadurch gekennzeichnet, dass die Prüfung umfasst, ob die funktionelle Beschreibung mindestens eine Zustandswechselbedingungen definiert, welche mindestens einen Wert nutzt, der nicht in der zugeordneten Schnittstellenbeschreibung definiert ist.
  13. Verfahren nach mindestens einem der Ansprüche 1 bis 12, dadurch gekennzeichnet, dass die Prüfung umfasst, ob in der Schnittstellenbeschreibung definierte Werte in der funktionellen Beschreibung verwendet werden.
  14. Verfahren nach mindestens einem der Ansprüche 1 bis 13, dadurch gekennzeichnet, dass die Prüfung umfasst, ob ein berechneter Wert genutzt wird, bevor er überschrieben wird.
  15. Verfahren nach mindestens einem der Ansprüche 1 bis 14, dadurch gekennzeichnet, dass die funktionelle Beschreibung verschiedene Modi definiert und die Prüfung umfasst, ob für jeden Modus eindeutig festgelegt ist, ob mindestens eine der funktionellen Beschreibungen auszuführen ist.
  16. Verfahren nach Anspruch 15, dadurch gekennzeichnet, dass die Prüfung umfasst, ob von jedem Modus jeder andere Modus erreichbar oder dessen Erreichbarkeit ausdrücklich verneint ist.
  17. Verfahren zum Computer gestützten, automatischen Erzeugen von Testdaten für eine Software, die eine Softwareanforderung erfüllen soll, welche in einer Datenbank gespeichert ist und zumindest Schnittstellenbeschreibungen und mindestens eine funktionelle Beschreibung in formalisierter Form aufweisen, dadurch gekennzeichnet, dass die Schnittstellenbeschreibungen aller Eingangssignale analysiert werden, wobei alle in der Schnittstellenbeschreibung eingetragenen Werte jedes Eingangssignals sortiert werden, um Testwerte zu erzeugen, die zwischen diesen eingetragenen Werten liegen und unterschiedliche Permutationen dieser Testwerte als Testdaten ausgegeben werden.
  18. Verfahren nach mindestens einem der Ansprüche 1 bis 17, dadurch gekennzeichnet, dass die Softwareanforderung eine Software betrifft, welche zur Steuerung und/oder Regelung mindestens eines technischen Prozesses vorgesehen ist.
  19. Verfahren nach Anspruch 18, dadurch gekennzeichnet, dass die Software auf mindestens einem Controller läuft.
DE102017004348.5A 2017-05-08 2017-05-08 Verfahren zur Computer gestützten, automatisierten Überprüfung von Software-Anforderungen Withdrawn DE102017004348A1 (de)

Priority Applications (6)

Application Number Priority Date Filing Date Title
DE102017004348.5A DE102017004348A1 (de) 2017-05-08 2017-05-08 Verfahren zur Computer gestützten, automatisierten Überprüfung von Software-Anforderungen
CA3062465A CA3062465A1 (en) 2017-05-08 2018-05-08 Method for a computer-aided automated verification of requirements
EP18726317.3A EP3622403A2 (de) 2017-05-08 2018-05-08 Verfahren zur computergestützten, automatisierten überprüfung von anforderungen
CN201880042869.9A CN110799951A (zh) 2017-05-08 2018-05-08 用于计算机辅助地自动化地检查需求的方法
PCT/EP2018/000246 WO2018206146A2 (de) 2017-05-08 2018-05-08 Verfahren zur computer gestützten, automatisierten überprüfung von anforderungen
US16/611,234 US20200159980A1 (en) 2017-05-08 2018-05-08 Method for a computer-aided automated verification of requirements

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102017004348.5A DE102017004348A1 (de) 2017-05-08 2017-05-08 Verfahren zur Computer gestützten, automatisierten Überprüfung von Software-Anforderungen

Publications (1)

Publication Number Publication Date
DE102017004348A1 true DE102017004348A1 (de) 2018-11-08

Family

ID=62222572

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017004348.5A Withdrawn DE102017004348A1 (de) 2017-05-08 2017-05-08 Verfahren zur Computer gestützten, automatisierten Überprüfung von Software-Anforderungen

Country Status (6)

Country Link
US (1) US20200159980A1 (de)
EP (1) EP3622403A2 (de)
CN (1) CN110799951A (de)
CA (1) CA3062465A1 (de)
DE (1) DE102017004348A1 (de)
WO (1) WO2018206146A2 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022000208A1 (de) 2022-01-20 2023-07-20 GS Licence Pool UG (haftungsbeschränkt) Verfahren zur Computer gestützten Prüfung einer Anforderungsspezifikation eines technischen Prozesses

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112286041B (zh) * 2020-09-09 2023-02-03 许继集团有限公司 一种电气设备冗余监控装置切换方法及切换控制系统
CN113392022B (zh) * 2021-06-30 2024-05-31 中国农业银行股份有限公司 测试需求分析方法、设备、计算机可读介质和程序产品

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10131438B4 (de) * 2001-06-29 2005-06-02 Daimlerchrysler Ag Verfahren zur Entwicklung einer technischen Komponente
US7392492B2 (en) * 2005-09-30 2008-06-24 Rambus Inc. Multi-format consistency checking tool
US20090144695A1 (en) * 2007-11-30 2009-06-04 Vallieswaran Vairavan Method for ensuring consistency during software development
DE102008039380A1 (de) * 2008-08-22 2010-02-25 It-Designers Gmbh Prüfsystem
US9134976B1 (en) * 2010-12-13 2015-09-15 Reservoir Labs, Inc. Cross-format analysis of software systems
DE102012217743B4 (de) * 2012-09-28 2018-10-31 Siemens Ag Überprüfung einer Integrität von Eigenschaftsdaten eines Gerätes durch ein Prüfgerät
JP6045050B2 (ja) * 2013-03-19 2016-12-14 Necソリューションイノベータ株式会社 ユーザインタフェース一貫性チェック方法、装置およびプログラム
US9355206B2 (en) * 2014-01-09 2016-05-31 Cavium, Inc. System and method for automated functional coverage generation and management for IC design protocols

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022000208A1 (de) 2022-01-20 2023-07-20 GS Licence Pool UG (haftungsbeschränkt) Verfahren zur Computer gestützten Prüfung einer Anforderungsspezifikation eines technischen Prozesses
WO2023138894A1 (de) 2022-01-20 2023-07-27 Gs Licence Pool Ug Verfahren zur computer gestützten prüfung einer anforderungsspezifikation eines technischen prozesses

Also Published As

Publication number Publication date
CA3062465A1 (en) 2019-11-05
US20200159980A1 (en) 2020-05-21
WO2018206146A3 (de) 2019-01-24
EP3622403A2 (de) 2020-03-18
WO2018206146A2 (de) 2018-11-15
CN110799951A (zh) 2020-02-14

Similar Documents

Publication Publication Date Title
EP1950639B1 (de) Verfahren zum Betreiben einer Prozessanlage, Prozessanlage und Computerprogrammprodukt
DE102017004348A1 (de) Verfahren zur Computer gestützten, automatisierten Überprüfung von Software-Anforderungen
DE102012016403B4 (de) Verfahren zur Parametrierung eines Feldgeräts und entsprechendes Feldgerät und System zur Parametrierung
DE112011100168T5 (de) Erfassen von Diagnosedaten in einer Datenverarbeitungsumgebung
EP2433189B1 (de) Verfahren zum analysieren von meldungsarchiven und korrespondierendes computerprogramm zur ableitung eines endlichen automaten
EP2924522B1 (de) Verfahren zur Beeinflussung eines Steuerprogramms
EP4075220B1 (de) Vorrichtung und verfahren zur identifizierung von veränderungen an einer maschinenanordnung
EP2990941B1 (de) Computerimplementiertes verfahren zur erzeugung eines steuergeräteprogrammcodes und diesbezügliche meldungsverwaltungsumgebung
EP3454154A1 (de) Automatisierte erkennung von statistischen abhängigkeiten zwischen prozessmeldungen
DE102017204400A1 (de) Verfahren zum Betrieb eines Sensors und Verfahren und Vorrichtung zum Analysieren von Daten eines Sensors
EP2965157B1 (de) Verfahren und vorrichtung zum betreiben einer prozess- und/oder fertigungsanlage
EP2402832B1 (de) Verfahren und Anzeigesystem zur Kalibrierung von normierten Anzeigen von Prozessgrössen
DE102016117568B3 (de) Verfahren zum Betrieb eines Watchdog umfassend eine Mustererkennung für wiederkehrende Lastsituationen
EP3779797A1 (de) Verfahren zur rechnergestützten vorausschauenden instandhaltung eines technischen systems
DE112014003069T5 (de) Funktionseinheit, Analogeingabeeinheit und programmierbares Steuerungssystem
AT521649B1 (de) Verfahren zur Ermittlung von Prozessabläufen
DE10120235B4 (de) Verfahren zur informationsverlustarmen Anbindung eines Sensors für die Übermittlung statistischer Daten an ein übergeordnetes Auswertesystem
EP1491985B1 (de) Verfahren zur Zeitbildung in einer Datenverarbeitungseinheit
EP3173928A1 (de) Verfahren und vorrichtung zum überprüfen eines komponentenfehlerbaums
DE2949806C2 (de) Digitales Ausfiltern von Störimpulsen
EP1507181B1 (de) Verfahren und Vorrichtung zur mehrstufigen Datenverarbeitung, insbesondere zur Diagnose, in einer technischen Anlage
WO2007065571A1 (de) System und verfahren zur automatischen prüfung von planungsergebnissen
DE102016015755A1 (de) Verfahren zum Betrieb eines Watchdog umfassend eine Mustererkennung für wiederkehrende Lastsituationen mit einem zweistufigen Ergebnisspeicher
EP2007070B1 (de) Verfahren zur Darstellung von Prozessinformationen für eine Datenverarbeitungsanlage sowie Datenverarbeitungssystem
DE10349550A1 (de) Verfahren und Vorrichtung zur rechnergestützten Analyse eines technischen Systems

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee