Anforderungsanalyse und Anforderungsdefinition für ...
Anforderungsanalyse und Anforderungsdefinition für ...
Anforderungsanalyse und Anforderungsdefinition für ...
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