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.
Formale Methoden zur Anforderungsspezifikation<br />
werden. Bei einer nicht formalen Spezifikation müsste <strong>für</strong> die Animation ein eigenes<br />
Programm entwickelt werden.<br />
4.1.3 Verifikation der nachfolgenden Entwicklungsstufen<br />
Um die Äquivalenz der nachfolgenden Entwicklungsstufen mit der Spezifikation<br />
feststellen zu können, erfolgt eine Verifikation („Are we building the thing right?“<br />
[McD93]). Bei nicht formaler Beschreibungsweise würde dieser Vorgang alleine auf den<br />
Kenntnissen <strong>und</strong> Fähigkeiten des Ingenieurs beruhen. Durch eine Beschreibung des<br />
Systems auf allen Ebenen mit dem Einsatz formaler Methoden wird es möglich, die<br />
funktionale Äquivalenz zu beweisen. Dadurch wird ein erhöhtes Vertrauen in die<br />
Ergebnisse der Verifikation erreicht.<br />
Dies ist besonders wichtig, um am Ende der Entwicklung beweisen zu können, dass<br />
das implementierte System den Anforderungen entspricht. Dieser Prozess ist allerdings<br />
noch nicht vollständig automatisiert, so dass die Erfahrungen <strong>und</strong> das Können der<br />
Softwareentwickler <strong>für</strong> die Verifikation unersetzlich sind.<br />
Der formale Beweis die Anforderungen erreicht zu haben, ist <strong>für</strong> die Zertifizierung<br />
eines Produkts sehr hilfreich, bzw. in den betreffenden Standards gefordert. Bei nicht<br />
formaler Beschreibung ist kein Beweis möglich. Es sind nur Tests möglich, die aber nie<br />
alle erdenklichen Fälle berücksichtigen können.<br />
Zur Vereinfachung der Verifikation wird in einigen Ansätzen nur Wert auf die<br />
Sicherheitsanforderungen gelegt. Dies macht den Beweis einfacher <strong>und</strong> vor allem<br />
schneller.<br />
4.1.4 Automatische Entwicklungen aus der Anforderungsspezifikation<br />
Ein weiteres Argument <strong>für</strong> die Benutzung formaler Beschreibungen <strong>für</strong> die<br />
Entwicklungsphasen ist die Möglichkeit einige Transformationen zwischen diesen zu<br />
automatisieren. Beispielsweise könnte so direkt aus der Anforderungsspezifikation der<br />
Softwareentwurf bzw. die Implementierung erzeugt werden. Ein weiterer Schritt wäre<br />
dann die automatisierte Entwicklung der vollständigen Hardware <strong>und</strong> Software aus der<br />
Anforderungsspezifikation. Allerdings wird es bis dahin noch eine längere Zeit der<br />
Entwicklung benötigen. Zur Zeit stehen Werkzeuge zur Verfügung, die den<br />
Softwareentwickler bei den Transformationen unterstützen, dies aber nicht vollständig<br />
selbstständig zu seiner Zufriedenheit erledigen können. Besonders in der Effizienz <strong>und</strong><br />
der Codegröße sind vollständig automatisch erzeugte Implementierungen oftmals<br />
unvorteilhaft. Auf diese Eigenschaften kommt es bei sicherheitskritischen Systemen<br />
meistens besonders an, da sie häufig auch eingebettete Systeme sind, die in der<br />
Massenproduktion hergestellt werden.<br />
Die gleiche Codegröße, wie bei manueller Implementierung, kann nur erreicht werden,<br />
wenn der Compiler speziell <strong>für</strong> die vorliegende Prozessorarchitektur entwickelt wurde.<br />
Dieses trifft aber aufgr<strong>und</strong> der Vielzahl von Prozessorarchitekturen <strong>und</strong> des relativ<br />
hohen Aufwandes in der Entwicklung eines solchen Compilers bisher nur selten zu. Es<br />
werden zur Zeit immer mehr passende <strong>und</strong> auch bessere Compiler entwickelt. Die<br />
14