10.01.2013 Aufrufe

Ausgewählte Gebiete des Software Engineering Requirements ...

Ausgewählte Gebiete des Software Engineering Requirements ...

Ausgewählte Gebiete des Software Engineering Requirements ...

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.

Seminar WS 99/2000<br />

<strong>Ausgewählte</strong> <strong>Gebiete</strong> <strong>des</strong> <strong>Software</strong> <strong>Engineering</strong><br />

durchgeführt am<br />

Institut für Wirtschaftsinformatik<br />

der Johannes Kepler Universität Linz<br />

Arbeitsgruppe <strong>Software</strong> <strong>Engineering</strong><br />

Altenberger Str. 69, A-4040 Linz, Austria<br />

Tel: +43-70-2468-9432<br />

Fax: +43-70-2468-9430<br />

Email: office@swe.uni-linz.ac.at<br />

Leitung: Prof. Dr. Gustav Pomberger<br />

Mohsen Rezagholi<br />

Mitwirkend: Rainer Weinreich<br />

<strong>Requirements</strong> <strong>Engineering</strong><br />

T1<br />

Regina Reder 9455801/175<br />

Klemens Brandtner 9655169/175<br />

Markus Bürgstein 9455973/151<br />

17. November 1999


<strong>Requirements</strong> <strong>Engineering</strong> 1<br />

Inhaltsverzeichnis<br />

1 Kurzfassung.....................................................................................................2<br />

2 Einleitung ........................................................................................................2<br />

3 <strong>Requirements</strong> <strong>Engineering</strong>...............................................................................3<br />

3.1 Definition......................................................................................................3<br />

3.2 <strong>Requirements</strong> <strong>Engineering</strong> als Teil <strong>des</strong> <strong>Software</strong>-Life-Cycles........................3<br />

3.3 Zielsetzung <strong>Software</strong>qualität und Kundenzufriedenheit .................................4<br />

3.4 Mehrdeutigkeiten als Hauptproblem von Anforderungen...............................5<br />

3.5 Vermeidung von Mehrdeutigkeiten ...............................................................6<br />

4 Der Prozeß <strong>des</strong> <strong>Requirements</strong> <strong>Engineering</strong>.......................................................6<br />

4.1 Wichtige Inhalte <strong>des</strong> Prozesses......................................................................7<br />

4.2 Problemanalyse .............................................................................................8<br />

4.3 Durchführbarkeitsstudie ................................................................................9<br />

4.4 Anforderungen ............................................................................................10<br />

4.4.1 Grundlagen und Motivation.................................................................10<br />

4.4.2 Merkmale einer guten Spezifikation.....................................................12<br />

4.4.3 Der Spezifikationsprozeß.....................................................................13<br />

4.4.4 Dokumentation von Anforderungen.....................................................14<br />

4.4.5 Gewinnung von Anforderungen...........................................................15<br />

4.4.6 Prüfung von Anforderungen ................................................................18<br />

4.5 Dokumentation............................................................................................19<br />

4.5.1 Aufgaben der Dokumentation..............................................................19<br />

4.5.2 Wirtschaftlichkeit der Dokumentation .................................................20<br />

4.5.3 Dokumentverwaltung ..........................................................................21<br />

4.5.4 Dokumenterstellung.............................................................................21<br />

4.5.5 Anforderung an die Dokumentation.....................................................22<br />

4.5.6 Prüfverfahren.......................................................................................22<br />

4.6 Methoden und Techniken ............................................................................23<br />

4.6.1 Datenfluß - Diagramme .......................................................................23<br />

4.6.2 SADT – Structured Analysis and Design Technique ............................25<br />

4.6.3 Anforderungen an Methoden und Techniken .......................................27<br />

4.6.4 Modell erstellen...................................................................................27<br />

5 Abbildungsverzeichnis...................................................................................31<br />

6 Literaturverzeichnis .......................................................................................32<br />

7 Internetquellen...............................................................................................33


<strong>Requirements</strong> <strong>Engineering</strong> 2<br />

1 Kurzfassung<br />

Diese Seminararbeit enthält eine Abhandlung über das <strong>Requirements</strong> <strong>Engineering</strong>.<br />

Im besonderen werden die Einsatzarten und Auswirkungen in der<br />

<strong>Software</strong>entwicklung betrachtet. Die Arbeit beginnt mit der allgemeinen<br />

Beschreibung <strong>des</strong> <strong>Requirements</strong> <strong>Engineering</strong>. Im Zuge <strong>des</strong>sen wird vor allem der<br />

Einfluß auf die <strong>Software</strong>qualität und die Kundenzufriedenheit betrachtet. In der<br />

Folge wird der Prozeß <strong>des</strong> <strong>Requirements</strong> <strong>Engineering</strong> betrachtet. Hierbei wird<br />

besonders auf die einzelnen Phasen <strong>des</strong> Prozesses und die für einen erfolgreichen<br />

Einsatz notwendigen Anforderungen eingegangen. Es werden auch die im Zuge <strong>des</strong><br />

<strong>Requirements</strong> <strong>Engineering</strong> zu erstellenden Dokumente und deren Auswirkungen auf<br />

den Prozeß und das Verständnis betrachtet. Nachfolgend werden beispielhaft<br />

Methoden und Werkzeuge vorgestellt, um anschließend die Anforderung an<br />

Methoden und Techniken zu erläutern. Abschließend wird als Ergebnis der<br />

Methoden und Techniken die Modellerstellung und Modellbeschreibung betrachtet.<br />

2 Einleitung<br />

Die <strong>Software</strong>entwicklung ist jenes Teilgebiet der Informatik, das die Herstellung<br />

großer Programmsysteme behandelt. Die dazu wissenschaftlichen Methoden werden<br />

erforscht und es werden Werkzeuge entwickelt, die die Herstellung, Dokumentation<br />

und Wartung solcher Programmsysteme unterstützen oder überhaupt erst möglich<br />

machen. 1<br />

Eine immer größere Auswahl von Anwendern und immer spezialisiertere<br />

Programmsysteme rücken nun den Faktor Qualität vermehrt in den Mittelpunkt der<br />

<strong>Software</strong>entwicklung. Damit ist einerseits die Qualität <strong>des</strong> Herstellungsprozesses<br />

gemeint und andererseits auch die Qualität <strong>des</strong> <strong>Software</strong>produktes selbst. Um die<br />

verlangte Qualität zu erreichen und die Kundenzufriedenheit zu fördern wurde im<br />

Rahmen <strong>des</strong> <strong>Requirements</strong> <strong>Engineering</strong> auf die Problematik der "richtigen"<br />

Anforderungsdefinition eingegangen.<br />

1 [Pomberger und Blaschek 1996 Vorwort]


<strong>Requirements</strong> <strong>Engineering</strong> 3<br />

3 <strong>Requirements</strong> <strong>Engineering</strong><br />

3.1 Definition<br />

Definition lt. [Sommerville 1997]<br />

3.2 <strong>Requirements</strong> <strong>Engineering</strong> als Teil <strong>des</strong> <strong>Software</strong>-Life-Cycles<br />

Das <strong>Requirements</strong> <strong>Engineering</strong> beschäftigt sich mit der Anforderungsdefintion von<br />

Projekten. Wir werden uns im Zuge dieser Arbeit auf die <strong>Software</strong>entwicklung<br />

beziehen. Somit kann das <strong>Requirements</strong> <strong>Engineering</strong> als Teil <strong>des</strong> <strong>Software</strong> – Life -<br />

Cycles gesehen werden.<br />

Abbildung 1: <strong>Software</strong>-Life-Cycle 2<br />

2 [Pomberger und Blaschek 1996 S. 18 ff]


<strong>Requirements</strong> <strong>Engineering</strong> 4<br />

Zielsetzung <strong>des</strong> <strong>Requirements</strong> <strong>Engineering</strong> ist es eine möglichst exakte<br />

Anforderungsdefinition zu erstellen. Es soll durch eine inhaltlich umfangreiche und<br />

eindeutige Beschreibung eines gewünschten Produktes erreicht werden, daß das<br />

Produkt am Ende den Wünschen entspricht.<br />

Im Zuge <strong>des</strong> <strong>Requirements</strong> <strong>Engineering</strong> Prozesses werden drei Teilbereiche<br />

abgedeckt. Am Anfang steht die Analyse der Problematik - in unserem Falle meist<br />

eines zu erstellenden Produktes -, die als Basis zur Erstellung eines<br />

Anforderungsprofils dient. Abschließend werden die Anforderung analysiert und<br />

bewertet.<br />

Durch die Erstellung von Dokumenten versucht man dem Ziel nahe zu kommen. Oft<br />

wird aber nicht die Dokumente selbst, sondern durch den Prozeß der Erstellung der<br />

größte Nutzen erzielt. Grund dafür ist, daß die Erstellung eine genaue<br />

Auseinandersetzung mit der Problemstellung bedingt. Es ist nötig, daß alle mit der<br />

Problematik in Zusammenhang stehenden Personen auf eine Gesprächsbasis<br />

zurückgreifen können. Die Basis ist der Schlüssel zum Erfolg, denn es ist nötig, daß<br />

allen bewußt ist, wovon gesprochen wird.<br />

Es können die schwerwiegendsten Fehler entstehen, wenn Personen unter einem<br />

