Zum Inhalt springen

Anforderung (Informatik)

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 21. Februar 2007 um 21:28 Uhr durch Jpp (Diskussion | Beiträge) (Arten von Anforderungen: Constraints). Sie kann sich erheblich von der aktuellen Version unterscheiden.

In der (Software-)Technik ist eine Anforderung (häufig engl. requirement) eine Aussage über eine zu erfüllende Eigenschaft oder zu erbringende Leistung eines Produktes, Systems oder Prozesses. Anforderungen werden üblicherweise in einem Lastenheft zusammengefasst, können in der Realität aber auch in nahezu beliebigen anderen Dokumenten zu finden sein, oder sind nicht dokumentiert.

Die Anforderungsdefinition folgt auf den Schritt der Anforderungsanalyse und stellt somit den zweiten Schritt in einem Entwicklungsprozess dar, auf dem die komplette nachfolgende Entwicklung aufbaut. Es ist deshalb enorm wichtig genügend Projektzeit dafür einzuplanen: Jeder Fehler der hier gemacht wird, benötigt zur Korrektur ein Vielfaches der Zeit, die es kostet, eine umsichtige Anforderungsdefinition zu erstellen.

In dem so mit dem Kunden entstandenen Anforderungsdokument müssen die Aufgaben, die das zu entwickelnde System aus Hardware und/oder Software lösen soll, die zu erreichenden Ziele des Entwicklungsprojekts sowie der Benutzerkreis für den das System entwickelt wird, festgehalten sein.

Das so aus der Anforderungsdefinition hervorgegangene Anforderungsdokument (Konsens) ist Grundlage für das Softwaredesign.

Auch in Deutschland verwendet man gerne den englischen Begriff Requirement und bezeichnet die damit verbundenen Aktivitäten als Requirements Management und Requirements Engineering.

Arten von Anforderungen

Es existieren unterschiedliche Ansätze zur Klassifikation von Anforderungen. Am verbreitetsten ist die Unterteilung in funktionale und nicht funktionale Anforderungen.

Eine funktionale Anforderung legt fest, was das Produkt tun soll.[1] Ein Beispiel:

„Das Produkt soll den Saldo eines Kontos zu einem Stichtag berechnen.“

Ein nichtfunktionale Anforderung legt fest, welche Eigenschaften das Produkt haben soll.[1] Ein Beispiel:

„Das Produkt soll dem Anwender innerhalb von einer Sekunde antworten.“

Häufig werden neben diesen beiden Typen auch Randbedingungen (englisch Constraints) als Anforderungen beschrieben. Häufige Randbedingungen sind eine Obergrenze für Kosten und eine einzuhaltender Termin für den Abschluss des Projekts..

Requirements Management

Requirements Engineering (RE) ist das methodisch gestützte Aufstellen von Anforderungen mittels Analyse der Problemstellung. Die Aufgaben des RE sind Ermittlung (engl. elicitation), Analyse, Vervollständigung, Dokumentation und Qualitätssicherung. Zur Ermittlung der Anforderungen gilt es herauszufinden, welches "die richtigen" zu befragenden Stakeholder (Projektbeteiligten) sind.

Requirements Management (RM) umfasst Requirements-Engineering sowie Maßnahmen zur Steuerung, Kontrolle und Verwaltung von Anforderungen, also Risikomanagement, Änderungsmanagement und Umsetzungsmanagement.

Diese Definitionen, die Requirements Management als Oberbegriff sehen, tragen den Erkenntnissen aus der Vergangenheit Rechnung, dass Probleme mit Anforderungen zumeist aus mangelndem Management von Anforderungen resultieren. Es ist inzwischen die Erkenntnis gereift, dass alleine das Aufstellen von Anforderungen nicht ausreichend ist, sondern für die Realisierung eines Produktes oder Systems der weitergehende Prozess des Requirements Managements notwendig ist.

RE verwendet zur Darstellung die natürliche Sprache, ggf. eine formalisierte natürliche Sprache mit eingeschränktem Vokabular und festen Satzkonstruktionen, den sogenannten Requirements Templates. Die ebenfalls verstärkt verwendeten künstlichen Sprachen zur Modellierung wie z. B. UML oder Message Sequence Charts (MSC) erleichtern in vielen Situationen eine Formulierung der Anforderungen.

Anforderungen dürfen bei Requirements Engineering nicht nur Aussagen über gewünschte Eigenschaften machen, sondern müssen parallel dazu Kriterien beschreiben, wie diese Eigenschaften überprüft werden können (Akzeptanzkriterien). Diese oft auch als Testfälle bezeichneten Kriterien dienen nicht nur der Qualitätssicherung des Produktes, sondern ganz wesentlich der Qualität der Anforderungen selbst, da das Beistellen eines Akzeptanzkriteriums zu einer sofortigen inhaltlichen Überprüfung der Anforderung zwingt.

Siehe auch

Einzelnachweise

  1. a b Suzanne Robertson, James Robertson: Mastering the Requirements Process. 2. Auflage. Addison Wesley, 2006, ISBN 0-321-41949-9, S. 9–10.