Was bedeutet Requirements Engineering?
Requirements Engineering oder auch Anforderungsmanagement beschäftigt sich mit der Ermittlung, Untersuchung, Spezifizierung sowie Prüfung aller Rahmenbedingungen und Eigenschaften (Anforderungen), die für ein System während des gesamten Lebenszyklus erforderlich sind.
Nachdem mögliche Anforderungen ermittelt wurden, können sie im Rahmen der Analyse klassifiziert und priorisiert werden. Dabei können doppelte und konfliktäre Anforderungen erkannt und vermieden werden. Die Spezifizierung hilft, die Anforderungen in einer standardisierten Form zu dokumentieren. Eine eindeutige, verständliche und testbare Dokumentation ist mit Hilfe von Notationen – wie beispielsweise UML – möglich. Die anschließende Validierung prüft, ob die Anforderungen dem entsprechen, was Stakeholder vom System erwarten. Ziel ist es, die Anforderungen möglichst exakt und unter der Vermeidung von Fehlern festzulegen.
Anforderungen können dabei in zwei Formen eingeteilt werden:
Funktionale Anforderungen: Dies sind Anforderungen an die Aufgaben/Funktionen der Systeme, bzw. Systemkomponenten, um den Nutzern die Ausführung ihrer Aufgaben zu ermöglichen.
Qualitätsanforderungen: Dies sind Anforderungen an die Güte des Systems, z.B. Zuverlässigkeit und Portabilität.
Um die Anforderungen zu ermitteln, können u.a. folgende Techniken angewandt werden:
- Schriftliche Befragungen
- Mündliche Interviews
- Beobachtung von Nutzern
- Analyse der bestehenden Systeme
- Dokumentenanalyse
- Kreative Techniken, z.B. Brainstorming
Zudem müssen Rahmenbedingungen im Requirements Engineering als einschränkende Faktoren berücksichtigt werden. Dies können organisatorische (z.B. eine bestimmte Aufbauorganisation), technische (z.B. eine bestimmte IT-Landschaft), rechtliche (z.B. Datenschutzgesetze) und ethische Vorgaben sein.
Welche Vorteile bringt Requirements Engineering?
Requirements Engineering kann als Grundbaustein für eine effiziente Entwicklung von Systemen und Software betrachtet werden und bringt u.a. folgende Vorteile mit sich:
- Kosten- und Zeiteinsparungen durch die frühzeitige Identifikation von Fehlern und redundanten Anforderungen.
- Vermeidung von kosten- sowie zeitintensiver Fehlerbehebung nach der System-Auslieferung
- Ermöglichung einer optimalen Planung der Ressourcen für die Systementwicklung
- Hohe Anwenderakzeptanz, da Anwender in den Prozess der Anforderungsentwicklung einbezogen werden
Hohe Qualität, da sämtliche Anforderungen beachtet und validiert werden
Sie haben Fragen zum Thema Requirements Engineering? Kontaktieren Sie uns gerne.