Begriff verschiedene Dinge verstehen. Somit ist das erstellte Dokument nichts, wenn<br />

nicht durch das Dokumentieren eine eindeutige Basis geschaffen wurde.<br />

Im Zuge <strong>des</strong> Dokumentationsprozesses werden die beteiligten Personen zu einem<br />

Team, das die Anforderungen versteht.<br />

Grundsätzlich gilt, daß wenn ein Ziel nicht genau bekannt und definiert ist, sowie<br />

von allen verstanden und gleich interpretiert wird, nicht erreicht werden kann. In der<br />

Folge kann ein <strong>Software</strong>produkt den Anwender nicht zufrieden stellen.<br />

3.3 Zielsetzung <strong>Software</strong>qualität und Kundenzufriedenheit<br />

Die Kriterien <strong>Software</strong>qualität und Kundenzufriedenheit sind oft für den Erfolg eines<br />

Unternehmens ausschlaggebend. Je höher die <strong>Software</strong>qualität ist, <strong>des</strong>to geringer<br />

können die Wartungskosten für ein Produkt gehalten werden. Um auch noch ein<br />

hohes Maß an Kundenzufriedenheit zu errechnen, müssen Anforderungen,<br />

Erwartungen und Wünsche der Kunden erfüllt werden.<br />

Der <strong>Software</strong>entwicklungsprozeß kann nur dann erfolgreich verlaufen, wenn am<br />

Anfang die Anforderungen an das Endprodukt in eindeutiger Form vorliegen.


Anforderungen<br />

<strong>Requirements</strong> <strong>Engineering</strong> 5<br />

Die Aufgabe <strong>des</strong> <strong>Requirements</strong> <strong>Engineering</strong> liegt nun darin, ein Verständnis für die<br />

Problematik <strong>des</strong> Produktes und eine unmißverständliche Definition der<br />

Anforderungen zu liefern.<br />

3.4 Mehrdeutigkeiten als Hauptproblem von Anforderungen<br />

Das größte Problem im Zuge der Anforderungsdefinition ist, wie bereits eingangs<br />

erwähnt, die Vermeidung von Mehrdeutigkeiten. Beispiele für Mehrdeutigkeiten<br />

sind folgende:<br />

• Fehlende Anforderungen<br />

• Mehrdeutige Wörter<br />

• Eingeführte Elemente<br />

Fehlende Anforderungen liegen vor, sobald Grundvoraussetzungen nicht behandelt<br />

werden. Meist geschieht dies, wenn Personen von einer unterschiedlichen<br />

Wissensbasis ausgehen und <strong>des</strong>halb Dinge als selbstverständlich angenommen<br />

werden. In der Folge werden diese Annahmen aber nicht von allen<br />

Gruppenmitgliedern geteilt. Aber selbst wenn Anforderungen klar dar gelegt werden,<br />

kann deren Bedeutung nicht für alle gleich sein. Es ist immer von Bedeutung in<br />

welcher Relation Wörter und Begriffe verwendet werden.<br />

Für ein Unternehmen bringt ein gut eingesetztes <strong>Requirements</strong> <strong>Engineering</strong> auch den<br />

entscheidenden Vorteil, daß in der Designphase entdeckte Fehler minimale Kosten<br />

verursacht, im Gegensatz zu Fehlern, die erst im Echtbetrieb gefunden wurden.<br />

Entwurf<br />

Abbildung 2: Fehlerstrom und Fehlerkosten in Relation 3<br />

3 [Möller 1992]<br />

Implementierung<br />

10% 40%<br />

50%<br />

3% 5%<br />

7%<br />

25%<br />

50% 10%<br />

Anforderungsreview<br />

Entwurfsreview<br />

Fehlerstrom<br />

Codereview<br />

Entwicklungstest<br />

Systemtest<br />

Feldeinsatz<br />

15% 15%<br />

15%<br />

30%<br />

60% 100%<br />

Entstehung<br />

Entdeckung<br />

Fehlerkosten


<strong>Requirements</strong> <strong>Engineering</strong> 6<br />

3.5 Vermeidung von Mehrdeutigkeiten<br />

Wie wir bereits gesehen haben, ist eine Möglichkeit um Mehrdeutigen weitgehend<br />

zu vermeiden, dafür zu sorgen, dass alle beteiligten Personen eine Gesprächsbasis<br />

haben. Oft ist dies mit einer, die Problemstellung betreffenden, gemeinsamen<br />

Wissensbasis verbunden.<br />

Wichtig ist auch, daß die Gruppenmitglieder ein Bild der Anforderungen haben. Im<br />

Konkreten bedeutet dies, daß Einigkeit darüber existiert, was an Wünschen und<br />

Anforderungen besteht. Ein Weg dies zu erreichen, liegt in Definieren der Nicht-<br />

Anforderungen. Damit werden in vielen Fällen auch Mehrdeutigkeiten beseitigt, die<br />

aufgrund einer unterschiedlichen Ausgangslage zu Stande kommen.<br />

Die unterschiedliche Ausgangslage und Wissensbasis darf jedoch nicht als negativ<br />

gesehen werden. Ganz im Gegenteil, denn erst dadurch wird eine vielseitige und<br />

innovative Lösung der Problematik ermöglicht.<br />

Es ist in diesem Zusammenhang wichtig, dass sowohl die Entwickler als auch die<br />

tatsächlichen Anwender am Prozeß beteiligt werden. Von Bedeutung ist jedoch die<br />

unterschiedlichen Personengruppen, die am <strong>Requirements</strong> <strong>Engineering</strong> beteiligt sind,<br />

durch Wissensaustausch und Methoden und Werkzeuge <strong>des</strong> <strong>Requirements</strong><br />

<strong>Engineering</strong> zu koordinieren.<br />

Erst durch eine erfolgreiche Kombination kann das Endprodukt sowohl das<br />

Kriterium der Kundenzufriedenheit als auch ein gutes Maß an <strong>Software</strong>qualität<br />

erfüllen.<br />

4 Der Prozeß <strong>des</strong> <strong>Requirements</strong> <strong>Engineering</strong><br />

„A requirements engineering process is a structured set of activities which are<br />

followed to derive, validate and maintain a systems requirements document“<br />

(Sommerville 1997, Seite 9)<br />

Das obige Zitat trifft die wesentliche Inhalte eines <strong>Requirements</strong> <strong>Engineering</strong><br />

Prozesses sehr gut, dennoch wird in der deutschsprachigen Literatur wird meist von<br />

folgenden Prozeßteile gesprochen:<br />

• Analyse der Problematik<br />

• Aufstellen der Anforderungen<br />

• Analyse und Bewertung der Anforderungen


<strong>Requirements</strong> <strong>Engineering</strong> 7<br />

Als Ziel wird in jedem Fall die Dokumentation gesehen.<br />

4.1 Wichtige Inhalte <strong>des</strong> Prozesses<br />

Für den eigentlichen Prozeß <strong>des</strong> RE lassen sich auch Anforderungen festlegen bzw.<br />

sollten min<strong>des</strong>tens folgende Punkte durch den Prozeß unterstützt werden:<br />

• Problemanalyse<br />

• Durchführbarkeitsstudie<br />

• Anforderungen<br />

• Anforderungsanalyse<br />

• Anforderungsdefinition<br />

• Anforderungsspezifikation<br />

• Unterschiedliche Bewertungsverfahren / Methodiken<br />

• Erstellung einer Dokumentation<br />

Von besonderer Bedeutung ist, daß ein schrittweises Vorgehen wird für einen<br />

Requiremets-<strong>Engineering</strong>-Prozeß vorausgesetzt wird.<br />

Bei der Durchführbarkeitsstudie bzw. Machbarkeitsstudie stellt man sich primär die<br />

Frage, ob die vorliegenden Ziele mit der verfügbaren Technologie erreicht werden<br />

können. Die erfolgt unter der Auflage, daß die Budgetkosten nicht überschritten<br />

werden.<br />

Bei der Anforderungsanalyse erörtert man sämtliche Anforderungen an das System,<br />

wobei spezielles Augenmerk auf die Anforderungen gelegt wird, welche von den<br />

sog. Stakeholdern an das System gestellt werden.<br />

Bei der Anforderungsdefinition geht man auf die endgültigen Anforderungen ein,<br />

und versucht diese in eine allgemeinverständliche Form zu bringen, sodaß auch<br />

eventuelle Kunden keine Probleme mit der Verständlichkeit haben.<br />

Zuletzt werden die Anforderungen endgültig festgesetzt und in jedem Fall in einer<br />

Dokumentation ausgefertigt.<br />

Das ganze könnte dann in einer derartigen Form graphisch ausgefertigt sein.


<strong>Requirements</strong> <strong>Engineering</strong> 8<br />

Durchführbarkeitsstudie<br />

Anforderungsanalyse<br />

Systemmodelle<br />

Anforderungsdokument<br />

Anforderungsdefinition<br />

Definition von<br />

Anforderungen<br />

Abbildung 3: Beispiel für einen <strong>Requirements</strong> - <strong>Engineering</strong> - Prozeß<br />

Anforderungsspezifikation<br />

Spezifikation von<br />

Anforderungen<br />

