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.
6 Kapitel 2<br />
Anforderungen und SpeziÞkationen 5<br />
lungen darŸber, welche FunktionalitŠt das zukŸnftige Softwareprodukt zur VerfŸgung<br />
stellen soll und unter welchen Bedingungen es eingesetzt werden soll. Systematisch<br />
genutzt, kšnnen aber die divergenten Sichtweisen der Benutzer und Anwendungsspezialisten<br />
dazu dienen, Anforderungen zu erheben, zu ŸberprŸfen, zu ergŠnzen<br />
und allfŠllige Konflikte explizit zu machen [Pohl 93:282 ff.]. Zu diesem Zweck sind<br />
verschiedene Interview- und Fragetechniken entwickelt worden, um die Anforderungen<br />
an ein Softwareprodukt ausfindig zu machen. Eine weitere beliebte Technik<br />
der Informationsgewinnung sind Szenarien, die Verhaltensaspekte des zu entwickelnden<br />
Produktes vorab veranschaulichen kšnnen [Schach 96:198 ff.]. Diese unterschiedlichen<br />
Arten der Konzeptexploration sind notwendig und zeigen, dass keiner der<br />
Benutzer und Anwendungsspezialisten in dieser frŸhen Phase der Softwareentwicklung<br />
mit einer kompletten Liste aller Anforderungen aufwarten kann. Anforderungen<br />
wachsen kontinuierlich, wŠhrend das Problem analysiert wird und ein Problembewusstsein<br />
bei den Beteiligten entsteht.<br />
Die Entwicklung eines Softwareproduktes beginnt gewšhnlich mit Requirements Engineering.<br />
Diese Phase umfasst zwei AktivitŠten: zum einen die Anforderungsanalyse<br />
und zum anderen die Anforderungsspezifikation. WŠhrend der Anforderungsanalyse<br />
wird ein zu lšsendes Problem gedanklich und sprachlich durchdrungen, so dass ein<br />
Problembewusstsein entstehen kann, aufgrund dessen die Beteiligten die Anforderungen<br />
an ein zu entwickelndes Softwaresystem erkennen und zueinander in Beziehung<br />
setzen kšnnen. Sobald ein hinreichendes VerstŠndnis der Anforderungen erreicht<br />
ist und die Beteiligten davon Ÿberzeugt sind, die relevanten Sachverhalte aus<br />
dem Anwendungsgebiet zu erkennen, ist es Zeit fŸr die Anforderungsspezifikation.<br />
WŠhrend der Anforderungsspezifikation wird das funktionale Verhalten des geplanten<br />
Softwareproduktes in einem Dokument - der sogenannten Software-Anforderungsspezifikation<br />
- vollstŠndig spezifiziert. Die funktionalen Anforderungen beschreiben,<br />
was das Produkt aus der Sicht des Anwendungsspezialisten tun soll, ohne<br />
darauf einzugehen, wie diese Leistungen zu erbringen sind [vgl. Davis 90:17, Partsch<br />
91:34]. Von den funktionalen Anforderungen sind die nichtfunktionalen Anforderungen<br />
zu unterscheiden. Nichtfunktionale Anforderungen machen quantifizierbare<br />
und nichtquantifizierbare Aussagen darŸber, wie das geplante Softwareprodukt die<br />
gestellten funktionalen Anforderungen erfŸllen soll und schrŠnken die Anzahl der<br />
mšglichen Implementationen ein [vgl. Partsch 91:35, Stokes 91:16/3]. Oft wird empfohlen,<br />
nichtfunktionale Anforderungen wie Schnittstellenattribute, AusfŸhrungsverhalten,<br />
ZuverlŠssigkeit und Produktestandards in der Software-Anforderungsspezifikation<br />
textuell unabhŠngig zu spezifizieren [Sommerville 96:69].<br />
2. Anforderungen und Spezifikationen<br />
Die Praxis zeigt, dass Anwendungsspezialisten ihre Anforderungen fast immer in<br />
fachspezifischen Begriffen von unterschiedlichem Abstraktionsgrad ausdrŸcken und<br />
dazu auf bekannte Konventionen zurŸckgreifen. Vorzugsweise werden zur Darstellung<br />
des sachlichen Wissens informelle Notationen verwendet, die einen mšglichst<br />
freien Detaillierungsgrad zulassen. Beispielsweise stellen die folgenden natŸrlichsprachlichen<br />
Anforderungen einen Sachverhalt in einer Bibliothek mit zunehmender<br />
Genauigkeit dar, und zwar ausgehend von einer abstrakten Beschreibung in (1) hin zu<br />
einer detaillierteren Beschreibung in (4):<br />
The borrower returns a book.<br />
(1)<br />
The ordinary borrower returns a book.<br />
(2)<br />
The ordinary borrower returns a copy of a book.<br />
(3)<br />
The ordinary borrower returns a copy of a book which he currently has.<br />
(4)<br />
2.1 Anforderungen<br />
WŠhrend der Anforderungsanalyse untersuchen die Beteiligten das Anwendungsgebiet,<br />
um alle PhŠnomene und Beziehungen zu identifizieren, die im Problemkontext<br />
eine massgebende Rolle spielen. Der Problemkontext ist der Ort, fŸr den eine Softwarelšsung<br />
gesucht wird. Ein Problem ist nicht durch die Art der zu bauenden Maschine<br />
charakterisiert, sondern einerseits durch die Struktur und Eigenschaften des<br />
Anwendungsgebiets und andererseits durch die Anforderungen der Systembenutzer<br />
und Anwendungsspezialisten in diesem Anwendungsgebiet [Jackson 95:10 ff.].<br />
Normalerweise verwenden die Anwendungsspezialisten zur Beschreibung der Sachverhalte<br />
sprachliche AusdrŸcke, mit denen sie vertraut sind, die aber oft implizites<br />
Wissen aus einem Anwendungsgebiet kondensieren und deshalb fŸr den Softwareentwickler<br />
nicht unmittelbar verstŠndlich sind. Neben der natŸrlichen Sprache als<br />
primŠrem Kommunikationsmittel werden unterstŸtzend oft Diagramme, Tabellen,<br />
Videos und andere formalere Zeichensysteme benutzt, um Anforderungen zu klŠren.<br />
Die Schwierigkeit dabei ist, die entstehenden Informationen so zu ordnen, dass die<br />
Anforderungen sind schwierig zu entdecken, da sie aus unterschiedlichen, heterogenen<br />
Quellen stammen kšnnen, die nicht allen Beteiligten zugŠnglich sind. Die Benutzer<br />
und Anwendungsspezialisten haben normalerweise verschiedenartige Vorstel-