BTC TestStack

Formale Spezifikation und formale Verifikation

Was wäre, wenn Ihr Computer Ihre Anforderungen verstehen könnte?

Natürlichsprachliche Anforderung

Der Bremsbefehl muss sich nach dem Freigabesignal stabilisieren – innerhalb kurzer Zeit.

Formalisiert (Universal Pattern)
AUSLÖSERenable == true
AKTION|brake − target| ≤ 0.5
INNERHALBt ≤ 20 ms
Für alle Eingaben und Kalibrierungen nachgewiesen
Model Checking · keine erreichbare Verletzung
Die Herausforderung

Natürliche Sprache lässt Interpretationsspielraum.

Zwischen einer schriftlichen Anforderung und einem sicheren System klaffen zwei Lücken. Auch beliebig viele Tests schließen sie nicht.

Mehrdeutigkeit → das falsche System

Verschiedene Ingenieure verstehen informelle Anforderungen unterschiedlich. „Schnell“, „kurz danach“, „stabil“ – jeder füllt die Lücken auf seine Weise. Auch die korrekte Umsetzung einer falsch verstandenen Anforderung führt zum falschen System.

Tests → die offene Frage

Tests prüfen die Verhaltensweisen, an die Sie gedacht haben. Sie können jedoch nicht alle Eingaben, Zustände und Kalibrierungen abdecken. Deshalb bleibt selbst bei einer vollständig bestandenen Testsuite die entscheidende Frage offen: „Kann meine Sicherheitsanforderung jemals verletzt werden?“

Tests prüfen Stichproben. Formale Verifikation liefert den Nachweis.

Formale Methoden schließen beide Lücken: Sie präzisieren die Anforderung und weisen anschließend nach, dass der Code sie erfüllt.

Formale Spezifikation

Eine intuitive Sprache.

BTC Universal Pattern ist eine grafische, intuitive Methode für das Requirements Engineering – Editor und Dokumentation sind dasselbe Artefakt. Sie beschreiben, welche Bedingung gelten muss; das Tool macht sie maschinenlesbar und bewahrt durchgängig die Rückverfolgbarkeit zur ursprünglichen Anforderung.

In drei Schritten zu einer maschinenlesbaren Anforderung
1Identifizieren

Ausdrücke markieren

Markieren Sie die aussagekräftigen Ausdrücke in der Anforderung und wandeln Sie sie in wiederverwendbare Makros um.

nach [enable],
das [brake settles]
2Strukturieren

Strukturieren und zeitlich festlegen

Platzieren Sie die Makros grafisch als Auslöser, Aktion und Timing – das Muster beseitigt die Mehrdeutigkeit.

Auslöser: enable
Aktion: brake settles
innerhalb von 20 ms
3Zuordnen

Mit Schnittstellen verknüpfen

Binden Sie jedes Makro an echte Systemsignale. Die Anforderung ist nun maschinenlesbar und ausführbar.

enable → ctrl.en
brake → act.trq
✓ maschinenlesbar
Die bidirektionale Rückverfolgbarkeit zur Quellanforderung bleibt bei jedem Schritt erhalten.
Vertrauenswürdige KI

KI-gestützte Formalisierung – der fehlende Baustein.

Formale Spezifikationen von Hand zu erstellen war aufwendig. Eine Anforderung zu formalisieren ist im Kern eine sprachliche Aufgabe – genau darin ist moderne KI stark.

Der BTC AI Assistant erstellt aus einer schriftlichen Anforderung den Entwurf eines Universal Pattern mit Auslöser, Aktion und Zeitvorgabe. Sie können ihn anschließend verfeinern, freigeben oder daraus Testfälle generieren.

Der BTC AI Assistant formalisiert eine schriftliche Anforderung als Universal Pattern mit Auslöser, Aktion und Zeitvorgabe.
Formale Verifikation

3 Use Cases für Ihren Verifikationsprozess.

Maschinenlesbare Anforderungen = automatisierte Verifikation.

01

Formaler Test

Vergleicht jeden vorhandenen Testfall gleichzeitig mit allen formalisierten Anforderungen und erkennt so Nebenwirkungen, für die ein Test nie entwickelt wurde, ohne zusätzlichen Aufwand.

02

Automatische Testgenerierung

Model Checking generiert genau die Testfälle, die in Ihrer Testsuite fehlen, und führt die Anforderungsabdeckung so deterministisch auf 100 % – statt durch Versuch und Irrtum.

03

Formale Verifikation

Model Checking liefert den mathematischen Nachweis, dass eine Anforderung niemals verletzt werden kann – keine Kombination aus Eingaben und Kalibrierungen erreicht den unsicheren Zustand – oder gibt ein konkretes Gegenbeispiel zurück.

Zentrale Vorteile

Was formale Methoden Ihnen bieten.

Bessere Anforderungen

Formalisierung schafft Präzision – unklare Anforderungen werden erkannt, bevor Code und Tests entstehen.

Aussagekräftige Abdeckung

Die Anforderungsabdeckung wird automatisch gemessen und vervollständigt – nicht geschätzt.

Erkennung von Nebenwirkungen

Jeder Test wird gegen alle Anforderungen geprüft – Regressionen werden ohne zusätzlichen Aufwand sichtbar.

100 % Abdeckung

Automatisch generierte Vektoren schließen die Lücken zur vollständigen Anforderungsabdeckung.

100 % Nachweis

Eine Garantie für alle Eingaben und Kalibrierungen.

Am eigenen Code nachweisen.

Eine Evaluierungslizenz umfasst einen Einführungsworkshop mit unseren Ingenieuren – vollständig eingerichtet anhand einer Ihrer realen Anforderungen.