Der (potenzielle) Anwender stellt Anforderungen (engl. "requirements") an ein zu entwickelndes System. Die Anforderungen sollen dabei alle für den Kunden relevanten Eigenschaften des Systems beschreiben. Da dies noch eine ungenaue Beschreibung darstellt, sollen Klassifikationen helfen, diesen Begriff näher zu umschreiben. Anforderungen werden dabei z.B. danach kategorisiert, ob der Funktionalitätsumfang der Software betroffen ist oder die "Art und Weise" wie diese Funktionalität erbracht werden soll, in
- funktionale Anforderungen (z.B. die Datenhaltung soll XML basiert sein) und
- nichtfunktionale Anforderungen (z.B. das System soll weniger als 5 MByte Hauptspeicher belegen), oder auch
nach der betrachteten Granularität bspw. in
- Benutzeranforderungen (diese beschreiben eher grobgranular, die Anforderungen eines Systemanwenders, z.B. Kontoführungsmöglichkeiten bei einem Bankautomaten) und
- Systemanforderungen (diese beschreiben detailliert, wie die Benutzeranforderungen zu realisieren sind, z.B. der Ablauf bei einer Überweisung).
Solche Anforderungen können dabei z.B. aus (natürlichsprachlichen) Texten oder auch Modellen (z.B. USE-CASES aus der UML) bestehen. Sie stellen aufgrund ihres informellen Charakters in diesem Kontext eine Vorstufe für die daraus später zu erstellenden formalen Spezifikationen dar. |