-
Stand der Technik
-
Die Offenbarung betrifft ein Verfahren, eine Vorrichtung und ein Computerprogramm zum Testen eines technischen Systems anhand eines Modells.
-
Bei der modellbasierten System-Entwicklung wird ein Modell des Systems erstellt und zum Testen des Systems verwendet. Das Modell, beispielsweise in UML oder SysML modelliert, besteht typischerweise aus Blöcken mit Ports und Verbindungen zwischen diesen Ports. Blöcke enthalten typischerweise weitere Blöcke, um das System in einer hierarchischen Weise zu zerlegen. Bei der modellbasierten Sicherheitsanalyse, MBSA, wird dem Modell eine weitere, sicherheitsorientierte Sicht auf das System hinzufügt. Eine Möglichkeit besteht darin, den Blöcken so genannte Sicherheitsverträge hinzuzufügen. Sicherheitsverträge leiten sich aus der vertragsbasierten Konstruktion ab und sind in der modellbasierten System-Entwicklung bekannt. Sicherheitsverträge dienen der kompositorischen Spezifikation von Sicherheitsanforderungen sicherheitsrelevanter Systeme, die der Komponentenstruktur hierarchischer Systemmodelle folgen und mit dieser verknüpft sind. Für eine jeweilige Komponente spezifiziert ein Sicherheitsvertrag beispielsweise sicherheitsbezogene „Annahmen“, die durch die direkte Umgebung der Komponente, beispielsweise durch ihre übergeordneten Komponenten, erfüllt werden müssen, und entsprechende sicherheitsbezogene „Garantien“, die die Komponente ihrerseits erfüllen muss. Das Ziel von Sicherheitsverträgen ist es, Entwickler und Sicherheitsmanager bei der Bewertung der Sicherheit von Modellen, insbesondere der Fähigkeit der gewählten Komponentenstrukturen, alle Sicherheitsanforderungen zu erfüllen, zu unterstützen.
-
Es ist wünschenswert, diese Bewertung schnell und automatisiert durchzuführen.
-
Offenbarung der Erfindung
-
Diese Aufgabe wird gelöst, durch ein Verfahren gemäß Anspruch 1.
-
Eine Ausführungsform betrifft ein computerimplementiertes Verfahren zum Testen eines, insbesondere sicherheitsrelevanten, technischen Systems, insbesondere umfassend Software- und/oder Hardwarekomponenten, wobei das Verfahren die folgenden Schritte umfasst:
- Bereitstellen eines Modells des technischen Systems;
- Bereitstellen einer Menge an Anforderungen an das technische System; Konvertieren einer jeweiligen Anforderung in wenigstens einen formalen Ausdruck wenigstens einer formalen Logik, wobei die formale Logik aus einer Logikmenge umfassend wenigstens zwei formalen Logiken basierend auf Eigenschaften der Anforderungen ausgewählt wird;
- Überprüfen, ob eine jeweilige Anforderung durch das Modell erfüllt ist, wobei das Überprüfen durch Ausführen wenigstens einen Programmsolvers für einen jeweiligen formalen Ausdruck erfolgt.
-
Unter einer Anforderung wird hierbei eine Sicherheitsanforderung verstanden, wobei Sicherheitsanforderungen üblicherweise in einem sogenannten Sicherheitsvertrag festgelegt werden.
-
Durch Konvertieren der Anforderungen in formale Ausdrücke, kann die Bewertung der Sicherheit des Modells, insbesondere der Fähigkeit einer Komponentenstruktur des Modells, alle Sicherheitsanforderungen zu erfüllen, automatisiert durchgeführt werden.
-
Das Auswählen einer passenden formalen Logik aus der Logikmenge erfolgt basierend auf Eigenschaften der Anforderungen. Bei den Eigenschaften handelt es sich beispielsweise um Boolesche Ausdrücke, Wahrscheinlichkeit, zeitliche Aspekte. Dabei können üblicherweise nicht alle dieser Eigenschaften von jeder formalen Logik abgebildet werden. Es ist daher vorgesehen, dass basierend auf den Eigenschaften, wenigstens eine formale Logik ausgewählt wird, mit der die jeweilige Anforderung in einen formalen Ausdruck konvertiert werden kann.
-
Jede Logik kann von wenigstens einem passenden Programmsolver bearbeitet werden. Durch Auswählen der formalen Logik wird somit entsprechend auch wenigstens ein Programmsolver ausgewählt.
-
Gemäß einer Ausführungsform ist vorgesehen, dass eine jeweilige Anforderung wenigstens eine Aussage oder eine Verkettung von wenigstens zwei oder mehr Aussagen umfasst.
-
Gemäß einer Ausführungsform ist vorgesehen, dass das Auswählen einer jeweiligen formalen Logik aus der Logikmenge die folgenden Schritte umfasst: Bestimmen der formalen Logik mit dem geringsten Komplexitätsgrad aus der Logikmenge, mit der die Anforderung und/oder jede Aussage der Anforderung als ein formaler Ausdruck abgebildet werden kann. Bestimmte Eigenschaften der Anforderungen, beispielsweise rein Boolesche Ausdrücke, können durch mehrere, insbesondere alle formale Logiken, abgebildet werden. Bestimmte andere Eigenschaften, wie insbesondere Wahrscheinlichkeit oder Zeitabhängigkeit, können üblicherweise nur durch wenige oder nur eine bestimmte formale Logik abgebildet werden. Vorteilhafterweise wird eine Anforderung in wenigstens einen formalen Ausdruck der formalen Logik mit dem geringsten Komplexitätsgrad konvertiert, mit der die Anforderung abgebildet werden kann. Umfasst die Anforderung mehrere Aussagen, kann für jede Aussage bestimmt werden, mit welcher formalen Logik die Aussage abgebildet werden kann und somit die formale Logik bestimmt werden, die jede Aussage der Anforderung abbildet kann.
-
Vorteilhafterweise kann vorgesehen sein, dass mehrere Programmsolver parallel ausgeführt werden. Dabei kann es sich um voneinander verschiedene Programmsolver für einen formalen Ausdruck und/oder um mehrere Programmsolver für mehrere formale Ausdrücke handeln.
-
Gemäß einer Ausführungsform ist vorgesehen, dass eine jeweilige Anforderung umfassend wenigstens einen natürlich sprachlichen Ausdruck bereitgestellt wird.
-
Das Spezifizieren von Anforderungen an das System, kann auf diese Weise benutzerfreundlich zunächst als natürlich sprachlicher Ausdruck erfolgen. Das Konvertieren in einen formalen Ausdruck erfolgt anhand des Verfahrens.
-
Gemäß einer Ausführungsform ist vorgesehen, dass das Modell wenigstens zwei oder mehr Komponenten umfasst, und eine Anforderung wenigstens eine Annahme einer jeweiligen Komponente bezüglich des technischen Systems, insbesondere bezüglich weiterer Komponenten, und/oder wenigstens eine Garantie einer jeweiligen Komponente an das technische System, insbesondere an weitere Komponenten, umfassen, und das Auswählen der formalen Logik basierend auf Eigenschaften einer jeweiligen Annahme und/oder einer jeweiligen Garantie erfolgt.
-
Gemäß einer weiteren vorteilhaften Ausführungsform kann vorgesehen sein, dass das Verfahren weiter umfasst: Klassifizieren von Aussagen einer jeweiligen Anforderung in Abhängigkeit des Komplexitätsgrad der erforderlichen formalen Logik, und Ausführen der Schritte Konvertieren und Überprüfen auf Aussagen, die eine formale Logik unterhalb eines bestimmten Komplexitätsgrads erfordern. Das Klassifizieren erfolgt dabei vorteilhafterweise vor den gemäß den Anspruch 1 beschrieben Schritten. Anhand des Klassifizierens ist es möglich, zunächst Aussagen, die eine komplexere Logik erfordern, nicht zu betrachten und nur die Aussagen, die anhand einer simpleren Logik abgebildet werden können, zu konvertieren. Aufgrund der geringeren Komplexität erlaubt dies eine schnelle und effiziente Ausführung der Schritte des Konvertierens in formale Ausdrücke und des Überprüfens, ob die Anforderungen durch das Modell erfüllt sind.
-
In vorteilhafter Weiterbildung kann vorgesehen sein, dass die Schritte Konvertieren und Überprüfen anschließend weiter auf Aussagen, die eine formale Logik oberhalb eines bestimmten Komplexitätsgrads erfordern, ausgeführt werden. Dies kann beispielsweise erforderlich sein, wenn durch das Überprüfen im vorhergehenden Schritt keine eindeutige Aussage getroffen werden kann, ob die Anforderungen durch das Modell erfüllt sind oder nicht.
-
Gemäß einer vorteilhaften Ausführungsform ist vorgesehen, dass das Verfahren weiter umfasst: Anpassen des Modells abhängig davon, ob und/oder in welchem Umfang eine jeweilige Anforderung durch das Modell erfüllt ist. Nach dem Anpassen des Modells können die Schritte Konvertieren und/oder Überprüfen erneut ausgeführt werden. Vorteilhafterweise wird das Modell angepasst, bis alle Anforderungen erfüllt sind.
-
Weitere Ausführungsformen betreffen ein Computerprogramm zum Testen eines, insbesondere sicherheitsrelevanten, technischen Systems, insbesondere umfassend Software- und/oder Hardwarekomponenten, wobei das Computerprogramm computerlesbare Instruktionen umfasst, bei deren Ausführung durch einen Computer ein computerimplementiertes Verfahren gemäß den Ausführungsformen ausgeführt wird.
-
Weitere Ausführungsformen betreffen eine Vorrichtung zum Testen eines, insbesondere sicherheitsrelevanten, technischen Systems, insbesondere umfassend Software- und/oder Hardwarekomponenten, wobei die Vorrichtung zum Ausführen eines computerimplementierten Verfahrens gemäß den beschriebenen Ausführungsformen, insbesondere durch Ausführen eines Computerprogramms gemäß den Ausführungsformen, ausgebildet ist.
-
Weitere Merkmale, Anwendungsmöglichkeiten und Vorteile der Erfindung ergeben sich aus der nachfolgenden Beschreibung von Ausführungsbeispielen der Erfindung, die in den Figuren der Zeichnung dargestellt sind. Dabei bilden alle beschriebenen oder dargestellten Merkmale für sich oder in beliebiger Kombination den Gegenstand der Erfindung, unabhängig von ihrer Zusammenfassung in den Patentansprüchen oder deren Rückbeziehung sowie unabhängig von ihrer Formulierung bzw. Darstellung in der Beschreibung bzw. in der Zeichnung.
-
In der Zeichnung zeigt:
- 1 eine schematische Darstellung von Schritten eines Verfahrens gemäß einer ersten Ausführungsform in einem Flussdiagramm;
- 2 eine schematische Darstellung von Schritten eines Verfahrens gemäß einer ersten Ausführungsform in einem Flussdiagramm;
- 3 eine schematische Darstellung von Ausschnitten eines Modells des technischen Systems, und
- 4 eine schematische Darstellung einer Vorrichtung zum Ausführen eines Verfahrens gemäß 1 und 2.
-
Mit Bezug auf 1 und 2 wird im Folgenden ein Verfahren 100 zum Testen eines technischen Systems beschrieben.
-
Bei dem technischen System handelt es sich um ein sicherheitsrelevantes System, insbesondere umfassend Software- und/oder Hardware-Komponenten, beispielsweise für ein Kraftfahrzeug.
-
Das System wird gemäß der dargestellten Ausführungsform durch ein Modell 200, vergleiche 2, repräsentiert.
-
Das Modell 200 umfasst gemäß der dargestellten Ausführungsform beispielhaft die Komponente 210 und weitere Komponenten 220a, 220b.
-
Die Komponenten 210, 220a, 220b umfassen Ports 230, insbesondere Eingänge zum Empfangen von Daten und Ausgänge zum Versenden von Daten. Zwischen den Ports 230 der Komponenten 210, 220a, 220b sind Verbindungen 240 modelliert.
-
Weiter sind Anforderungen A, G an das technische System, insbesondere umfassend Annahmen A der Komponenten 210, 220a, 220b bezüglich des Systems, insbesondere weiterer Komponenten 210, 220a, 220b des Systems, und Garantien G der Komponenten 210, 220a, 220b an das System, insbesondere an die weiteren Komponenten 210, 220a, 220b des Systems, festgelegt.
-
In 2 sind schematisch die Annahmen A der Komponente 210 gegenüber der Komponenten 220a und die Garantien G der Komponente 210 gegenüber der Komponenten 220b dargestellt.
-
Bei dem System handelt es sich beispielsweise um ein technisches System eines Fahrzeugs. Die Komponente 210 ist beispielsweise ein Steuergerät oder eine Recheneinheit eines Steuergeräts, insbesondere für den Antrieb des Kraftfahrzeugs. Die Komponenten 220a sind beispielsweise Sensoren, insbesondere zur optischen Erfassung, insbesondere Kameras. Die Komponenten 220b sind beispielsweise Aktoren, insbesondere zum Ansteuern einer Antriebseinheit des Fahrzeugs und/oder einer Lenkeinheit des Fahrzeugs. Die Komponenten 220a, insbesondere die Sensoren, übertragen Daten an die Komponente 210, insbesondere das Steuergerät. Die Komponente 210 wiederrum überträgt Daten an die Komponenten 220b. Die Annahme A der Komponente 210 ist in diesem Fall beispielsweise, die Annahme, dass die Komponenten 220a zu vorgebbaren Zeiten Daten an die Komponente 210 übertragen. Die Garantie G der Komponente 210 ist in diesem Fall beispielsweise, die Garantie, dass die Komponente 210 zu vorgebbaren Zeiten Daten an die Komponenten 220b überträgt.
-
Die Annahme A lautet beispielsweise: „Kamerabild trifft alle 10ms mit einer Toleranz von 1% ein und alle relevanten Objekte werden mit einer Genauigkeit von 99% identifiziert, wenn das System aktiv ist“.
-
Die Garantie G lautet beispielsweise: „Drehmoment und Winkel werden zwischen 100ms und 120ms nach Eintreffen des Kamerabildes bereitgestellt, es sei denn, es tritt ein interner, nicht behebbarer Fehler auf. In diesem Fall werden bei aktivem System das vorherige Drehmoment und der vorherige Winkel bereitgestellt“.
-
Eine jeweilige Anforderung A, G umfasst wenigstens eine Aussage oder eine Verkettung von wenigstens zwei Aussagen. Die beispielhaft genannte Annahme A und Garantie G umfassen jeweils eine Verkettung von mehreren Aussagen.
-
Im Folgenden wird wieder mit Bezug auf 1 und 2 weiter das Verfahren 100 zum Testen beschrieben. Mit dem Verfahren 100 kann schnell und effizient überprüft werden, ob die Anforderung A, G durch das Modell, erfüllt sind.
-
Gemäß der dargestellten Ausführungsform umfasst das Verfahren 100 die folgenden Schritte:
- einen Schritt 110 zum Bereitstellen eines Modells des technischen Systems,
- einen Schritt 120 zum Bereitstellen einer Menge an Anforderungen A, G an das technische System,
- einen Schritt 140 zum Konvertieren einer jeweiligen Anforderung A, G in wenigstens einen formalen Ausdruck wenigstens einer formalen Logik, wobei die formale Logik aus einer Logikmenge L umfassend wenigstens zwei formalen Logiken basierend auf Eigenschaften der Anforderungen A, G in einem Schritt 130 ausgewählt wird, und
- einen Schritt 150 zum Überprüfen, ob eine jeweilige Anforderung A, G durch das Modell 200 erfüllt ist, wobei das Überprüfen 150 durch Ausführen wenigstens einen Programmsolvers für einen jeweiligen formalen Ausdruck erfolgt.
-
Gemäß den Ausführungsformen wird eine jeweilige Anforderung A, G zunächst umfassend wenigstens einen natürlich sprachlichen Ausdruck bereitgestellt 120. Ein Beispiel dafür ist durch die vorstehend beschriebenen Beispiele für die Annahme A und die Garantie G gegeben.
-
Anschließend wird für eine jeweilige Anforderung A, G und/oder eine jeweilige Aussage der Anforderung A, G eine jeweilige formale Logik aus der Logikmenge L ausgewählt 130.
-
Die Logikmenge L umfasst beispielsweise formale Logiken, wie Linear Temporal Logic, LTL, Computation Tree Logic, CTL, Probabilistic Computation Tree Logic, PCTL, Continuous Stochastic Logic, CSL, Signal Temporal Logic, STL.
-
Die genannten Logiken sind in der Lage, verschiedene Eigenschaften auszudrücken. Boolesche Ausdrücke können beispielsweise in allen formalen Logiken abgebildet werden. In LTL ist es beispielsweise möglich, auszudrücken, dass ein Ereignis immer, irgendwann oder im nächsten Zeitschritt eintritt. CSL erweitert die Möglichkeiten von LTL und erlaubt es, Pfadquantifizierungen, z. B. in allen Pfaden vom aktuellen Zustand oder in mindestens einem Pfad vom aktuellen Zustand, mit den zeitlichen Quantifizierungen aus LTL zu kombinieren.
-
PCTL und CSL erlauben die Einbeziehung probabilistischer Quantifizierung. STL ermöglicht die Darstellung von Signalen mit realen Werten und deren zeitabhängiges Verhalten.
-
Basierend auf den Eigenschaften der Anforderungen A, G und/oder Aussagen der Anforderungen A, G wird eine formale Logik ausgewählt, mit der die Eigenschaften der Anforderung A, G bzw. der Aussage abgebildet werden kann.
-
Wenn es für eine Anforderung A, G und/oder eine Aussage mehrere formale Logiken gibt, mit der diese abgebildet werden kann, kann es sich als vorteilhaft erweisen, wenn die formale Logik mit dem geringsten Komplexitätsgrad aus der Logikmenge L bestimmt wird, mit der die Anforderung A, G und/oder jede Aussage der Anforderung A, G als ein formaler Ausdruck abgebildet werden kann.
-
Wenn eine Anforderung mehrere Aussagen umfasst, wird jede Aussage der Anforderung A, G und/oder die Anforderung A, G im gesamten in eine formale Logik konvertiert. Dabei erweist es sich als vorteilhaft, wenn die formale Logik mit dem geringsten Komplexitätsgrad bestimmt wird, mit der die gesamte Anforderung A, G als ein formaler Ausdruck abgebildet werden kann.
-
Anschließend wird zum Überprüfen 150, ob eine jeweilige Anforderung A, G durch das Modell 200 erfüllt ist, wenigstens ein Programmsolver für einen jeweiligen formalen Ausdruck ausgeführt. Der formale Ausdruck ist dabei von einem von dem jeweiligen Programmsolver maschinenlesbar.
-
In der jeweiligen Logik ist der Programmsolver in der Lage, die Konsistenz des formalen Ausdrucks und damit der Anforderung A, G im Modell 200 nachzuweisen. Auf diese Weise kann nachgewiesen werden, ob und/oder in welchem Umfang eine jeweilige Anforderung A, G durch das Modell 200 erfüllt ist. Dies ermöglicht beispielsweise auch eine effiziente Analyse, ob eine bestimmte Komponente durch eine andere Komponente, insbesondere mit ähnlicher Funktionalität, ersetzt werden kann, ohne die Anforderungen A, G zu verletzen.
-
Es kann vorgesehen sein, dass mehrere Programmsolver parallel ausgeführt werden.
-
Für jede formale Logik gibt es wenigstens einen passenden Programmsolver. Durch Auswählen einer formalen Logik wird somit auch ein Programmsolver ausgewählt. Geeignete Programmsolver für die genannten formalen Logiken sind beispielsweise NuSMV oder NuXMV von FBK für LTL und CTL sowie PRISM für LTL, CSL und PCTL oder STORM für PCTL und CSL. Für STL existieren prototypische Programmsolver, beispielsweise beschrieben in Kyungmin Bae and Jia Lee. 2019. Bounded Model Checking of Signal Temporal Logic Properties using SyntacticSeparation.Proc. ACM Program. Lang.3, POPL, Article 51 (January 2019), https://doi.org/10.1145/3290364.
-
Anschließend kann das Modell 200 abhängig davon, ob und/oder in welchem Umfang eine jeweilige Anforderung A, G durch das Modell 200 erfüllt ist, angepasst werden. Dies ist durch den Schritt 160 dargestellt. Vorteilhafterweise kann nach Anpassen des Modells 200, das Verfahren 100, insbesondere der Schritt 150 zum Überprüfen erneut ausgeführt werden.
-
Eine weitere Ausführungsform des Verfahrens wird im Folgenden unter Bezugnahme auf 2 erläutert. Die mit denselben Bezugszeichen versehenen Schritte des Verfahrens entsprechen dabei in gleicher oder ähnlicher Weise den Schritten aus 1.
-
Gemäß der dargestellten Ausführungsform umfasst das Verfahren 100 die folgenden Schritte:
- einen Schritt 110 zum Bereitstellen eines Modells 200 des technischen Systems,
- einen Schritt 120 zum Bereitstellen einer Menge an Anforderungen A, G, umfassend wenigstens zwei Aussagen, an das technische System,
- einen Schritt 170 zum Klassifizieren von Aussagen einer jeweiligen Anforderung A, G in Abhängigkeit des Komplexitätsgrad der erforderlichen formalen Logik,
- einen Schritt 140 zum Konvertieren von Aussagen, die eine formale Logik unterhalb eines bestimmten Komplexitätsgrads erfordern, in wenigstens einen formalen Ausdruck wenigstens einer formalen Logik, wobei die formale Logik aus einer Logikmenge L umfassend wenigstens zwei formalen Logiken basierend auf Eigenschaften der Anforderungen A, G in einem Schritt 130 ausgewählt wird, und
- einen Schritt 150 zum Überprüfen, ob eine jeweilige Anforderung A, G durch das Modell 200 erfüllt ist, wobei das Überprüfen 150 durch Ausführen wenigstens eines Programmsolvers für einen jeweiligen formalen Ausdruck erfolgt.
-
Anstatt für alle Aussagen eine formale Logik automatisch auf der Grundlage der in der natürlich sprachlichen Form gegebenen Eigenschaften auszuwählen, werden gemäß der in 2 dargestellten Ausführungsform zunächst lediglich Aussagen die eine formale Logik unterhalb eines bestimmten Komplexitätsgrads erfordern, beispielsweise formale Logik erster Ordnung ohne zeitliche Aspekte, zu konvertieren 140. Auf Grund der geringeren Komplexität kann so schnell und effizient ein Ergebnis berechnet werden. Beispielsweise kann so schon festgestellt werden, dass eine bestimmte Anforderung A, G durch das Modell 200 nicht erfüllt ist. In einigen Fällen kann ein derartiges Ergebnis, dass nur auf formalen Ausdrücken einer Logik mit einem geringen Komplexitätsgrad basiert, bereits ausreichend sein.
-
Vorteilhafterweise können, beispielsweise für den Fall, dass das erste Ergebnis nicht ausreichend ist, insbesondere keine ausreichenden Erkenntnisse liefert, anschließend weitere Aussagen, die eine formale Logik mit einem höheren Komplexitätsgrad erfordern, konvertiert werden 140.
-
Anschließend können dann die Schritte Überprüfen 150 und gegebenenfalls Anpassen 160 ausgeführt werden.
-
In 4 ist eine Vorrichtung 300 zum Testen eines, insbesondere sicherheitsrelevanten, technischen Systems, insbesondere umfassend Software- und/oder Hardwarekomponenten, dargestellt. Die Vorrichtung 300 ist zum Ausführen des computerimplementierten Verfahrens 100 gemäß den beschriebenen Ausführungsformen ausgebildet.
-
Die Vorrichtung 300 weist wenigstens eine Recheneinrichtung 310 auf, der beispielsweise wenigstens eine Speichereinrichtung 320 zugeordnet sein kann, insbesondere zur zumindest zeitweisen Speicherung wenigstens eines Computerprogramms und/oder von Daten, insbesondere mittels der Recheneinrichtung 310 zu verarbeitenden Daten. Weiter bevorzugt kann in der Speichereinrichtung 320 ein Computerprogramm PRG1 abgelegt sein, zur zumindest zeitweisen Steuerung eines Betriebs der Vorrichtung 300, insbesondere zur Ausführung des Verfahrens 100 gemäß den Ausführungsformen.
-
Bei der Recheneinrichtung 310 handelt es sich beispielsweise um einen Mikroprozessor. Die Speichereinrichtung 320 umfasst wenigstens eines der folgenden Elemente: einen flüchtigen Speicher, insbesondere Arbeitsspeicher (RAM), einen nichtflüchtigen Speicher, insbesondere Flash-Speicher.
-
Gemäß der dargestellten Ausführungsform umfasst die Vorrichtung 300 eine weitere Speichereinrichtung 330, auf der beispielsweise das Modell 200 des technischen Systems gespeichert ist.
-
Gemäß der dargestellten Ausführungsform umfasst die Vorrichtung 300 eine weitere Speichereinrichtung 340, auf der beispielsweise die Logikmenge L und/oder eine Menge S an Programmsolver hinterlegt sind.
-
Über eine Schnittstelle 350 können die Anforderungen A, G als eine Benutzereingabe in einer natürlichen Sprache bereitgestellt 120 werden.