Formelle Überprüfung

Im Zusammenhang der Hardware und Softwaresysteme ist formelle Überprüfung die Tat des Beweises oder Widerlegens der Genauigkeit von beabsichtigten Algorithmen, die einem System in Bezug auf eine bestimmte formelle Spezifizierung oder Eigentum mit formellen Methoden der Mathematik unterliegen.

Gebrauch

Formelle Überprüfung kann im Beweis der Genauigkeit von Systemen nützlich sein wie: kryptografische Protokolle, combinational Stromkreise, Digitalstromkreise mit dem inneren Gedächtnis und als Quellcode ausgedrückte Software.

Die Überprüfung dieser Systeme wird durch die Versorgung eines formellen Beweises auf einem abstrakten mathematischen Modell des Systems, der Ähnlichkeit zwischen dem mathematischen Modell und der Natur des Systems getan, das durch den Aufbau sonst bekannte. Beispiele von mathematischen Gegenständen haben häufig gepflegt zu modellieren Systeme sind: Zustandsmaschinen, etikettierte Übergang-Systeme, Netze von Petri, haben Automaten, hybride Automaten, Prozess-Algebra, formelle Semantik von Programmiersprachen wie betriebliche Semantik, denotational Semantik, axiomatische Semantik und Logik von Hoare zeitlich festgelegt.

Annäherungen an die formelle Überprüfung

Eine Annäherung und Bildung sind Musterüberprüfung, die aus einer systematisch erschöpfenden Erforschung des mathematischen Modells besteht (das ist für begrenzte Modelle möglich, sondern auch für einige unendliche Modelle, wo unendliche Sätze von Staaten begrenzt mit der Abstraktion effektiv vertreten werden können). Gewöhnlich besteht das daraus, alle Staaten und Übergänge im Modell, durch das Verwenden kluger und bereichsspezifischer Abstraktionstechniken zu erforschen, um ganze Gruppen von Staaten in einer einzelnen Operation zu denken und Rechenzeit zu reduzieren. Durchführungstechniken schließen Zustandraumenumeration, symbolische Zustandraumenumeration, abstrakte Interpretation, symbolische Simulation, Abstraktionsverbesserung ein. Die Eigenschaften, nachgeprüft zu werden, werden häufig in der zeitlichen Logik, wie geradlinige zeitliche Logik (LTL) oder rechenbetonte Baumlogik (CTL) beschrieben.

Eine andere Annäherung ist logische Schlussfolgerung. Es besteht daraus, eine formelle Version des mathematischen Denkens über das System, gewöhnlich mit der Lehrsatz-Beweis-Software wie ein HOL Lehrsatz prover, der ACL2, Isabelle oder Lehrsatz von Coq provers zu verwenden. Das wird gewöhnlich nur teilweise automatisiert und wird durch das Verstehen des Benutzers des Systems gesteuert gültig zu machen. Neue Werkzeuge wie Vollkommener Entwickler und Escher C Verifier versuchen, den Probeprozess völlig zu automatisieren.

"Nichtklassische" Logik wie geradlinige zeitliche und Logiklogik kann auch in der logischen Schlussfolgerung nicht nur in der Musterüberprüfung verwendet werden.

Formelle Überprüfung für die Software

Die logische Schlussfolgerung für die formelle Überprüfung der Software kann weiter geteilt werden in:

  • die traditionelleren 1970er Jahre nähern sich, in dem Code zuerst auf die übliche Weise geschrieben, und nachher richtig in einem getrennten Schritt bewiesen wird;
  • abhängig getippte Programmierung, in die die Typen von Funktionen (mindestens ein Teil) die Spezifizierungen jener Funktionen und Datentypprüfung der Code einschließen, gründet seine Genauigkeit gegen jene Spezifizierungen. Völlig gezeigte abhängig getippte Sprachen unterstützen die erste Annäherung als ein spezieller Fall.

Ein ein bisschen verschiedener (und ergänzend) Annäherung ist Programm-Abstammung, in der effizienter Code von funktionellen Spezifizierungen durch eine Reihe von Genauigkeit bewahrenden Schritten erzeugt wird. Ein Beispiel dieser Annäherung ist der Formalismus des Vogels-Meertens, und diese Annäherung kann als eine andere Form der Genauigkeit durch den Aufbau gesehen werden.

Überprüfung und Gültigkeitserklärung

Überprüfung ist ein Aspekt, eine Fitness eines Produktes zum Zweck zu prüfen. Gültigkeitserklärung ist der Ergänzungsaspekt. Häufig kennzeichnet man den gesamten Überprüfungsprozess als V & V.

  • Gültigkeitserklärung: "Versuchen wir, das richtige Ding zu machen?" d. h. wird das Produkt zu den wirklichen Bedürfnissen des Benutzers angegeben?
  • Überprüfung: "Haben wir gemacht, was wir versuchten zu machen?" d. h. passt sich das Produkt den Spezifizierungen an?

Der Überprüfungsprozess besteht aus statischen/strukturellen und dynamischen/Verhaltens-Aspekten. Z.B für ein Softwareprodukt kann man den Quellcode untersuchen, der (statisch) und gegen spezifische (dynamische) Testfälle geführt ist. Gültigkeitserklärung kann gewöhnlich nur dynamisch getan werden, d. h. das Produkt wird durch das Stellen davon durch den typischen und atypischen Gebrauch geprüft ("Entspricht sie alle Gebrauch-Fälle hinreichend?").

Industriegebrauch

Das Wachstum in der Kompliziertheit von Designs vergrößert die Wichtigkeit von formellen Überprüfungstechniken in der Hardware-Industrie. Zurzeit wird formelle Überprüfung durch die meisten oder alle Haupthardware-Gesellschaften verwendet, aber sein Gebrauch in der Softwareindustrie ermattet noch. Das konnte dem größeren Bedürfnis in der Hardware-Industrie zugeschrieben werden, wo Fehler größere kommerzielle Bedeutung haben. Wegen der potenziellen feinen Wechselwirkungen zwischen Bestandteilen ist es immer schwieriger, einen realistischen Satz von Möglichkeiten durch die Simulation auszuüben. Wichtige Aspekte des Hardware-Designs sind automatisierten Probemethoden zugänglich, formelle Überprüfung leichter machend, einzuführen und produktiver.

, mehrere Betriebssysteme sind formell nachgeprüft worden:

Der sichere Eingebettete L4 Mikrokern von NICTA, verkauft gewerblich als seL4 durch OK Laboratorien; OSEK/VDX hat Echtzeitbetriebssystem ORIENTAIS durch die Normale chinesische Ostuniversität gestützt; grüne Hügel-Softwareintegrität Betriebssystem; und PikeOS von SYSGO.

Siehe auch

  • Automatisierter Lehrsatz, der sich erweist
  • Formelle Gleichwertigkeit, die überprüft
  • TAUMELN
  • Probekontrolleur
  • Eigentumsspezifizierungssprache
  • Ausgewählte formelle Überprüfungsbibliografie
  • Statische Codeanalyse
  • Zeitliche Logik in der Zustandsüberprüfung
  • Schlagen Sie Silikongültigkeitserklärung an
  • Intelligente Überprüfung
  • Laufzeitüberprüfung

Zeitachse der Luftfahrt / Henry Darcy
Impressum & Datenschutz