Requirement Engineering ist, wie der Name es bereits vermuten läßt,
dazu gedacht die Requirements eines Systems auszumachen. Was stellen diese
Requirements aber nun eigentlich dar?
Requirements definieren in den früheren Stationen einer (Software)
Spezifikation, was implementiert werden soll, aber nicht wie dies zu tun
ist. Sie beschreiben:
- Benutzer-Level Einrichtungen
- Übliche Systemeigenschaften
- Spezielle Constrains im System
- Constrains auf die Systementwicklung
Um diese Requirements zu erfassen und zu dokumentieren werden verschiedene
Techniken angewandt, die üblicherweise in 5 Phasen unterteilt sind:
- Requirements Elicitation
grob gesagt finden der Requirements durch Kommunikation mit Kunden,
Usern & an der Entwicklung beteiligten Personen (also Requirements
von unterschiedlichen Gesichtspunkten aus herleiten)
Zielvorstellungen der Gesprächspartner aneinander angleichen (z.B.
die von unterschiedlichen Abteilungen in einer Firma)
erkennen von Constraints
Auswahl des Betriebssystems auf der die Software laufen wird
prüfen ob das Projekt mit aktueller Technologie realisierbar ist
untersuchen inwieweit das momentan verwendete System (falls vorhanden)
mit eingebunden werden kann
ist das Projekt den Aufwand überhaupt wert?
- Requirements Modelling
Ausarbeitung mehrere Systemmodelle (ein einzelnes Modell würde
in den meisten Fällen zu hohe Komplexität aufweisen) um verschieden
Sichtweisen zu illustrieren
grobe Unterteilung der Modelle in 2 Arten:
-Behavioural View: wie verhält sich das System (Reaktion auf Inputs
Events von außerhalb)
-Structural View: zeigt das in die einzelnen Bestandteile zerlegte System
zusätzlich zur Modellierung des Systems ist auch eine Modellierung
des Environment nützlich
Verbindungen zw. Requirements (natürliche Sprache, stammen aus
der Elicitation) und dem Modell einzeichnen (dient dazu dem Kunden die
Zusammenhänge besser ersichtlich zu machen)
- Requirements Specification
einzelne Komponenten der zuvor erstellten Modelle werden nun exakt beschrieben
und formalisiert
Ergebnis: Prototyp des Requirements Documents
- Requirements Validation
auswerten und analysieren der Requirements
Kontrolle von Korrektheit, Vollständigkeit & Konsistenz
Formulierung eindeutig?
nochmaliges prüfen der Machbarkeit (Kosten & Ressourcen)
Ergebnis: Requirements Document
- Requirements Management
während der Systementwicklung und während des Betriebs können
neue Requirements entstehen oder es können Änderungen an bereits
besteheneden Requirements auftreten, Requirements Management dient dazu
um mit solchen Dingen klarzukommen, das heißt das System hinsichtlich
der neuen Requirements zu verändern und auch die Folgen dieser
Änderungen zu berücksichtigen (also Änderungen am System
und an allen Dokumenten die damit in Zusammenhang stehen)
läuft parallel zu den anderen Phasen
notwendig für effizientes Requirements Engineering: Hintergrundwissen
über die einzelnen Requirements (Traceability): Wer wollte das
Requirement? Warum gibt es dieses Requirement? Mit welchen anderen Requirements
steht es in Verbindung? Welche Verbindungen bestehen zwischen einem
Requirement und dem Environment?
dieses Wissen erleichtert Modifikationen am System da man leichter die
Auswirkungen von Änderungen abschätzen kann
|