logo

Funktionale, nicht funktionale Anforderungen

Im Requirements Engineering unterscheidet man zwischen funktionalen und nicht funktionalen Anforderungen.
Funktionale Anforderungen beschreiben gewünschte Funktionalitäten (was soll das System tun/können) eines Systems bzw. Produkts, dessen Daten oder Verhalten.
Nichtfunktionale Anforderungen sind Anforderungen, an die "Qualität" in welcher die geforderte Funktionalität zu erbringen ist.

Qualität im vorgenannten Sinn meint beispielsweise
  • wie die Funktionalität ausgeführt werden soll (z.B. Reaktionszeit)
  • Bedingungen unter denen die Funktionalität ausgeführt wird (z.B. 7x24 Std.)
Die Unterscheidung zwischen funktionalen und nicht funktionalen Anforderungen ist nicht das Wesentliche - wesentlich ist, dass beide Arten im Projekt vollständig berücksichtigt werden.

Normalerweise zeigt sich, dass die Auftraggeber hauptsächlich an die funktionalen Anforderungen denken. An die nichtfunktionalen Anforderungen denken Sie nur dort, wo sie in der Vergangenheit schlechte Erfahrungen gemacht haben (z.B. zu geringe Verfügbarkeit, schlechte Qualität, etc.)
Allerdings lassen sich Gründe definieren, weshalb die Unterscheidung zwischen funktionalen und nicht funktionalen Anforderungen wesentlich sein kann:

Funktionale Anforderungen unterscheiden sich von Produkt zu Produkt; d.h. wenn eine Bank verschiedene Applikationen baut, werden sich die Funktionen in diesen Applikation sehr wahrscheinlich unterscheiden. Nicht funktionale Anforderungen hingegen können für viele Produkte derselben Unternehmung vorgegeben/vorgeschlagen oder sogar genormt werden (z.B. einheitliches Erscheidungsbild und damit "ähnliche" Usability; Vorgaben von Betriebsmodi welche von der Organisation unterstützt werden, etc.)

Ein zweiter Grund liegt darin, dass sich die nicht funktionalen Anforderungen häufig auf die gesamte Architektur, das gesamte Design des Produktes auswirken, während die funktionalen Anforderungen normalerweise nur "lokale" Auswirkungen haben; d.h. wenn an den nicht funktionalen Anforderungen "geschraubt" wird, hat dies normalerweise viel weitergehende Konsequenzen als bei den rein funktionalen Anforderungen.

Ein dritter Grund liegt darin, dass nicht funktionale Anforderungen häufig erst/nur dann als Anforderungen erkannt werden, wenn in der Vergangenheit schlechte Erfahrungen mit diesem Thema gemacht worden sind. Oder würden Sie eine Anforderung an die Performance ihres neuen PC definieren, wenn Sie bisher nie Probleme mit der Performance gehabt hätten?
Aus Projektsicht betrachtet lässt sich allerdings sagen, dass - mit Ausnahme der im vorstehenden Absatz definierten Merkmale - die Unterscheidung zwischen funktionalen und nicht funktionalen Anforderungen nicht wesentlich ist - wichtig ist nur, dass man beide Arten berücksichtigt!

Sie können ein System bauen, dass sämtliche funktionalen Anforderungen perfekt abdeckt und erfüllt; wenn die nicht funktionalen Anforderungen (z.B. Benutzbarkeit, Antwortzeitverhalten, etc.) nicht korrekt berücksichtigt sind, wird das System vom Benutzer/Kunden nicht akzeptiert werden.