01.09.2013 Aufrufe

Anforderungsanalyse und Anforderungsdefinition für ...

Anforderungsanalyse und Anforderungsdefinition für ...

Anforderungsanalyse und Anforderungsdefinition für ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Nach der Beschreibung des Zustandsraumes können darauf mögliche Operationen<br />

beschrieben werden. Hier eine Operation, die es ermöglicht Geburtstage hinzuzufügen:<br />

AddBirthday<br />

∆BirthdayBook<br />

name? : NAME<br />

date? : DATE<br />

Durch die Deklaration ∆BirthdayBook wird ein Schema eingeleitet, das eine<br />

Zustandsänderung auf dem durch BirthdayBook beschriebenen Zustandsraum bewirkt.<br />

Dadurch werden vier Variablen eingeführt. Known <strong>und</strong> birthday als Zustände vor der<br />

Zustandsänderung, known’ <strong>und</strong> birthday’ als solche nach der Änderung. Jedes<br />

Variablenpaar muss die Invariante erfüllen. Als nächstes erfolgt die Deklaration der<br />

Eingänge in die Operation: name? <strong>und</strong> date?. Die Fragezeichen zeigen, dass die<br />

betreffende Variable eine Eingangsvariable ist. Eine Ausgangsvariable würde durch ein<br />

Ausrufezeichen gekennzeichnet werden.<br />

Durch „name? ∉ known” wird sichergestellt, dass der eingegangene Name noch nicht<br />

in der Menge known vorhanden ist. Es wird keine Aussage getroffen, was passiert<br />

wenn dies nicht so ist. Schließlich wird die Funktion birthday um den neuen Namen<br />

<strong>und</strong> das neue Datum erweitert.<br />

Nun kann erwartet werden, dass in der Menge known der neue Name auch vorhanden<br />

ist:<br />

known’ = known ∪ {name?}<br />

name? ∉ known<br />

birthday’ = birthday ∪ {name? → date?}<br />

Dieses Theorem kann mit Hilfe der Invariante bewiesen werden:<br />

known’ = dom birthday’ Invariante nach Operation AddBirthday<br />

= dom (birthday ∪ {name? → date?}) Spezifikation AddBirthday<br />

= dom birthday ∪ dom {name? → date?} Regel zum Operator dom<br />

= dom birthday ∪ {name?} Regel zum Operator dom<br />

= known ∪ {name?} Invariante vor Operation AddBirthday<br />

Somit ist das Theorem bewiesen.<br />

Formale Methoden zur Anforderungsspezifikation<br />

Dieser Vorgang heißt Theorem Prooving. Als Eingang in den Vorgang dienen eine<br />

Menge von Axiomen, eine zu prüfende Bedingung <strong>und</strong> eine Menge von Beweisregeln.<br />

Die Bedingung <strong>und</strong> die Axiommenge muss in der gleichen formalen Sprache vorliegen.<br />

Dann kann die zu prüfende Bedingung formal bewiesen werden bzw. es kann bewiesen<br />

werden, dass sie nicht zutrifft.<br />

18

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!