In weiterer Folge werden nun die wesentlichen Punkte <strong>des</strong> <strong>Requirements</strong><br />

<strong>Engineering</strong> behandeln.<br />

4.2 Problemanalyse<br />

Ursachen Prozeß<br />

Fehlerhafter<br />

(Vorgehensmodell)<br />

Management<br />

Entwicklungsprozeß<br />

(Organisation v. Personen u. Ressourcen)<br />

Kommunikation<br />

(Qualität → Wissen, Umfang, Weiterleitung)<br />

Dokumentation<br />

(fehlerhaft, unvollständig, ungenau)<br />

Wissen und Verständnis<br />

(konkretes, abstraktes?)<br />

(Zeit-, Budget-<br />

Vorgaben)<br />

X<br />

X<br />

Interaktion<br />

(geringer<br />

Nutzen)<br />

Erwartungen<br />

(nicht erfüllt)<br />

X X X<br />

X X<br />

X X


<strong>Requirements</strong> <strong>Engineering</strong> 9<br />

Zur Erklärung:<br />

Ein <strong>Software</strong>system kann aus verschiedenen Gründen unbrauchbar sein. Dieses<br />

Versagen kann unterschiedlich kategorisiert werden:<br />

Prozeß: Der Entwicklungsprozeß selbst ist fehlerhaft, so daß z.B. Budgets,<br />

Zeitvorgaben u.¨ a. nicht eingehalten werden können<br />

Interaktion: Das <strong>Software</strong>system arbeitet zwar korrekt, stellt aber nur einen<br />

geringen Nutzen für die Anwender dar<br />

Erwartungen: Die Erwartungen min<strong>des</strong>tens einer Interessengruppe (außer den<br />

Anwendern) konnten nicht erfüllt werden<br />

Zum ersten Punkt gilt, wenn man sich an die Modelle und Vorgehensweisen hält,<br />

kann nur mehr sehr wenig falsch laufen.<br />

Für das Management werden zur Lösung bzw. Verhinderung von Problemen<br />

folgende Anforderungen gestellt:<br />

• Planung von Kosten-, Zeit- und anderen Restriktionen<br />

• Kopplung mit der generellen IT-Strategie <strong>des</strong> Unternehmens<br />

• Aufrechterhaltung der Kommunikation<br />

In dem nachfolgenden Kapitel der Dokumentation finden sich die Anreize wie man<br />

Fehler und damit verbundene Probleme in <strong>Software</strong>produkten vermeidet.<br />

Speziell für die Bereiche Kommunikation und Wissen & Verständnis sind die<br />

Beteiligten Personen relevant. Gerade der Übergang <strong>des</strong> Wissens über Information<br />

und Daten ist ein großes Problem und benötigt sehr viel Aufmerksamkeit und<br />

Geschick, vorallem wenn es darum geht, das implizite Wissen <strong>des</strong> Anwenders und<br />

<strong>des</strong> Entwicklers zu vereinigen.<br />

4.3 Durchführbarkeitsstudie<br />

Die Studie zur Durchführbarkeit dient primär zur Feststellung, ob das System sowohl<br />

in technischer, personeller und ökonomischer Sicht überhaupt realisierbar ist.<br />

Zusätzlich kann man bereits eine erste Einschätzung <strong>des</strong> Risikos vorgenommen<br />

werden.


<strong>Requirements</strong> <strong>Engineering</strong> 10<br />

4.4 Anforderungen<br />

4.4.1 Grundlagen und Motivation<br />

An dieser Stelle bringen wir zur Wiederholung noch einmal kurz einige Definition.<br />

DEFINITION 1: Anforderung (requirement). Eine Bedingung oder Fähigkeit, die<br />

von einer Person zur Lösung eines Problems oder zur Erreichung eines Ziels benötigt<br />

wird. Eine Bedingung oder Fähigkeit, die eine <strong>Software</strong> erfüllen oder besitzen muß,<br />

um einen Vertrag, eine Norm oder ein anderes, formell bestimmtes Dokument zu<br />

erfüllen.<br />

DEFINITION 2: Anforderungspezifikation. Die Zusammenstellung aller<br />

Anforderungen an eine <strong>Software</strong>. Synonyme: Anforderungsdokument, <strong>Software</strong><br />

<strong>Requirements</strong> Spezifikation.<br />

Im Alltag ist die Sprechweise nicht immer ganz eindeutig: mit ,,die Spezifikation“ ist<br />

häufig je nach Kontext das resultierende Dokument oder der Spezifikationsprozeß<br />

(das heißt der Prozeß <strong>des</strong> Erfassens, Beschreibens und Prüfens von Anforderungen)<br />

gemeint.<br />

Werden die Aufgaben im Bereich der Spezifikation und <strong>des</strong> Spezifizierens<br />

systematisch und gezielt angegangen, spricht man auch von <strong>Requirements</strong><br />

<strong>Engineering</strong> (Anforderungstechnik).<br />

DEFINITION 3: <strong>Requirements</strong> <strong>Engineering</strong> (Anforderungstechnik). 1. Das<br />

systematische, disziplinierte und quantitativ erfaßbare Vorgehen beim Spezifizieren,<br />

dt. Erfassen, Beschreiben und Prüfen von Anforderungen an <strong>Software</strong>. 2. Verstehen<br />

und Beschreiben, was die Kunden wünschen oder brauchen.<br />

Im deutschen Sprachraum ist im Zusammenhang mit Anforderungen auch der Name<br />

Pflichtenheft gebräuchlich. Mit diesem Namen werden jedoch häufig verschiedene<br />

Begriffe verbunden. Manche Leute verstehen Pflichtenheft als ein Synonym zu<br />

Anforderungsspezifikation, andere verlangen eine grobe Beschreibung der gewählten<br />

Lösung als Bestandteil, wiederum andere sehen auch Elemente der<br />

Projektabwicklung (Kosten, Termine) als Bestandteil <strong>des</strong> Pflichtenhefts. Bei der<br />

Verwendung <strong>des</strong> Namens ,,Pflichtenheft“ ist daher Vorsicht geboten und das jeweils<br />

damit Gemeinte im Einzelfall zu klären.


<strong>Requirements</strong> <strong>Engineering</strong> 11<br />

Wozu eine Anforderungsspezifikation erstellen?<br />

Die Erstellung einer Anforderungsspezifikation kostet Geld, ohne daß diesem<br />

Aufwand ein unmittelbar sichtbarer Ertrag in Form von Programmen gegenübersteht.<br />

Das Spezifizieren von Anforderungen ist also nur dann wirtschaftlich, wenn dem<br />

dafür zu treibenden Aufwand entsprechende Einsparungen gegenüberstehen.<br />

<strong>Requirements</strong> <strong>Engineering</strong>, das systematische Spezifizieren von Anforderungen, hat<br />

daher das klare Ziel, Kosten zu senken.<br />

Daß dieses Ziel realistisch ist, zeigt folgende Überlegung: Fehlerkosten, d.h. die<br />

Kosten für die Lokalisierung und Behebung von Fehlern, machen einen wesentlichen<br />

Teil der Gesamtkosten einer Systementwicklung aus. Anforderungsfehler sind dabei<br />

die teuersten Fehler, weil sie beim Fehlen einer Anforderungsspezifikation typisch<br />

erst bei der Abnahme oder im Betrieb gefunden werden und die Fehlerkosten<br />

exponentiell mit der Verweildauer der Fehler im System wachsen. Wenn man<br />

<strong>Requirements</strong> <strong>Engineering</strong> vernünftig betreibt, sind die Einsparungen bei den<br />

Fehlerkosten höher als der dafür notwendige Aufwand. Das heißt, das Spezifizieren<br />

von Anforderungen ist wirtschaftlich.<br />

Abbildung 4: Kosten der Fehlerbehebung<br />

