Funktionale Anforderungen

Einführung

Eine verbreitete Unterteilung ist die Unterscheidung in funktionale und nicht funktionale Anforderungen.

Funktionale Anforderungen sind Bestandteil eines Lastenheftes und beschreiben den Funktionsumfang eines zu erstellenden Werkes. Eine funktionale Anforderung legt fest, was das Produkt leisten soll. Ein Beispiel:

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

Funktionale Anforderungen und nicht funktionale Anforderungen zusammen beschreiben die Eigenschaften eines zu erstellenden Werkes im Sinne eines Werkvertrages. Beim Sammeln der Anforderungen ist der Übersetzungsprozess zwischen Fachseite und Entwickler von besonderer Bedeutung. Folgende Kriterien sind zu erfüllen (Quelle: Robertson (2006). Mastering the Requirements Process. Harlow : Addison-Wesley):

  • vollständig: Alle Anforderungen des Kunden müssen explizit beschrieben sein, es darf keine impliziten Annahmen des Kunden über das zu entwickelnde System geben.

  • eindeutig definiert/abgegrenzt: Präzise Definitionen helfen, Missverständnisse zwischen Entwickler und Auftraggeber zu vermeiden.

  • verständlich beschrieben: Damit sowohl der Auftraggeber als auch der Entwickler mit vertretbarem Aufwand die gesamten Anforderungen lesen und verstehen kann.

  • atomar: Es darf nur eine Anforderung pro Abschnitt oder Satz beschrieben sein. Das Kriterium für ein „Atom“ sollte die Entscheidbarkeit einer Anforderung sein.

  • identifizierbar: Jede Anforderung muss eindeutig identifizierbar sein (z. B. über eine Kennung oder Nummer).

  • einheitlich dokumentiert: Die Anforderungen und ihre Quellen sollten nicht in unterschiedlichen Dokumenten stehen oder unterschiedliche Strukturen haben.

  • nachprüfbar: Die Anforderungen sollten mit Abnahmekriterien verknüpft werden, damit bei der Abnahme geprüft werden kann, ob die Anforderungen erfüllt wurden. Testfälle müssen aus den Abnahmekriterien ableitbar sein.

  • rück- und vorwärtsverfolgbar: Es muss nachverfolgbar sein, ob eine Anforderung vollständig erfüllt wurde (vorwärts). Ebenso soll für jede implementierte Funktionalität kontrollierbar sein, aufgrund welcher Anforderungen sie erstellt wird (rückwärts), um Überflüssiges zu vermeiden.

  • konsistent: Die definierten Anforderungen sind untereinander widerspruchsfrei.