Anforderungen
Requirements
Der zentrale Begriff im Requirements Engineering sind die Anforderungen – auch als Requirements bezeichnet. Diese können folgendermaßen definiert werden:
- „Anforderungen sind Aussagen über eine Eigenschaft oder Leistung eines Produktes, eines Prozesses oder der am Prozess beteiligten Personen.“
- „Eine Anforderung ist eine Bedingung oder Fähigkeit, die ein Benutzer benötigt, um ein Problem zu lösen oder ein Ziel zu erreichen.“
- „Eine Anforderung ist eine Eigenschaft, über die ein Produkt verfügen muss, um für die Interessenvertreter von Nutzen zu sein.“
Anforderungen sind Aussagen über zu erfüllende Eigenschaften oder zu erbringende Leistungen eines Systems (bzw. Produkts), eines Prozesses oder der am Prozess beteiligten Menschen. Typischerweise umfassen sie Informationen darüber, warum ein System entworfen wird, was dieses System leisten soll und welche Einschränkungen dabei einzuhalten sind.
Der Begriff Anforderung (Requirement) umfasst drei Bedeutungen:
- A need perceived by a stakeholder.
- A capability or property that a system shall have.
- A documented representation of a need, capability, or property.
Eine systematisch dargestellte Sammlung von Anforderungen - typischerweise für ein System -, die vorgegebene Kriterien erfüllt, wird als Anforderungsspezifikation (Requirements Specification) bezeichnet.
Warum sind Anforderungen wichtig?
Anforderungen sind von grundlegender Bedeutung für die Entwicklung von Systemen. Denn Stakeholder verfolgen bestimmte Ziele und Sie versprechen sich von einem zu entwickelnden System etwas ganz Einfaches: Es soll ihnen dabei helfen, ihre Ziele zu erreichen. Damit das gelingt, muss das System aus Sicht eines Stakeholders bestimmte Merkmale besitzen. Ziele sind jedoch zu grob, um daraus spezifische Merkmale eines Systems abzuleiten – diesen Zweck erfüllen Anforderungen. Anforderungen konkretisieren Ziele, indem sie im Detail beschreiben, welche Fähigkeiten oder Eigenschaften ein System aufweisen muss, damit alle Stakeholder zufriedengestellt sind. Entscheidend ist dabei, dass die Anforderungen des zu entwickelnden Systems möglichst vollständig, korrekt und präzise formuliert sind, um dadurch die anderen Entwicklungsdisziplinen und Aktivitäten im Lebenszyklus des Systems optimal zu unterstützen.
Hinzu kommt, dass auch Entwicklungsdisziplinen wie beispielsweise Architekturentwurf, Design, Implementierung und Test von den zuvor gesammelten Anforderungen und deren Qualität in hohem Maße abhängig sind. Die Relevanz von Anforderungen geht dabei sogar über die Entwicklungsphase hinaus, denn auch Aktivitäten wie Risikoanalyse, Aufwandsschätzung, Wartung und Außerbetriebnahme stützen sich auf die Anforderungen des jeweiligen Systems.