[Quelle: http://nestroy.wi-inf.uni-essen.de/Lv/mod1/folien/10.html]


<strong>Requirements</strong> <strong>Engineering</strong> 12<br />

Abbildung 5: Wirtschaftlichkeit der Anforderungsspezifikation<br />

[Quelle: http://nestroy.wi-inf.uni-essen.de/Lv/mod1/folien/10.html]<br />

4.4.2 Merkmale einer guten Spezifikation<br />

Um die Fehlerkosten zu senken, müssen wir folglich erreichen, daß (a) wenig<br />

Anforderungsfehler gemacht werden und (b) möglichst viele der dennoch gemachten<br />

Fehler möglichst früh gefunden werden. Dafür brauchen wir sowohl eine gute<br />

Anforderungsspezifikation als auch einen guten Spezifikationsprozeß.<br />

Eine gute Spezifikation zeichnet sich durch folgende Eigenschaften aus:<br />

• Adäquatheit<br />

das beschreiben, was der Kunde will bzw. braucht<br />

• Vollständigkeit<br />

alles beschreiben, was der Kunde will bzw. braucht<br />

• Widerspruchsfreiheit<br />

sonst ist die Spezifikation nicht realisierbar<br />

• Verständlichkeit<br />

für den Kunden und für die Informatiker<br />

• Eindeutigkeit<br />

damit Fehler durch Fehlinterpretationen vermieden werden


<strong>Requirements</strong> <strong>Engineering</strong> 13<br />

• Prüfbarkeit<br />

damit feststellbar ist, ob das realisierte System die Anforderungen erfüllt.<br />

Ein guter Spezifikationsprozeß ist charakterisiert durch<br />

• Kundenorientierung<br />

• Methodisches und zielgerichtetes Vorgehen<br />

• Verwendung geeigneter Mittel<br />

• Integration von Erstellung und Prüfung von Anforderungen.<br />

4.4.3 Der Spezifikationsprozeß<br />

Der Prozeß <strong>des</strong> Spezifizierens von Anforderungen umfaßt im Wesentlichen drei<br />

Aufgaben:<br />

die Gewinnung, die Darstellung und die Prüfung der Anforderungen. Der Prozeß<br />

kann jedoch nicht einfach sequentiell in drei entsprechende Schritte gegliedert<br />

werden. Vielmehr muß der Prozeß iterativ in enger und ständiger Interaktion<br />

zwischen Vertretern <strong>des</strong> Kunden und den die Spezifikation erstellenden Analytikern<br />

ablaufen.<br />

Abbildung 6: Möglicher Ablauf eines Spezifikationsprozesses unter Interaktion der<br />

Beteiligten [Quelle: http://nestroy.wi-inf.uni-essen.de/Lv/mod1/folien/7.html]


<strong>Requirements</strong> <strong>Engineering</strong> 14<br />

4.4.4 Dokumentation von Anforderungen<br />

4.4.4.1 Klassifikation von Anforderungen<br />

Es gibt verschiedene Arten von Anforderungen. Zunächst einmal wird zwischen<br />

Projekt- und Produktanforderungen unterschieden. In diesem Kapitel betrachten wir<br />

nur letztere. Die Produktanforderungen wiederum gliedern sich in funktionale<br />

Anforderungen und Attribute. Unter funktionalen Anforderungen verstehen wir alle<br />

Anforderungen, die sich auf die Funktionalität eines Systems beziehen, das heißt,<br />

welche Ergebnisse aufgrund welcher Eingaben zu berechnen und / oder zu liefern<br />

sind. Die Attribute spezifizieren die Art und Weise, in der diese Funktionalität zu<br />

erbringen ist. Leistungsanforderungen sind Forderungen bezüglich Zeiten, Mengen,<br />

Geschwindigkeiten, Raten, etc. Besondere Qualitätsanforderungen sind Forderungen<br />

beispielsweise an Zuverlässigkeit oder Benutzerfreundlichkeit. Randbedingungen<br />

schließlich sind alle Forderungen, welche die Menge der möglichen Lösungen<br />

zusätzlich beschränken, z.B. Gesetze und Normen. Leistungsanforderungen,<br />

besondere Qualitätsanforderungen und Randbedingungen werden auch nicht -<br />

funktionale Anforderungen genannt.<br />

Zusätzlich müssen die Anforderungen oft nach ihrer Wichtigkeit klassifiziert<br />

werden, z.B. in<br />

• Muß - Anforderungen — sind unverzichtbar und müssen in jedem Fall erfüllt<br />

werden<br />

• Soll - Anforderungen — sollten erfüllt werden, sind aber bei zu hohen Kosten<br />

verzichtbar<br />

• Wunsch - Anforderungen — werden nur erfüllt, wenn dies mit vertretbaren<br />

Kosten möglich ist.<br />

Eine solche Klassifikation nach Wichtigkeit ist vor allem in zwei Situationen nötig:<br />

• wenn die Entwicklungskosten eine harte Randbedingung darstellen. Dies ist<br />

unter anderem dann der Fall, wenn <strong>Software</strong> für den Markt entwickelt wird.<br />

• wenn die Anforderungsspezifikation als Grundlage für die Beschaffung eines<br />

Systems dient, weil dann die Lösung nicht nach Maß auf die Bedürfnisse<br />

zugeschnitten werden kann.<br />

Inhalt und Aufbau einer Anforderungsspezifikation<br />

Eine Anforderungsspezifikation muß inhaltlich die folgenden Aspekte abdecken:


<strong>Requirements</strong> <strong>Engineering</strong> 15<br />

• Funktionaler Aspekt<br />

- Daten: Struktur, Verwendung, Erzeugung, Speicherung, Übertragung,<br />

Veränderung<br />

- Funktionen: Ausgabe, Verarbeitung, Eingabe von Daten<br />

- Verhalten: Sichtbares dynamisches Systemverhalten, Zusammenspiel der<br />

Funktionen<br />

- Fehler: Normalfall und Fehlerfälle<br />

• Leistungsaspekt<br />

- Datenmengen (durchschnittlich/im Extremfall)<br />

- Verarbeitungs- /Reaktionsgeschwindigkeit (durchschnittlich / im Extremfall)<br />

- Verarbeitungszeiten und -intervalle<br />

- wo immer möglich: meßbare Angaben!<br />

• Qualitätsaspekt<br />

- geforderte Qualitäten (z.B. Benutzerfreundlichkeit, Zuverlässigkeit)<br />

• Randbedingungsaspekt<br />

- einzuhaltende / zu verwendende Schnittstellen<br />

- Normen und Gesetze<br />

- Datenschutz, Datensicherung<br />

- Explizite Vorgaben <strong>des</strong> Auftraggebers.<br />

Die Gliederung <strong>des</strong> Dokuments und die Art der Darstellung hängen stark von den<br />

verwendeten Methoden und Sprachen ab. Teilweise sind sie auch durch Richtlinien<br />

<strong>des</strong> Kunden oder <strong>des</strong> entwickelnden Unternehmens oder durch die Anwendung<br />

internationaler Normen (z.B. IEEE 830-1993) bestimmt.<br />

Bei der Wahl der Gliederung ist dem Qualitätsmerkmal der Verständlichkeit<br />

besonderes Augenmerk zu widmen. Schlechte oder gar nicht vorhandene<br />

Gliederungen behindern die Verständlichkeit unter Umständen massiv.<br />

4.4.5 Gewinnung von Anforderungen<br />

Es stellt sich das Problem, daß bei der Gewinnung von Anforderungen meist<br />

folgende Schwierigkeiten auftreten:<br />

• Unterschiedliche Vertreter <strong>des</strong> Kunden haben unterschiedliche Vorstellungen<br />

über das zu spezifizierende System. Häufig sind schon die Auffassungen und


<strong>Requirements</strong> <strong>Engineering</strong> 16<br />

die Begriffsbildung im Anwendungsbereich nicht einheitlich. <strong>Requirements</strong><br />

<strong>Engineering</strong> beinhaltet daher auch Konsensbildung zwischen divergierenden<br />

Vorstellungen der beteiligten Personen.<br />

• Die Kundenvertreter haben zwar eine Vorstellung, was sie wollen, aber sie<br />

können ihre Vorstellung nicht formulieren. Manchmal ,,lösen“ sie dieses<br />

Problem, indem sie anstelle ihrer eigentlichen Anforderungen bestehende<br />

Lösungen mit vergleichbaren Eigenschaften beschreiben.<br />

• Die Kundenvertreter wissen nicht oder nur sehr vage, was sie eigentlich<br />

wollen.<br />

Es haben sich folgende vier Vorgehensweisen als mögliche Techniken zur<br />

erfolgreichen Anforderungsgewinnung entwickelt. Je nach Situation wird eine<br />

einzelne Technik oder eine Kombination von Techniken gewählt.<br />

• Begriffe klären und ein Glossar mit Definitionen der wichtigen Begriffe <strong>des</strong><br />

Anwendungsbereichs erstellen. Damit wird eine begriffliche Grundlage<br />

geschaffen, die sicherstellt, daß alle das Gleiche meinen, wenn sie vom<br />

Gleichen reden. Ein solches Glossar ist insbesondere dann wichtig, wenn schon<br />

die Kundenvertreter untereinander keine klare und einheitliche Begriffswelt<br />

haben.<br />

• Soll-Prozeßabläufe untersuchen. Feststellen, welche äußeren Ereignisse auf das<br />

zu spezifizierende System einwirken können und erfragen, wie das System auf<br />

welches dieser Ereignisse reagieren soll.<br />

• Anwendungsszenarien bilden und durchspielen. Alle Interaktionen der<br />

Umgebung (seien dies Menschen oder Sensoren und Steliglieder) mit dem zu<br />

spezifizierenden System werden in Form von Szenarien aufgeschrieben und<br />

durchgespielt. Szenarien eignen sich besonders gut zur interaktiven<br />

Gewinnung und Diskussion von Anforderungen mit den Kunden.<br />

• Den Anwendungsbereich modellieren. Feststellen, welche Gegenstände der<br />

Anwendung für das zu spezifizierende System relevant sind. (Relevant sind<br />

diejenigen Gegenstände, über die das System Information speichern muß,<br />

damit es seine Aufgaben erfüllen kann.) Herausfinden, welche Eigenschaften<br />

der relevanten Gegenstände und welche Beziehungen der Gegenstände<br />

untereinander dem zu spezifizierenden System bekannt sein müssen.<br />

Um die gewünschten Informationen von den Vertretern <strong>des</strong> Kunden zu erhalten,<br />

können verschiedene Techniken eingesetzt werden.<br />

• In Interviews werden die Vertreter <strong>des</strong> Kunden einzeln oder in Gruppen zu<br />

höchstens drei Leuten befragt.


<strong>Requirements</strong> <strong>Engineering</strong> 17<br />

• Mit Fragebogen können Begriffswelt und Bedürfnisse einer größeren Gruppe<br />

von Kundenvertretern erfaßt werden.<br />

• In gemeinsamen Arbeitstagungen (manchmal auch Joint Application<br />

Development-Sitzungen genannt) kann eine Gruppe ausgewählter<br />

Kundenvertreter und Informatiker gemeinsam die Anforderungen an ein<br />

geplantes System erarbeiten.<br />

Die Ergebnisse der Analyse werden mittels geeigneter Methoden und Notationen<br />

dargestellt und bilden dann die Anforderungsspezifikation. Anforderungsanalyse und<br />

- darstellung laufen iterativ und zeitlich verzahnt ab.<br />

Die Rolle der IST - Analyse<br />

Meist wird verlangt, daß der Spezifikationsprozeß mit einer Analyse <strong>des</strong> IST -<br />

Zustands beginnt. Dabei wird folgen<strong>des</strong> Vorgehen empfohlen:<br />

1 Analyse <strong>des</strong> IST - Systems; erstellen eines Modells der gegenwärtigen<br />

Implementierung <strong>des</strong> IST – Systems.<br />

2 Analysieren der dieser Implementierung zugrundeliegenden Konzepte;<br />

erstellen <strong>des</strong> sogenannten essentiellen Modells <strong>des</strong> IST - Systems. Dabei wird<br />

von allen implementierungsspezifischen Eigenschaften <strong>des</strong> IST - Systems<br />

abstrahiert.<br />

Ableiten der Anforderungen an das neue System; erstellen <strong>des</strong> essentiellen<br />

Modells <strong>des</strong> SOLL -Systems. Dieses Modell beschreibt die Anforderungen und<br />

ist im Idealfall frei von Entwurfs- und Implementierungsüberlegungen.<br />

Entwurfs <strong>des</strong> SOLL - Systems; Erstellen <strong>des</strong> Implemenherungsmodells <strong>des</strong><br />

SOLL - Systems.<br />

Der dritte Schritt in diesem Vorgehen ist der eigentliche Prozeß der<br />

Anforderungsspezifikation. Dieses Vorgehen hält jedoch in vielen Fällen einer<br />

Wirtschaftlichkeitsprüfung nicht stand.<br />

Die Beschäftigung mit dem IST - Zustand ist nur dann gerechtfertigt, wenn<br />

• die Informatiker/Analytiker die IST - Aufgaben und die IST - Arbeitsweise der<br />

Benutzer erst kennenlernen und verstehen müssen, damit sinnvolle Gespräche<br />

über das SOLL geführt werden können<br />

• die Stärken und Schwächen <strong>des</strong> IST - Systems nicht bekannt sind<br />

• Teile <strong>des</strong> IST - Systems übernommen werden sollen und festgestellt werden<br />

muss, welche Teile das sind


<strong>Requirements</strong> <strong>Engineering</strong> 18<br />

• das IST - System eins zu eins übernommen werden soll, beispielsweise, wenn<br />

ein System auf eine andere Rechnerplattform übertragen werden muß.<br />

Hierzu ist es in der Regel nicht erforderlich, je ein vollständiges<br />

Implementierungsmodell und essentielles Modell zu erstellen. Jede über das<br />

Notwendige hinausgehende Beschäftigung mit dem IST - System verursacht Kosten,<br />

denen kein Nutzen gegenübersteht.<br />

Ferner besteht bei der Ableitung der Anforderungen aus dem IST - System immer<br />

die Gefahr, daß alter Wein in neue Schläuche abgefüllt wird und mögliche neue,<br />

innovative Wege nicht erkannt werden.<br />

4.4.6 Prüfung von Anforderungen<br />

Worum es geht<br />

Beim Prüfen einer Anforderungsspezifikation geht es darum, Abweichungen von der<br />

geforderten Qualität der Spezifikation festzustellen. Mit anderen Worten, bei der<br />

Prüfung sollen möglichst viele Fehler, Lücken, Unklarheiten, Mehrdeutigkeiten, etc.<br />

gefunden (und anschließend behoben) werden.<br />

Dabei haben nicht alle Qualitätsmerkmale das gleiche Gewicht. In erster Priorität<br />

sollte auf Adäquatheit, Vollständigkeit, Widerspruchsfreiheit und Verständlichkeit<br />

geprüft werden, in zweiter Priorität auf Prüfbarkeit und Eindeutigkeit und in dritter<br />

Priorität auf alle übrigen Merkmale.<br />

Die Prüfung einer Spezifikation auf Adäquatheit, Vollständigkeit und<br />

Widerspruchsfreiheit wird auch Validierung genannt.<br />

Beteiligte<br />

Die Prüfung erfolgt sinnvollerweise unter Federführung von IT - Mitarbeitern, die<br />

insbesondere die verwendete Darstellung ohne fremde Hilfe interpretieren können.<br />

Zusätzlich müssen aber die Vertreter <strong>des</strong> Kunden zwingend in den Prüfprozeß<br />

einbezogen werden, denn nur sie können schlußendlich die Adäquatheit und<br />

Vollständigkeit der Spezifikation beurteilen.<br />

Zeitpunkt der Prüfung<br />

Die abschließende Prüfung einer Spezifikation erfolgt zu einem Zeitpunkt, wo<br />

• die Spezifikation fertig ist


<strong>Requirements</strong> <strong>Engineering</strong> 19<br />

• aber noch genug Zeit bleibt, die gefundenen Mängel zu beheben.<br />

Bei umfangreichen Spezifikationen sind zusätzlich Zwischenprüfungen begleitend<br />

zur Erstellung der Spezifikation erforderlich.<br />

4.5 Dokumentation<br />

4.5.1 Aufgaben der Dokumentation<br />

Dokumentation hat die folgenden drei Hauptaufgaben.<br />

• Wissenssicherung: Die Information aus den Köpfen holen<br />

• Kommunikation: Reden miteinander genügt nicht<br />

• Sichtbarmachen <strong>des</strong> Fortschritts:<br />

Dokumente sind greifbare Resultate<br />

Das Wissen (Know - How) über ein System macht einen beträchtlichen Teil <strong>des</strong><br />

Werts eines Systems aus. Die Produktdokumentation hat die Aufgabe, dieses Wissen<br />

schriftlich oder auf Datenträgern festzuhalten. damit es nicht verloren geht. Die<br />

Projektdokumentation sichert die Erfahrungen in der Abwicklung von Projekten.<br />

Eine geordnete Systementwicklung und -pflege ist ohne Kommunikation nicht<br />

möglich. Dies gilt sogar für Ein – Personen - Projekte, wenn daß Produkt länger als<br />

ein paar Wochen leben sah.<br />

Mündliche Kommunikation ist bei Arbeiten in einem kleinen Personenkreis sehr<br />

effizient Ausschließlich mündliche Kommunikation verursacht jedoch erhöhte<br />

Kosten (und wird letztlich ineffizient), wenn der Personenkreis sich ändert oder die<br />

Systembetreuung auf einen anderen Personenkreis übergeht. Letzteres ist typisch der<br />

Fall beim Übergang von der Entwicklung zur Nutzung.<br />

Daher müssen auch in Kleinprojekten alle für ein System wichtigen mündlichen<br />

Informationen und Absprachen in Dokumenten festgehalten werden. Mündliche<br />

Kommunikation genügt nicht, da Erzeugung und Benutzung von Informationen unter<br />

Umstände um Jahre auseinander liegen können.<br />

Der Abschluß jeder Phase der Entwicklung wird nachprüfbar (!), markiert durch die<br />

Fertigstellung und Freigabe von Dokumenten.


<strong>Requirements</strong> <strong>Engineering</strong> 20<br />

4.5.2 Wirtschaftlichkeit der Dokumentation<br />

Dokumentation kostet Entwicklungszeit und - geld, darum wird sie - vorallem unter<br />

Termindruck - oft nicht oder nur fragmentarisch erstellt. Außer bei sehr kurzlebigen<br />

Systemen geht die Rechnung mit der Kosteneinsparung jedoch nicht auf.<br />

Wird in einem Unternehmen, das seine <strong>Software</strong> - Entwicklung bisher nicht oder nur<br />

rudimentär dokumentiert hat, sorgfältiges Dokumentieren eingeführt so ist folglich<br />

zu erwarten. daß die Produktivität in den frühen Phasen der Entwicklung absinkt und<br />

dafür in den späten Phasen sowie in der Nutzung steigt. Ferner darf eine<br />

Verbesserung der Produktqualität erwartet werden.<br />

Abbildung 7: Vergleich Kosten/Nutzen der Dokumentation<br />

[Quelle: http://nestroy.wi-inf.uni-essen.de/Lv/mod1/folien/7.html]<br />

Dokumentation ist nicht Selbstzweck. Es darf daher nur soviel wie unbedingt<br />

notwendig dokumentiert werden, dies aber sorgfältig und konsequent. Außerdem ist<br />

das notwendige Minimum schon recht viel. In der Regel wird nicht zuviel sondern<br />

zuwenig dokumentiert.


<strong>Requirements</strong> <strong>Engineering</strong> 21<br />

4.5.3 Dokumentverwaltung<br />

Dokumente, die man nicht findet, wenn man sie braucht, oder solche, die nicht mehr<br />

aktuell sind, sind von zweifelhaftem Wert. Dokumente müssen daher der<br />

Konfigurationsverwaltung unterworfen werden. Vor allem die folgenden drei Dinge<br />

sind wichtig.<br />

Klassifikation: Leichtes Finden durch geordnetes Ablegen<br />

- Je<strong>des</strong> Dokument hat einen eindeutigen Namen.<br />

- Alle Dokumente haben einheitlich gestaltete Deckblätter<br />

- Je<strong>des</strong> Blatt je<strong>des</strong> Dokuments hat eine Kopfzeile mit folgenden Angaben:<br />

Projekt, Dokumentname (evtl. Kurzname), Versionsnummer /<br />

Änderungsindex, evtl. Datum, Kapitelnummer, Seitenzahl. Bei Dokumenten<br />

auf Datenträgern oder in Informationssystemen wird so verfahren, daß diese<br />

Informationen abrufbar sind, bzw. bei der Ausgabe auf Papier generiert<br />

werden.<br />

Freigabewesen: Nur Freigegebenes gilt<br />

Fertiggestellte Dokumente werden geprüft, gefundene Mängel werden behoben.<br />

Dann erst wird das Dokument freigegeben und verteilt. Von diesem Zeitpunkt an ist<br />

ein Dokument dem Zugriff seiner Ersteller entzogen. Änderungen sind nur noch über<br />

das Änderungswesen möglich.<br />

Änderungswesen: Nur Aktuelles ist hilfreich<br />

Das Änderungswesen hat zwei Ziele:<br />

- Dokumente immer aktuell zu halten<br />

- wil<strong>des</strong>, unkontrolliertes Andern von Dokumenten zu verhindern.<br />

Hierzu wird ein Prozeß definiert, nach dem Änderungen ablaufen. In der Regel<br />

enthält er die Schritte: Antrag - Entscheid - Durchführung - Freigabe.<br />

4.5.4 Dokumenterstellung<br />

Dokumente entstehen schritthaltend mit der Entwicklung und sind ein Bestandteil<br />

<strong>des</strong> Projektes. Ohne Dokumente sind weder eine vernünftige Projektführung noch<br />

eine geordnete Prüfung und Qualitätssicherung möglich. Das heute immer noch<br />

verbreitete „hinterher“ - Dokumentieren, welches dann oft dem Zeitmangel zum<br />

Opfer fällt, sollte endgültig der Vergangenheit angehören.


<strong>Requirements</strong> <strong>Engineering</strong> 22<br />

Hingegen kann es sinnvoll sein, zum Schluß einer Entwicklung Dokumente<br />

nochmals zu überarbeiten. Die Klarheit und die Konsistenz der Darstellung läßt sich<br />

im Nachhinein oft noch massiv verbessern. Der Aufwand für diese Verbesserungen<br />

lohnt sich, da ein guter Dokumentensatz die Pflege verbilligt.<br />

4.5.5 Anforderung an die Dokumentation<br />

An die Dokumentation werden primär folgende Anforderungen gestellt:<br />

• Eindeutig<br />

• Vollständig<br />

• Überprüfbar<br />

• Konsistent<br />

• nachvollziehbar<br />

4.5.6 Prüfverfahren<br />

Für die Prüfung einer Anforderungsspezifikation kommen vier Verfahren in Betracht<br />

• Reviews<br />

• Prüf - und Analysemittel in Werkzeugen<br />

• Simulation<br />

• Prototypen<br />

Ein Review ist eine formell organisierte Zusammenkunft von Personen zur<br />

inhaltlichen oder formellen Überprüfung eines Produktteils (Dokument,<br />

Programmstück, etc.) nach vorgegebenen Prüfkriterien. Reviews sind das Mittel zur<br />

Prüfung von Dokumenten.<br />

Prüf - und Analysemittel in Werkzeugen werden immer dann eingesetzt, wenn eine<br />

Spezifikation mit Hilfe von Werkzeugen erstellt wurde. Insbesondere Lücken und<br />

Widersprüche in der Spezifikation lassen sich mit solchen Prüfverfahren finden.<br />

Beispielsweise kann ein Werkzeug prüfen, ob jeder verwendete Datenname auch<br />

irgendwo definiert ist.<br />

Mit einer Simulation kann die Adäquatheit <strong>des</strong> Verhaltens <strong>des</strong> spezifizierten Systems<br />

in bestimmten Situationen untersucht werden.<br />

Ein Prototyp ist ein lauffähiges Stück <strong>Software</strong>, welches Teile eines zu<br />

entwickelnden Systems vorab realisiert. Er dient als Modell für die weitere<br />

Entwicklung oder für das zu schaffende Produkt. Ein Prototyp ist das mächtigste<br />

verfügbare Mittel für die Beurteilung der Ädäquatheit einer Spezifikation durch die


<strong>Requirements</strong> <strong>Engineering</strong> 23<br />

zukünftigen Benutzer. Er ermöglicht in beschränktem Rahmen eine Erprobung <strong>des</strong><br />

gewünschten Systems in seiner geplanten Einsatzumgebung. Aufgrund der im<br />

Vergleich zu anderen Prüfverfahren hohen Kosten für einen Prototyp muß in jedem<br />

Einzelfall entschieden werden, wie weit die Entwicklung von Prototypen für die<br />

Prüfung von Anforderungen aufgrund <strong>des</strong> Entwicklungsrisikos notwendig ist.<br />

4.6 Methoden und Techniken<br />

Die klassischen Methoden und Techniken <strong>des</strong> <strong>Requirements</strong> <strong>Engineering</strong> dienen<br />

hauptsächlich der Ansammlung von abstraktem Wissen. Zu diesen Methoden<br />

gehören:<br />

• _<br />

• _<br />

• _<br />

Datenfluß - und ER - Diagramme<br />

Objektorientierte Analyse<br />

Ereignisorientierte Analyse<br />

Im folgenden wollen wir nun einige Modelle erklären.<br />

4.6.1 Datenfluß - Diagramme<br />

4.6.1.1 Einleitung<br />

Zweck eines Datenflußdiagrammes ist die Abbildung der als Prozesse aufgefaßten<br />

Komponenten eines Systems mit den Datenbeziehungen, die zwischen den Prozessen<br />

bestehen. Bei der Systemabbildung wird primär die Sicht auf die Daten und nicht auf<br />

die der Prozesse von Interesse sein. Die Schnittstellen zwischen den Prozessen sind<br />

die, als Datenflüsse bezeichneten, Datenbeziehungen. Wegen <strong>des</strong> hohen<br />

Darstellungsaufwan<strong>des</strong> ist die Anwendung der Datenflußdiagramme erst mit der<br />

Entwicklung von Werkzeugen zum vorherrschenden grafischen Darstellungsmittel<br />

geworden.<br />

4.6.1.2 Verwendung von Datenflußdiagrammen<br />

Die grundsätzliche Verwendung von Datenflußdiagrammen ist die Erfassung und<br />

Analyse <strong>des</strong> Istzustands und dem Systementwurf. Dabei kann zwischen logischen<br />

und physischen Datenflußdiagrammen unterschieden werden. Aus diesem Grund<br />

kann man folgende Anwendungsgebiete näher präzisieren:


<strong>Requirements</strong> <strong>Engineering</strong> 24<br />

• Istzustandserfassung: physisch orientierte Abbildung <strong>des</strong> Istzustands<br />

• Istzustandsanalyse : Entfernung der physischen Attribute und entwickeln <strong>des</strong><br />

logischen Modell <strong>des</strong> Istzustands (von der Implementierung unabhängig)<br />

• Systementwurf: logisches Modell <strong>des</strong> Sollzustan<strong>des</strong><br />

• Implementierung: den logischen Modell <strong>des</strong> Sollzustan<strong>des</strong> werden durch<br />

physische Attribute ergänzt.<br />

Nachdem wir nun die Anwendungsgebiete der Datenflußdiagramme kennen gelernt<br />

haben, wenden wir uns der Darstellungsform der Datenflußdiagramme zu. Die<br />

nachfolgende Notation verwendet folgende Elemente und Symbole:<br />

• Pfeil zur Darstellung von Datenobjekten<br />

• Kreis zur Darstellung von Prozessen<br />

• parallele Linien zur Darstellung von Datenbasen (nicht im Kontextdiagramm)<br />

• Rechteck zur Darstellung von Datenquellen und –senken (nur im<br />

Kontextdiagramm)<br />

Die Abbildung unten zeigt uns den Aufbau eines Datenflußdiagramms mit den<br />

wichtigsten Elementen. Die folgende Darstellung kann wie folgt gelesen werden. Die<br />

Datenquelle Q stellt dem Prozeß P1, der einen Zugriff auf die Datenbasis D hat,<br />

Datenobjekt x zur Verfügung. Ergebnis der Verarbeitung im Prozeß P1 ist<br />

Datenobjekt y, dieses wird von Prozeß P2 verwendet und zu Datenobjekt z<br />

verarbeitet, das in die Datensenke S eingeht.<br />

Abbildung 8: Wichtigsten Symbole eines Datenflußdiagramms (Heinrich 1997, Seite 366)<br />

Bereits die Modellierung kleiner Systeme kann zu unübersichtlichen<br />

Abbildungsgrößen führen und <strong>des</strong>halb wird eine geeignete Zerlegung von<br />

Datenflußdiagrammen vorgenommen. Durch die Zerlegung entsteht eine Hierarchie<br />

von Datenflußdiagrammen auf mehreren Abstraktionsebenen.


<strong>Requirements</strong> <strong>Engineering</strong> 25<br />

Die oberste Ebene wird als Kontextdiagramm und die unterste Ebene, die nicht mehr<br />

sinnvoll zerlegt werden kann, wird als Grundfunktion bezeichnet. Zwischen den<br />

einzelnen Ebenen besteht von oben nach unten eine Vater - Sohn Beziehung.<br />

Je<strong>des</strong> Sohn - Diagramm ist eine detailliertere Systemabbildung als das ihm<br />

zugehörige Vater - Diagramm, doch handelt es sich immer um genau das gleiche<br />

System. Diese Tatsache wird als Gleichgewicht zwischen den Datenflußdiagrammen<br />

benachbarter Ebenen bezeichnet.<br />

4.6.1.3 Arbeitsschritte zur Modellierung<br />

Beim Modellieren eines Datenflußdiagramms kann nach folgenden Arbeitsschritten<br />

vorgegangen werden:<br />

1. Festlegen der Systemgrenzen (Eingabe- oder Ausgabedaten)<br />

2. Bestimmen der Datenobjekte innerhalb der Systemgrenzen<br />

(progressiv oder retrograd)<br />

3. Bezeichnen der Datenobjekte in eindeutiger und übersichtlicher Weise<br />

4. Beschreiben der Prozesse auf der untersten Darstellungsebene (Grundfunktion)<br />

5. Überarbeiten <strong>des</strong> Datenflußdiagramms<br />

6. Dokumentation der Datenobjekte und der Prozesse<br />

4.6.2 SADT – Structured Analysis and Design Technique<br />

SADT ist eine graphische Beschreibungsmethode, wobei ein System mit zwei sich<br />

ergänzenden Modellkonzepten abgebildet wird:<br />

1. Aktivitätenmodell: zur Abbildung von Aktivitäten, die durch Menschen,<br />

Maschinen oder Algorithmen ausgeführt werden.


<strong>Requirements</strong> <strong>Engineering</strong> 26<br />

Abbildung 9. Aktivitätsmodell (Heinrich 1997, Seite 357)<br />

Im Aktivitätenmodell wird jede Aktivität durch ein Rechteck modelliert. Die<br />

Datenobjekte, welche die Aktivitäten auslösen bzw. die durch die Aktivität erzeugt<br />

werden, werden als Pfeile dargestellt.<br />

2. Datenmodell: je<strong>des</strong> Datenobjekt wird als Rechteck und jede Aktivität als Pfeil<br />

modelliert.<br />

Abbildung 10: Datenmodell (Heinrich 1997, Seite 357)


<strong>Requirements</strong> <strong>Engineering</strong> 27<br />

4.6.2.1 Eigenschaften der SADT<br />

• Jede Seite eines Aktivitäten- und eines Datenkastens hat eine spezielle<br />

Bedeutung:<br />

linke Seite: Input<br />

obere Seite: Controls<br />

rechte Seite: Outputs<br />

untere Seite: Mechanismus<br />

• Bei der Modellierung beginnt man auf der höchsten Abstraktionsebene und führt<br />

dann eine schrittweise Verfeinerung durch.<br />

• Ein System kann von mehreren Sichten modelliert werden. (z.B eine Bibliothek<br />

aus der Sicht <strong>des</strong> Bibliotheksbenutzers und der Bibliotheksverwaltung)<br />

Um konkrete Erfahrungen mit dem Arbeitsbereich <strong>des</strong> Anwenders zu erhalten,<br />

müssen jedoch weitere Techniken eingesetzt werden:<br />

• Beobachtungen<br />

• Befragungen<br />

• Teilnahme <strong>des</strong> Entwicklers an der Arbeit <strong>des</strong> Anwenders<br />

• Experimente<br />

• ...<br />

4.6.3 Anforderungen an Methoden und Techniken<br />

Die verwendeten Methoden und Techniken sollten folgende Eigenschaften besitzen:<br />

• Darstellung aktueller und zukünftiger Systeme sowie technologischer Optionen<br />

• Entwicklung abstrakten und konkreten Wissens<br />

• Betrachtung auch von Randgebieten<br />

• Unterstützung von Kommunikation zwischen Anwendern und Entwicklern<br />

4.6.4 Modell erstellen<br />

Ziel der Modellierung ist es, diejenigen Aufgaben zu erheben, die mittels <strong>Software</strong><br />

unterstützt werden können. Hierzu werden zunächst die für die Untersuchung<br />

relevanten Organisationseinheiten entlang einer Darstellung der Aufbauorganisation<br />

ermittelt.


<strong>Requirements</strong> <strong>Engineering</strong> 28<br />

In strukturierten Interviews mit den späteren Anwendern aus diesen Abteilungen<br />

werden die dort anfallenden Aufgaben und die zur Aufgabenerledigung benötigten<br />

bzw. bei der Aufgabenerledigung erzeugten Daten erhoben.<br />

Sowohl zur Erhebung wie auch zur Dokumentation der<br />

Organisationszusammenhänge und zur Modellvalidierung mit den Anwendern bieten<br />

sich graphische Beschreibungsmittel an. Insgesamt liegt der <strong>Software</strong>evaluation<br />

eine Modellierung <strong>des</strong> Anwendungsbereichs der <strong>Software</strong> aus Aufbau -, Ablauf-,<br />

Aufgaben- und Objektsicht zugrunde. Die Art der Modellierung sowie die<br />

verwendeten Beschreibungsmittel werden in Abschnitt 2 näher dargestellt.<br />

4.6.4.1 Beschreibung der Modelle<br />

In diesem Modell wird der Anwendungsbereich aus verschiedenen Sichten der<br />

Organisationsmodellierung betrachtet. Zentral für die <strong>Software</strong>evaluation ist die<br />

Aufgabensicht. Hier werden die Aufgaben, für die eine <strong>Software</strong>unterstützung<br />

gesucht ist, näher beschrieben. Die zeitliche und logische Reihenfolge der<br />

Aufgabenbearbeitung wird aus der Ablaufsicht untersucht.<br />

In der Aufbausicht steht die Betrachtung der organisatorischen Einheiten, die mit der<br />

Aufgabenerledigung betraut sind, im Vordergrund. In der Objektsicht werden<br />

Objekte, wie Daten, Dokumente oder Werkstücke, die im Anwendungsbereich<br />

bearbeitet werden, näher untersucht.<br />

Zur jeder dieser Organisationssichten sowie zur sichtenübergreifenden<br />

Organisationsbeschreibung können verschiedene Beschreibungsmittel eingesetzt<br />

werden.<br />

Die Aufbausicht wird hierbei durch ein Organigramm dargestellt, welches die<br />

Leitungsbeziehungen zwischen einzelnen Organisationseinheiten beschreibt. Zur<br />

Darstellung aus Ablaufsicht werden Datenflußdiagramme verwendet.<br />

Diese beschreiben einerseits Beziehungen zwischen Aufgaben und Objekten,<br />

unterstützen den Modellierer aber auch bei der Aufgabenzerlegung. Dokumentiert<br />

wird diese Zerlegung in der Aufgabensicht durch einen<br />

Aufgabengliederungsplan.Eine Ergänzung der Aufgabengliederungspläne bietet die<br />

<strong>Software</strong> - Anforderungsliste, in der jeder Aufgabe Unterstützungsmöglichkeiten<br />

durch <strong>Software</strong> zugeordnet ist. Mit Hilfe erweiterter Entity-Relationship-<br />

Diagramme werden schließlich die zu bearbeitenden Objekte beschrieben.


<strong>Requirements</strong> <strong>Engineering</strong> 29<br />

Alternativ zu den hier skizzierten Beschreibungsmitteln lassen sich auch andere<br />

verwenden. So können anstelle der Datenflußdiagramme z.B. auch SADT-<br />

Aktivitätendiagramme verwendet werden. In diesen Diagrammen kann zu jeder<br />

Aufgabe auch ein Aufgabenträger zugeordnet werden, wodurch ein Bezug zwischen<br />

Ablauf- und Aufbausicht hergestellt wird. Ist neben der Betrachtung der einzelnen<br />

Aufgaben und der bearbeiteten Objekte auch eine Betrachtung von Kontrollflüssen<br />

wesentlich, bietet sich eine sichtenübergreifende Darstellung durch<br />

Vorgangskettendiagramme an, durch die zusätzlich auch ein Bezug zur Aufbausicht<br />

hergestellt werden kann.<br />

4.6.4.2 Erhebung der Modelle<br />

Ausgangspunkt zur Erstellung <strong>des</strong> anwendungsabhängigen Modells ist die<br />

Aufbauorganisation <strong>des</strong> betrachteten Unternehmens, die zumeist in Form von<br />

Organigrammen dokumentiert ist.<br />

Diese Darstellungen sind jedoch auf ihre Aktualität hin zu überprüfen und<br />

gegebenenfalls zu überarbeiten. Zur <strong>Software</strong>evaluation reicht es häufig aus,<br />

lediglich die Unterstützung für zentrale Organisationseinheiten und für<br />

Repräsentanten gleichartiger Abteilungen zu untersuchen.<br />

Als Auswahlkriterium können hierzu die Informationsbeziehungen zwischen den<br />

Abteilungen dienen. Entlang von Darstellungen, die Organisationseinheiten mit<br />

ähnlichem Kommunikationsverhalten zusammenfassen, kann diese Auswahl<br />

erfolgen.<br />

Sowohl Erhebung als auch Dokumentation der Aufgaben- und Ablaufmodellierung<br />

für diese ausgewählten Abteilungen erfolgt mit Datenflußdiagrammen. Hierzu wird<br />

in Interviews erhoben und interaktiv in Kontextdiagrammen notiert, welche<br />

Informationen mit anderen Abteilungen oder externen Partnern ausgetauscht werden.<br />

Ausgehend von diesen ein- und ausgehenden Datenflüssen werden Unteraufgaben<br />

mit eher administrativem, kontrollierendem, planendem, entscheidendem oder<br />

ausführendem Charakter erfragt. Dieses Vorgehen ermöglicht eine vollständige<br />

Erfassung aller zu erledigenden Aufgaben.<br />

Dieses wird auch dadurch erreicht, daß es zu jedem ein- bzw. ausgehenden<br />

Datenfluß eine diese Informationen verarbeitende Aufgabe geben muß. Die<br />

ermittelten Aufgaben können analog entlang der ein- und ausgehenden Datenflüsse<br />

weiterverfeinert werden.


<strong>Requirements</strong> <strong>Engineering</strong> 30<br />

Die gewonnene Verfeinerungshierarchie wird anschließend in<br />

Aufgabengliederungspläne übertragen. Die Gestalt der Datenflüsse kann sowohl aus<br />

den Interviews wie auch aus verwendeten Formularen abgeleitet werden.<br />

Dokumentiert werden diese Zusammenhänge aus Objektsicht mittels Entity-<br />

Relationship-Diagrammen oder Datenlexika.<br />

Zur Kommunikationsunterstützung während der Modellerhebung bieten sich in<br />

erster Linie Kontextdiagramme an, die gemeinsam mit den Interviewpartnern erstellt<br />

werden. Entlang der hierbei erhaltenen Informationen können dann Unteraufgaben<br />

strukturiert erfragt werden.<br />

Diese Aufgaben werden von den Befragten i.a. kontrollflußartig durch Folgen<br />

weiterer Aufgaben und Unteraufgaben erklärt, so daß hieraus eine erste<br />

Aufgabengliederung abgeleitet werden kann, die später zu einer vollständigen<br />

Datenflußmodellierung ergänzt wird. Ebenso unterstützen graphische Darstellungen<br />

die Modellvalidierung. Entlang der Datenflußdiagramme können die Befragten ihre<br />

Arbeitsabläufe gut verfolgen und gleichzeitig überprüfen, ob alle benötigten bzw.<br />

erstellten Informationen berücksichtigt sind.<br />

Um die Kommunikation mittels Datenflußdiagrammen zu erleichtern, sollten<br />

gewisse Layout-Richtlinien berücksichtigt werden. Insbesondere die Anordnung von<br />

Prozessen und Datenspeichern trägt zum intuitiven Modellverstehen bei. Da<br />

Aufgaben vielfach in der zeitlichen Folge ihrer Erledigung erklärt werden, sollte<br />

dieser Ablauf in den Darstellungen – auch wenn Kontrollfluß in<br />

Datenflußdiagrammen nicht explizit modelliert ist – erkennbar sein. Dieses wird<br />

dadurch erreicht, daß man sich eine Zeitachse vom linken oberen zum rechten<br />

unteren Bildrand denkt und Aufgaben, die zeitlich oder logisch später ausgeführt<br />

werden, weiter rechts im Diagramm notiert. Parallel bearbeitbare Aufgaben können<br />

übereinander notiert werden. Querbezüge zwischen einer verfeinerten Aufgabe und<br />

ihrer Verfeinerung lassen sich leichter herstellen, wenn ein- und ausgehende<br />

Datenflüsse auf beiden Modellierungsebenen leicht identifizierbar sind.<br />

Hierzu empfiehlt es sich, in die Verfeinerung ein- und ausgehende Datenflüsse am<br />

Bildrand beginnen bzw. enden zu lassen. Daneben sollten auch einfache<br />

Gestaltungsregeln beachtet werden. So sollte ein Diagramm i.a. 3-7 Aufgaben<br />

beschreiben und jede Aufgabe nicht zu mehr als sieben Datenflüssen inzident sein.


<strong>Requirements</strong> <strong>Engineering</strong> 31<br />

5 Abbildungsverzeichnis<br />

Abbildung 1: <strong>Software</strong>-Life-Cycle .......................................................................3<br />

Abbildung 2: Fehlerstrom und Fehlerkosten in Relation .......................................5<br />

Abbildung 3: Beispiel für einen RE - Prozeß ........................................................8<br />

Abbildung 4: Kosten der Fehlerbehebung ...........................................................11<br />

Abbildung 5: Wirtschaftlichkeit der Anforderungsspezifikation .........................12<br />

Abbildung 6: Möglicher Ablauf eines Spezifikationsprozesses unter<br />

Interaktion der Beteiligten .............................................................13<br />

Abbildung 7: Vergleich Kosten/Nutzen der Dokumentation ...............................20<br />

Abbildung 8: Wichtigsten Symbole eines Datenflußdiagramms ..........................24<br />

Abbildung 9. Aktivitätsmodell ...........................................................................26<br />

Abbildung 10: Datenmodell .................................................................................26


<strong>Requirements</strong> <strong>Engineering</strong> 32<br />

6 Literaturverzeichnis<br />

[Gause 1993] Donald C. Gause: <strong>Software</strong> <strong>Requirements</strong>:<br />

Anforderungen erkennen, verstehen und erfüllen; 1.<br />

Auflage, Carl Hanser Verlag München Wien 1993.<br />

[Heinrich 1997] Heinrich, Lutz J.: Management von<br />

Informatikprojekten, Oldenbourg Verlag, 1997<br />

[IEEE 94] IEEE <strong>Software</strong>, March 1994<br />

[IEEE 96] IEEE <strong>Software</strong>, March 1996<br />

[Möller 1992] Karl-Heinrich Möller: Metrikeinsatz in der<br />

<strong>Software</strong>entwicklung; in HMD - Theorie und Praxis<br />

der WIN 163/92, S. 17-30.<br />

[Partsch 1991] Helmuth Partsch: <strong>Requirements</strong> <strong>Engineering</strong> –<br />

Handbuch der Informatik, Oldenbourg München. 1991.<br />

[Pomberger / Blaschek 1981]Gustav Pomberger und Günther Blaschek: <strong>Software</strong><br />

<strong>Engineering</strong> – Prototyping und objektorientierte<br />

<strong>Software</strong>entwicklung; 2. Auflage, Carl Hanser Verlag<br />

München Wien 1996.<br />

[Sommerville 1997] Sommerville, Ian; Sawyer, Pete: <strong>Requirements</strong><br />

<strong>Engineering</strong>. A Good Practice Guide, John Wiley &<br />

Sons Verlag 1997.


<strong>Requirements</strong> <strong>Engineering</strong> 33<br />

7 Internetquellen<br />

V - Modell nach Böhm<br />

http://www.baer.rwth-aachen.de/~marcel/studium/pig/projektmanagment.htm<br />

<strong>Requirements</strong> <strong>Engineering</strong> Research Group at University of Zurich<br />

http://www.ifi.unizh.ch/groups/req/<br />

Theoretische und praktische Ansätze im <strong>Requirements</strong> <strong>Engineering</strong> für<br />

Standardsoftware und Anlagenbau<br />

http://hpbib3.informatik.tu-<br />

muenchen.de/Dienst/UI/2.0/Describe/ncstrl.tu.munich_cs/TUM-I9832<br />

<strong>Requirements</strong> <strong>Engineering</strong> - Einführung<br />

http://nestroy.wi-inf.uni-essen.de/Lv/mod1/folien/10.html<br />

http://nestroy.wi-inf.uni-essen.de/Lv/mod1/folien/7.html<br />

<strong>Requirements</strong> <strong>Engineering</strong> - Einführung<br />

http://www.kbs.uni-hannover.de/se/vorlesung/root2/root2.html<br />

<strong>Requirements</strong> <strong>Engineering</strong> – research group<br />

http://www-comp.mpce.mq.edu.au/~didar/seweb/requirements.html<br />

<strong>Requirements</strong> <strong>Engineering</strong><br />

http://www.pri.univie.ac.at/scripts/scripts.html<br />

<strong>Requirements</strong> <strong>Engineering</strong><br />

http://www.uni-koblenz.de/~ist/abstracts/FraWin1995.html<br />

<strong>Requirements</strong> <strong>Engineering</strong><br />

http://www-stud.uni-essen.de/~sw0136/Lernzettel/Lern_SWT.html<br />

Alle Internetquellen datieren mit 14. November 1999 und waren zu diesem Zeitpunkt<br />

voll funktionsfähig.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!