NFRD (Non-Functional Requirements Definition)

NFRD (Non-Functional Requirements Definition)

Definition

NFRD bezeichnet die Definition von nicht-funktionalen Anforderungen. Nicht-funktionale Anforderungen (NFRs) präzisieren die Qualitätseigenschaften eines Systems und nicht dessen Verhalten. Beispiele für solche Anforderungen sind Sicherheit, Zuverlässigkeit, Leistung und Benutzerfreundlichkeit.

Weitere Informationen (Wikipedia)

Funktionsprinzip

NFRD ist ein Element des Software Engineering und beinhaltet die Spezifikation der Kriterien, anhand derer das Funktionieren eines Systems bewertet wird. Das können zum Beispiel Antwortzeiten, Ausfallsicherheit oder auch die einfache Bedienbarkeit der Anwendung sein. NFRs werden oft ins Pflichtenheft für die Systementwicklung eingetragen und sind Grundlage für Tests und Audits.

Praxisbeispiele

  • Die Festlegung der maximalen Antwortzeit einer Webanwendung unter bestimmten Lastbedingungen.
  • Die Definition der minimalen Sicherheitsanforderungen für eine Banking-Software.
  • Die festgelegte Anforderung an die Benutzerfreundlichkeit eines Online-Shops muss eingehalten werden.

Vorteile

  • Sorgt für klare Erwartungen hinsichtlich der Systemqualität.
  • Schafft Messbarkeit der Systemperfromance.
  • Mindert Risiken.
  • Erleichtert die Kommunikation zwischen Entwicklern und Auftraggebern.
  • Kann als Leitfaden für Tests dienen.
  • Sorgt dafür, dass wichtige Qualitätsaspekte nicht vergessen werden.
  • Reduziert späteren Aufwand für Nachbesserungen.
  • Fördert die Kundenzufriedenheit.

Herausforderungen

  • NFRs können schwer quantifizierbar sein.
  • Die Definition von NFRs kann Aufwand erzeugen.
  • Es kann schwierig sein, alle relevanten NFRs zu identifizieren.
  • Veränderungen im Projekt können Anpassungen der NFRs nötig machen.
  • Erfordert Kommunikation und Abstimmung zwischen verschiedenen Stakeholdern.
  • Nicht alle NFRs sind sofort ersichtlich und können erst im Verlauf des Projekts auftreten.
  • NFRs können in Konflikt mit funktionalen Anforderungen stehen.
  • Einige NFRs können sich gegenseitig ausschließen.

Best Practices

  • Alle Stakeholder in die Definition der NFRs einbeziehen.
  • NFRs quantifizierbar machen, wo möglich.
  • Regelmäßig überprüfen, ob NFRs noch aktuell und relevant sind.
  • NFRs in den Entwicklungsprozess integrieren.
  • Für unklare NFRs Expertenmeinungen einholen.
  • Auf Konflikte zwischen NFRs achten und adressieren.
  • NFRs dokumentieren und kommunizieren.
  • Früh im Projekt mit der Definition von NFRs beginnen.

Fazit

Nicht-funktionale Anforderungen (NFRs) spielen eine entscheidende Rolle in der Softwareentwicklung. Sie sorgen dafür, dass ein System nicht nur das tut, was es soll, sondern dass es das auch richtig gut und unter allen erwarteten Bedingungen tut. Das macht NFRs zu einem entscheidenden Aspekt der Qualitätskontrolle in der Softwareentwicklung. Trotz gewisser Herausforderungen lohnt es sich, hier Zeit und Aufwand zu investieren, um letztendlich ein robustes, effizientes und beliebtes Produkt zu erhalten.