Kontrolliertes Englisch für Anforderungsspezifikationen
Kontrolliertes Englisch für Anforderungsspezifikationen
Kontrolliertes Englisch für Anforderungsspezifikationen
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
26 Kapitel 2<br />
Anforderungen und SpeziÞkationen 25<br />
Die GŸltigkeit eines Beweises hŠngt ausschliesslich von der syntaktischen Struktur der<br />
Formeln ab und kommt vollstŠndig mechanisch - ohne die Verwendung von spezi-<br />
wickler beim Schreiben einer formalen Spezifikation eine intendierte Interpretation im<br />
Kopf und assoziiert die syntaktische Formel mit einem ganz bestimmten Sachverhalt<br />
fischem Weltwissen - zustande.<br />
im Diskursbereich [vgl. Hogger 90:27].<br />
Any attempt to encode real-world requirements in the computer must ultimately entail<br />
their translation into symbols and hence only contribute further to the computer«s internal<br />
syntactic world [Hogger 90:55].<br />
Die einzelnen Elemente aus der syntaktischen DomŠne einer formalen Sprache brauchen<br />
nicht unbedingt textuell zu sein. Solange die Interpretation eindeutig ist, kann<br />
graphischen Elementen genausogut ein formale Semantik gegeben werden. Eine formale<br />
Spezifikation ist dann eindeutig, wenn jedes syntaktische Element auf genau eine<br />
Schlussendlich sind fŸr einen Computer immer nur syntaktische Symbole verfŸgbar,<br />
deren Bezug zur Welt erst durch eine intendierte Interpretation hergestellt wird.<br />
EntitŠt aus dem Diskursbereich abgebildet werden kann:<br />
Die Axiome zusammen mit allen durch die Inferenzregeln abgeleiteten Theoremen bilden<br />
eine Theorie des Anwendungsbereichs.<br />
Definition: Given a specification language, , a specification syn in Syn is<br />
unambiguous if and only if Sat maps syn to exactly one specificand set [Wing 94:506].<br />
Mit der Hilfe einer Beweismethode, die auf einer Menge von Inferenzregeln und einer<br />
Suchstrategie beruht, kann ein Programm auf Konsistenz und Korrektheit (hinsichtlich<br />
einer formalen Spezifikation) geprŸft werden. Werkzeuge wie Theorembeweiser<br />
oder Modellchecker unterstŸtzen den Softwareentwickler beim Nachweisen, ob bestimmte<br />
Eigenschaften aus der Spezifikation ableitbar sind, oder helfen beim †berprŸfen,<br />
ob beispielsweise ein vorliegendes System mit den Eigenschaften eines endlichen<br />
Automaten ein Modell fŸr die Spezifikation ist [Clarke & Wing 96:5 ff.]. DarŸber<br />
hinaus wird es mšglich, bestimmte Klassen von Fehlern leichter zu finden oder durch<br />
Neben der Eindeutigkeit spielt die Konsistenz eine zentrale Rolle bei der Definition<br />
von formalen Spezifikationssprachen. Denn die Konsistenz einer formalen Spezifikation<br />
ist Voraussetzung dafŸr, dass nichts WidersprŸchliches aus ihr abgeleitet werden<br />
kann.<br />
Definition: Given a specification language, , a specification syn in Syn is<br />
consistent (or satisfiable) if and only if Sat maps syn to a non-empty specificand set [Wing<br />
94:506].<br />
formalisierte Fragen intendierte Interpretationen zu ŸberprŸfen.<br />
Insbesondere eignen sich Spezifikationen, die in einer formalen Sprache geschrieben<br />
sind, fŸr die automatische Weiterverarbeitung. Liegt der formalen Sprache ein operationales<br />
Modell zugrunde, dann kann die VollstŠndigkeit der Spezifikation durch den<br />
Anwendungsspezialisten im Experiment ŸberprŸft werden. Falls ein transformationsbasiertes<br />
Software-Entwicklungsparadigma verfolgt wird, kann durch die Anwendung<br />
einer Reihe von korrektheitsbewahrenden Transformationen aus einer formalen<br />
Spezifikation sogar ein lauffŠhiges Programm erzeugt werden [Balzer 85:1257 ff.,<br />
Fromherz 93:16].<br />
Logikprogrammierung - Prolog ist die bekannteste Vertreterin - bietet dem Softwareentwickler<br />
ein Werkzeug an, Logik als formale Sprache zur Beschreibung von Sachverhalten<br />
zu verwenden. Eine Logik-Programmierumgebung besteht aus einer Logikkomponente,<br />
in der das Wissen Ÿber das zu lšsende Problem spezifiziert wird, und<br />
einer Kontrollkomponente, die ein Lšsungsverfahren fŸr das Problem aufgrund einer<br />
Die meisten formalen Spezifikationssprachen sind zusammen mit einer Modelltheorie<br />
und einer Beweistheorie definiert. Die Modelltheorie untersucht die Relationen zwischen<br />
syntaktischen Formeln und dem sprachexternen Diskursbereich und fŸhrt den<br />
Begriff der logischen Konsequenz ein. Wenn jede Relation (= Interpretation), die Modell<br />
von M ist, auch Modell von F ist, so sagt man, dass F eine logische Konsequenz aus<br />
der Formelmenge M ist, geschrieben: M |= F. Im Gegensatz zur Modelltheorie interessiert<br />
sich die Beweistheorie fŸr die syntaktische Ableitbarkeit von neuen wohlgeformten<br />
Formeln (= Theoremen) aus vorgegebenen Formeln (= Axiomen) unter Verwendung<br />
von Schlussregeln (= Inferenzregeln). Ein Theorem F ist ableitbar, wenn es<br />
unter Anwendung der Inferenzregeln aus einer Axiomenmenge M in endlich vielen<br />
Schritten bewiesen werden kann, geschrieben: M |- F. Eine logische Beweismethode<br />
sollte korrekt und vollstŠndig sein. Korrekt ist sie dann, wenn fŸr jede Axiomenmenge<br />
M jedes ableitbare Theorem F auch eine logische Konsequenz der Axiome ist. Umgekehrt<br />
ist eine Beweismethode vollstŠndig, wenn fŸr jede Axiomenmenge M jedes Theorem<br />
F, das aus den Axiomen folgt, auch ableitbar ist. Sind beide Forderungen erfŸllt,<br />
dann schreibt man: M |- F º M |= F [vgl. Fuchs 90:116].