07.10.2013 Aufrufe

Kontrolliertes Englisch für Anforderungsspezifikationen

Kontrolliertes Englisch für Anforderungsspezifikationen

Kontrolliertes Englisch für Anforderungsspezifikationen

MEHR ANZEIGEN
WENIGER ANZEIGEN

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].

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!