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.

  • ๐Ÿ“˜ Definition: Eine nicht-funktionale Anforderung (NFR) beschreibt, wie gut ein System in Bezug auf Leistung, Sicherheit, Benutzerfreundlichkeit, Zuverlรคssigkeit und Portabilitรคt abschneidet.
  • ๐Ÿ—‚๏ธ Gรคngige Typen: Benutzerfreundlichkeit, Sicherheit, Zuverlรคssigkeit, Skalierbarkeit, Kapazitรคt, Verfรผgbarkeit, Wartbarkeit und Einhaltung gesetzlicher Vorschriften sind die Kategorien, die die Teams bewerten. track am hรคufigsten.
  • ๐Ÿ“Š FURPS+ Modell: FURPS+ gruppiert nichtfunktionale Anforderungen (NFRs) in Funktionalitรคt, Benutzerfreundlichkeit, Zuverlรคssigkeit, Leistung, Supportfรคhigkeit und Design- oder Schnittstellenbeschrรคnkungen.
  • ๐ŸŽฏ Testbare Aussagen: Ersetzen Sie โ€žschnellโ€œ oder โ€žsicherโ€œ durch numerische Schwellenwerte und Verifizierungsmethoden, damit die NFR getestet und akzeptiert werden kann.
  • ๐Ÿ†š Funktioneller Kontrast: Funktionale Anforderungen beschreiben, was das System leistet; nicht-funktionale Anforderungen beschreiben, wie gut es dies unter realen Bedingungen leistet.
  • โœ… Auswirkungen auf das Geschรคft: Fehlende NFRs sind die Hauptursache fรผr Produktionsvorfรคlle, behรถrdliche Beanstandungen und kostspielige Nacharbeiten an der Architektur in spรคten Entwicklungsphasen.

Nicht-funktionale Anforderungen in der Softwareentwicklung

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

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:

  1. Benutzer mรผssen das anfรคngliche Passwort nach dem ersten erfolgreichen Login รคndern, und das anfรคngliche Passwort darf niemals wiederverwendet werden.
  2. Den Mitarbeitern ist es nicht gestattet, ihre eigenen Gehaltsinformationen zu aktualisieren. Jeder derartige Versuch ist dem Sicherheitsadministrator zu melden.
  3. Jeder erfolglose Zugriffsversuch eines Benutzers auf ein Datenelement wird in einem Prรผfprotokoll aufgezeichnet.
  4. Die Website muss 20 Millionen gleichzeitige Nutzer unterstรผtzen, ohne dass sich die Antwortzeiten verschlechtern.
  5. Die Software muss portabel sein, sodass ein Wechsel von einem Betriebssystem zum anderen keine Probleme verursacht.
  6. 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.

  1. 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.
  2. 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.
  3. 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โ€œ.
  4. 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โ€œ.
  5. 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.
  6. 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.

Hรคufig gestellte Fragen

KI-gestรผtzte Last- und Leistungsanalysetools generieren realistischen Datenverkehr, erkennen Anomalien in der Antwortzeitverteilung und prognostizieren Skalierungsgrenzen vor dem Produktivbetrieb. Die KI analysiert zudem Protokolle und Zugriffsmuster, um Sicherheitsereignisse zu identifizieren, die von herkรถmmlichen regelbasierten Tools รผbersehen werden.

Copilot und GPT wandeln vage Qualitรคtsaussagen in messbare nichtfunktionale Anforderungen (NFRs) mit Metriken, Schwellenwerten, Bedingungen und Verifizierungsmethoden um. Business-Analysten prรผfen jeden Entwurf anhand der FURPS+-Kategorien und des SMART-Frameworks, bevor er in den Backlog aufgenommen wird.

Funktionstests prรผfen, ob Funktionen wie Login oder Suche korrekt funktionieren. Nicht-funktionale Tests messen die Systemleistung unter Last, Stress und Nutzung und decken dabei Leistung, Sicherheit, Benutzerfreundlichkeit, Kompatibilitรคt und Zuverlรคssigkeit ab.

Skalierbarkeit, Verfรผgbarkeit, Latenz, Elastizitรคt und Kosteneffizienz dominieren die nicht-funktionalen Anforderungen (NFRs) der Cloud. Teams auch track-Beobachtbarkeit, Ziele der Notfallwiederherstellung wie RPO und RTO sowie die Einhaltung von Multi-Region-Vorgaben, da sie die meisten Entscheidungen zur Cloud-Architektur bestimmen.

Wรคhlen Sie eine Metrik mit Einheit, legen Sie einen numerischen Schwellenwert fest, beschreiben Sie die Bedingung, unter der sie gilt, und benennen Sie die Verifizierungsmethode. Beispiel: Antwortzeit unter 400 Millisekunden im 95. Perzentil bei 5,000 Nutzern, verifiziert durch JMeter.

Verschlรผsselung ruhender und รผbertragener Daten, Authentifizierungsstรคrke, rollenbasierte Autorisierung, Audit-Protokollierung, Sitzungstimeout und die Einhaltung von Standards wie ISO 27001, PCI DSS und DSGVO sind die Sicherheits-NFRs, die die meisten Teams dokumentieren.

Die hรคufigsten Fehler, die zu Nacharbeiten an der Architektur in spรคten Projektphasen fรผhren, sind die Verwendung vager Adjektive, das Weglassen der Metrik oder Bedingung, das Auflisten von NFRs erst am Ende eines Projekts und das Kopieren und Einfรผgen von Standardtexten, die kein Test รผberprรผfen kann.

Nichtfunktionale Anforderungen (NFRs) finden sich in der Software-Anforderungsspezifikation, Architekturentscheidungsdokumenten, Service-Level-Agreements und Definition-of-Fertig-Checklisten. Agile Teams ordnen Epics und der Definition of Ready fรผr jede User Story hรคufig messbare NFRs zu.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: