Was ist eine formale Überprüfung?
Die formale Verifizierung wird häufig beim Testen von Computerschaltungen und -software verwendet, wenn die Funktion dieser Systeme mithilfe mathematischer Formeln analysiert wird. Bei der Entwicklung von Software wird der Prozess in der Regel verwendet, um anhand eines festgelegten Modells zu zeigen, ob das Programm ordnungsgemäß funktioniert. Manchmal hat sich das theoretische Modell als unbefriedigend erwiesen. Zusätzlich zum Quellcode von Software kann die formale Verifizierung bei der Entwicklung von Kombinationsschaltungen verwendet werden, die zur Durchführung von Berechnungen in Computern sowie für den Computerspeicher verwendet werden. Die verschiedenen Ansätze umfassen neben verschiedenen Methoden auch eine nachträgliche Überprüfung, eine parallele Überprüfung und eine integrierte Überprüfung.
Bei der formalen Verifizierung werden mathematische Berechnungsverfahren, sogenannte Algorithmen, verwendet, um die Funktionen von Produkten in jedem Entwicklungsstadium zu testen. Softwareentwickler können Fehler oder Bugs sowohl im Quellcode als auch in dem Modell finden, mit dem sie ihn erstellt haben. Manchmal können grundlegende Änderungen an der Art und Weise, wie der Code geschrieben wird, vorgenommen werden, bevor ein Entwurfsfehler das Endergebnis beeinflusst. Der Überprüfungsschritt hilft im Allgemeinen festzustellen, ob das Produkt die beabsichtigten Aufgaben erfüllt und die Spezifikationen der Anwendung erfüllt, für die es vorgesehen ist.
Eine formelle Verifizierung kann erfolgen, wenn ein Produkt fertiggestellt ist. Dies wird als nachträgliche Verifizierung bezeichnet. Eine Standardmethode, die während des gesamten Entwurfs- und Entwicklungsprozesses verwendet wird, wird erst nach Fertigstellung des Systems analysiert. Das Auffinden schwerwiegender Fehler in dieser Phase führt häufig zu teuren und zeitaufwändigen Überarbeitungen. Entwicklung und Verifikation können auch von zwei getrennten Teams zur parallelen Verifikation durchgeführt werden. Durch die Kommunikation können sich die Entwickler während des gesamten Entwurfsprozesses auf unabhängige Aufgaben konzentrieren.
Integrierte Verifikation ist, wenn ein Team die Entwicklung und die erforderliche Bewertung durchführt. Komplexe mathematische Konzepte werden häufig verwendet, um die Leistungsfähigkeit des Produkts auf diesem Weg zu überprüfen. Die formalen Überprüfungsmethoden variieren zwischen den Projekten, eine häufig verwendete Methode ist jedoch die Modellprüfung. Ein Hardware- oder Softwaremodell besteht aus verschiedenen Eigenschaften, die Designer für das fertige Produkt wünschen. Das Modell und das System können regelmäßig überprüft werden, um festzustellen, ob die Eigenschaften übereinstimmen.
Eine andere Technik bei der formalen Verifikation besteht darin, mathematische Formeln und Logik zu verwenden, um ein System und seine Eigenschaften darzustellen. In einem formalen System definierte Regeln finden sich in der Regel in der Logik. Diese beiden Techniken verwenden verschiedene Mittel, um festzustellen, ob eine bestimmte Spezifikation eines Produkts erfüllt ist. Entwickler können im formalen Überprüfungsprozess verschiedene Arten von Software verwenden, die jeweils auf ein bestimmtes System oder eine bestimmte Programmiersprache zugeschnitten sind.