Was sind nichtfunktionale Anforderungen in der Softwareentwicklung?
โก Intelligente Zusammenfassung
Nicht-funktionale Anforderungen spezifizieren Qualitรคtsmerkmale wie Leistung, Sicherheit, Benutzerfreundlichkeit, Zuverlรคssigkeit, Skalierbarkeit und Portabilitรคt und definieren, wie gut sich ein Softwaresystem verhalten muss. Sie wandeln vage Erwartungen in messbare, testbare und durchsetzbare Entwicklungsziele รผber den gesamten Lieferlebenszyklus hinweg um.
Was ist eine nicht-funktionale Anforderung?
A Nichtfunktionale Anforderung Eine nichtfunktionale Anforderung (NFR) spezifiziert ein Qualitรคtsmerkmal eines Softwaresystems. NFRs beurteilen das System hinsichtlich Reaktionsfรคhigkeit, Benutzerfreundlichkeit, Sicherheit, Portabilitรคt und anderer Qualitรคtsmerkmale, die fรผr den Erfolg entscheidend sind. Ein gรคngiges Beispiel fรผr eine nichtfunktionale Anforderung ist: โWie schnell lรคdt die Website?โ Die Nichterfรผllung nicht-funktionaler Anforderungen fรผhrt zu Systemen, die die Benutzer frustrieren.
Nicht-funktionale Anforderungen in der Softwareentwicklung schrรคnken den Systementwurf im gesamten agilen Backlog ein. Beispielsweise sollte die Website bei mehr als 10,000 gleichzeitigen Nutzern innerhalb von drei Sekunden laden. Die Beschreibung nicht-funktionaler Anforderungen ist genauso wichtig wie die Erfassung funktionaler Anforderungen.
Arten nicht-funktionaler Anforderungen
Die Hauptkategorien nicht-funktionaler Anforderungen sind:
Arten nichtfunktionaler Anforderungen
- Intuitive Bedienung
- Wartungsfreundlichkeit
- Handlichkeit
- Wiederherstellbarkeit
- Sicherheit
- Datum Integrity
- Kapazitรคt
- Verfรผgbarkeit
- Skalierbarkeit
- Flexibel Kommunikation
- Zuverlรคssigkeit
- Wartbarkeit
- Einhaltung von Vorschriften
- Umwelteinschrรคnkungen
Beispiele fรผr nichtfunktionale Anforderungen
Hier sind praktische Beispiele fรผr nicht-funktionale Anforderungen:
- Benutzer mรผssen das anfรคngliche Passwort nach dem ersten erfolgreichen Login รคndern, und das anfรคngliche Passwort darf niemals wiederverwendet werden.
- Den Mitarbeitern ist es nicht gestattet, ihre eigenen Gehaltsinformationen zu aktualisieren. Jeder derartige Versuch ist dem Sicherheitsadministrator zu melden.
- Jeder erfolglose Zugriffsversuch eines Benutzers auf ein Datenelement wird in einem Prรผfprotokoll aufgezeichnet.
- Die Website muss 20 Millionen gleichzeitige Nutzer unterstรผtzen, ohne dass sich die Antwortzeiten verschlechtern.
- Die Software muss portabel sein, sodass ein Wechsel von einem Betriebssystem zum anderen keine Probleme verursacht.
- Die Vertraulichkeit von Informationen, der Export beschrรคnkter Technologien und die Rechte an geistigem Eigentum mรผssen รผberprรผfbar sein.
Funktionale vs. nicht-funktionale Anforderungen
Die Hauptunterschiede zwischen funktionalen und nicht-funktionalen Anforderungen sind:
| Kenngrรถรen | Funktionale Anforderung | Nichtfunktionale Anforderung |
|---|---|---|
| Was ist das? | Verb | Attribute |
| Anforderung | Es zwingend erforderlich ist | Es ist nicht verpflichtend |
| Erfassungstyp | Es wird im Anwendungsfall erfasst. | Es wird als Qualitรคtsmerkmal erfasst. |
| Endresultat | Produkteigenschaft | Produkteigenschaften |
| Capturing | Leicht zu erfassen | Schwer einzufangen |
| Ziel | Hilft Ihnen, die Funktionalitรคt der Software zu รผberprรผfen. | Hilft Ihnen, die Leistung der Software zu รผberprรผfen. |
| Schwerpunktbereich | Konzentrieren Sie sich auf die Benutzeranforderungen | Konzentriert sich auf die Erwartungen des Benutzers. |
| Dokumentation | Beschreiben Sie, was das Produkt bewirkt | Beschreibt, wie das Produkt funktioniert |
| Art der Prรผfung | Funktionsprรผfung wie System-, Integrations-, End-to-End- und API-Tests usw. | Nicht-funktionale Tests wie Leistungs-, Stress-, Benutzerfreundlichkeits-, Sicherheitstests usw. |
| Test Ausfรผhrung | Die Testausfรผhrung erfolgt vor nichtfunktionalen Tests. | Nach der Funktionsprรผfung |
| Produkt-Info | Produkt-Eigenschaften | Produkteigenschaften |
Vorteile nichtfunktionaler Anforderungen
Die Hauptvorteile von Nicht funktionales Testen sind:
- Nichtfunktionale Anforderungen gewรคhrleisten, dass das System den gesetzlichen und regulatorischen Bestimmungen entspricht.
- Sie schรผtzen die Zuverlรคssigkeit, Verfรผgbarkeit und Leistungsfรคhigkeit des Systems.
- Sie bieten ein gutes Benutzererlebnis und einfache Bedienung.
- Sie prรคgen die Sicherheitspolitik der Software.
Nachteile nicht-funktionaler Anforderungen
Hรคufige Nachteile nicht-funktionaler Anforderungen sind:
- Nichtfunktionale Anforderungen kรถnnen mehrere รผbergeordnete Software-Subsysteme betreffen.
- Sie erfordern besondere Berรผcksichtigung bei der Architektur und der รผbergeordneten Planung, was die Kosten erhรถht.
- Die Implementierung lรคsst sich selten auf ein einzelnes Software-Subsystem abbilden.
- Sobald die Architekturphase abgeschlossen ist, lassen sie sich nur schwer รคndern.
FURPS+-Modell zur Klassifizierung nicht-funktionaler Anforderungen
FURPS+ ist die am weitesten verbreitete Taxonomie fรผr nicht-funktionale Anforderungen. Sie wurde ursprรผnglich bei Hewlett-Packard entwickelt und gruppiert Qualitรคtsmerkmale in fรผnf Hauptkategorien sowie zusรคtzliche Einschrรคnkungen, die mit einem โ+โ gekennzeichnet sind. Das Modell hilft Business-Analysten, keine ganze Anforderungsklasse zu รผbersehen.
- Funktionalitรคt: Leistungsfรคhigkeit, Sicherheit und Wiederverwendbarkeit, die รผber die grundlegende Funktionsliste hinausgehen.
- Benutzerfreundlichkeit: Menschliche Faktoren, รsthetik, Konsistenz, Dokumentation und Reaktionsfรคhigkeit der Benutzererfahrung.
- Zuverlรคssigkeit: Verfรผgbarkeit, mittlere Zeit zwischen Ausfรคllen, Wiederherstellbarkeit, Vorhersagbarkeit und Genauigkeit.
- Eigenschaften: Geschwindigkeit, Durchsatz, Kapazitรคt, Skalierbarkeit und Ressourcenverbrauch unter Last.
- Unterstรผtzbarkeit: Testbarkeit, Flexibilitรคt, Installierbarkeit, Lokalisierbarkeit und Wartbarkeit des gelieferten Systems.
- Plus (+): Design, Implementierung, Schnittstelle und physikalische Einschrรคnkungen wie erforderliche Plattformen, Standards oder Hardware.
Teams, die jede nicht-funktionale Anforderung einer FURPS+-Kategorie zuordnen, liefern seltener ein System aus, das zwar die Funktionen erfรผllt, aber bei Leistung, Sicherheit oder Wartbarkeit versagt.
Wie man testbare nicht-funktionale Anforderungen schreibt
Eine gut formulierte nicht-funktionale Anforderung ist messbar, รผberprรผfbar und zeitgebunden. Vage Aussagen wie โDas System muss schnell seinโ oder โDie App sollte sicher seinโ sind Wรผnsche, keine Anforderungen. Befolgen Sie die unten stehenden Schritte, um eine Absicht in eine testbare nicht-funktionale Anforderung umzuwandeln.
- Identifizieren Sie das Qualitรคtsmerkmal. Ordnen Sie das Anliegen einer FURPS+-Kategorie zu, damit das Team weiร, ob es sich um eine Anforderung an Leistung, Benutzerfreundlichkeit, Sicherheit oder Zuverlรคssigkeit handelt.
- Wรคhlen Sie eine Kennzahl. Jede nichtfunktionale Anforderung (NFR) benรถtigt eine Einheit โ Millisekunden, Anfragen pro Sekunde, gleichzeitige Benutzer, prozentuale Verfรผgbarkeit oder einen Konformitรคtsstandard wie ISO 27001.
- Legen Sie einen numerischen Schwellenwert fest. Ersetzen Sie โschnellโ durch โunter 400 Millisekunden im 95. Perzentilโ. Ersetzen Sie โhochverfรผgbarโ durch โ99.9 Prozent monatliche Verfรผgbarkeitโ.
- Beschreiben Sie den Zustand. Geben Sie die Last, die Umgebung oder das Benutzersegment an, fรผr das der Schwellenwert gilt, z. B. โwรคhrend der Spitzenzeiten mit 10,000 gleichzeitigen Benutzernโ.
- Definiere die Verifizierungsmethode. Notieren Sie sich die Art des Tests โ Lasttest, Penetrationstest, Chaos-Experiment, Zugรคnglichkeitsprรผfung โ und das Tool, das den Schwellenwert bestรคtigt.
- Fรผhren Sie die SMART-Prรผfung durch. Bevor die Anforderung in den Backlog aufgenommen wird, muss sichergestellt werden, dass sie spezifisch, messbar, erreichbar, relevant und zeitgebunden ist.
Beispiel fรผr eine Umformulierung: โDas System muss schnell seinโ wird zu โDie Checkout-Seite muss bei 5,000 gleichzeitigen Nutzern im 95. Perzentil in unter 500 Millisekunden antworten, verifiziert durch einen โฆโ JMeter โLasttests fรผr jede Version durchfรผhren.โ Die รผberarbeitete Aussage ermรถglicht es Entwicklern, dies in ihre Planung einzubeziehen, Testern, es zu รผberprรผfen, und Produktverantwortlichen, es ohne Widerspruch zu akzeptieren.


