Management-Zusammenfassung dieses Beitrags:
Unter nicht-funktionalen Anforderungen (abgekürzt: NFAs, seltener NFAen, englisch: Non-functional Requirements — NFRs) werden Anforderungen verstanden, die sich aus technischen Erfordernissen und Randbedingungen ergeben und keine funktionalen Anforderungen darstellen.
In diesem Beitrag werden die nicht-funktionalen Anforderungen beschrieben.
- Stichworte: Nicht-funktionale Anforderungen
- Synonyme: NFA, NFR
- Notwendiges Know-how: Requirements-Engineering-Kenntnisse
- Schwierigkeitsgrad: Mittel
Anforderungen werden im → Requirements Engineering in funktionale und nicht-funktionale Anforderungen (NFAs) unterteilt (Abbildung 0.1). Funktionale Anforderungen beschreiben — grob gesprochen — was ein System leisten soll, während nicht-funktionale Anforderungen definieren, wie ein System etwas leisten soll. Die Ermittlung, Beschreibung und der Umgang mit funktionalen Anforderungen fällt in der Regel leicht, während sich bei nicht-funktionalen Anforderungen häufig Schwierigkeiten ergeben.
In Abbildung 0.1 ist eine mögliche Unterteilung von Anforderungen mit funktionalen und nicht-funktionalen Anforderungen dargestellt.
Abbildung 0.1: Unterteilung von Anforderungen
1. Einleitung und Grundlagen
1.1 Definitionen
Das → IIBA definiert /BBG17‑d/:
“Nicht-funktionale Anforderung (non-functional requirement): Anforderungen, die nicht eine konkrete → Funktion einer Lösung betreffen, sondern eher “begleitender” Natur sind z.B. Qualitätsmerkmale oder zwingende Vorgaben für das Design der Lösung insgesamt.”
In der Wikipedia steht zu den nicht-funktionalen Anforderungen /#Wiki-Anforderungen/:
“Eine nichtfunktionale Anforderung (englisch non-functional requirement, NFR) ist in der Literatur nicht einheitlich definiert. Gemeinsamer Nenner ist, dass sie über die funktionale Anforderung hinaus geht. Die nichtfunktionalen Anforderungen beschreiben, wie gut das System die Leistung erbringen soll; sie werden vielfach als Randbedingungen und Qualitätseigenschaften verstanden.”
Ebert /Ebert22/ schreibt kurz:
“Nichtfunktionale Anforderung: Eine Qualitätsanforderung oder eine Einschränkung.”
Winterroll definiert /Winteroll21/:
“Nichtfunktionale Anforderungen beschreiben, wie das System etwas leisten soll.“
und stellt dazu funktionale Anforderungen gegenüber:
“Funktionale Anforderungen beschreiben, was das System leisten soll.”
→ Schreibweisen:
In diesem Beitrag sowie in allen meinen Beiträgen und → Präsentationen wird das Wort “nicht-funktional” immer mit Bindestrich geschrieben. Die Schreibweisen “nichtfunktional” und “nicht funktional” finden keine Anwendung. Im Plural wird “NFAs” verwendet, auch wenn “NFAen” richtiger werden.
1.2 Motivation für die Spezifizierung von nicht-funktionalen Anforderungen
Dörr /Dörr/ beschreibt, warum es sinnvoll und notwendig ist, sich mit der Spezifikation von nicht-funktionalen Anforderungen zu beschäftigen. Er nennt dabei drei Hauptmotivatoren (Abbildung 1.1):
- Gut begründete Architekturentscheidungen
- Wirksame Unterauftragsvergabe
- Frühzeitige Qualitätssicherung
Dagegen führen nicht-spezifizierte / fehlende NFAs zu:
- Unzureichender Produktqualität
- Hohen Nachbearbeitungskosten
- Höhere Time-to-Marekt (TTM)
Abbildung 1.1: → Motivation für die Spezifizierung von NFAs (nach Dörr /Dörr11/)
1.3 Erfassung und Darstellung von nicht-funktionalen Anforderungen
Das Erfassen der nicht-funktionalen Anforderungen geschieht in der Regel durch Abgleich mit Listen. So kann beispielsweise die ISO 25010 dafür herangezogen werden, die zur Produktqualität folgende acht Kategorien benennt:
- Funktionale Eignung (englisch: Functional Suitability)
- → Effizienz (Performance Efficiency)
- Kompatibilität (Compatibility)
- Benutzbarkeit (→ Usability)
- Zuverlässigkeit (Reliability)
- Sicherheit (→ Security)
- Wartbarkeit (Maintainability)
- Übertragbarkeit (Portability)
Die ersten sechs Kategorien werden auch als äußere, die letzten beiden als innere Qualitätseigenschaften bezeichnet.
1.4 Der Zusammenhang von funktionalen und nicht-funktionalen Anforderungen
Eine funktionale Anforderung kann durch nicht-funktionale Anforderungen eingeschränkt werden (Abbildung 1.2).
Abbildung 1.2: Funktionale und nicht-funktionale Anforderungen (nach /Hruschka19/)
Das IIBA schreibt dazu /BBG17‑d/:
“Nicht-funktionale Anforderungen verdeutlichen Restriktionen, die für bestimmte funktionale Anforderungen berücksichtigt werden müssen.”
Schienmann /Schienmann01/ zeigt den Zusammenhang von Anwendungsfällen, funktionalen und nicht-funktionalen Anforderungen (Abbildung 1.3).
Abbildung 1.3: Anwendungungsfälle, funktionale und nicht-funktionale Anforderungen (nach /Schienmann01/)
1.5 Operationalisierung von nicht-funktionalen Anforderungen
Nicht-funktionale Anforderungen sollten konkretisiert werden, sodass kein Interpretationsspielraum entsteht. So würde beispielsweise aus der nicht-funktionalen Anforderung “die Temperatur darf die Maximalgrenze nicht überschreiten” die operationalisierte Anforderung “die Temperatur darf an allen Komponenten zu keinem → Zeitpunkt 80 °C überschreiten”.
1.6 Wiederverwendung von nicht-funktionalen Anforderungen
Funktionale Anforderungen werden in der Regel systemspezifisch ermittelt. Nicht-funktionale Anforderungen hingegen können häufig “wiederverwendet” werden, da sie systemübergreifende Gültigkeit besitzen.
2. Das Ermitteln von nicht-funktionalen Anforderungen
2.1 Quellen für nicht-funktionale Anforderungen
Nicht-funktionale Anforderungen können aus verschiedenen Quellen kommen. Hier sind zu nennen:
- → Stakeholder
- Entwickler
- Marktbedürfnisse
- Organisationsinterne Vorgaben
- Regulatorische Vorgaben
2.2 Zeitpunkt der Ermittlung
Generell sollten nicht-funktionale Anforderungen möglichst früh bestimmt werden, da sie häufig die System-/Software-Architektur beeinflussen.
2.3 Vorgehen bei der Ermittlung
Winteroll /Winteroll21/ schlägt vor, einen aus dem Qualitätsmodell der ISO 25010 abgeleiteten Qualitätsbaum zur Ermittlung und Operationalisierung der NFAs zu verwenden. Dabei werden die Merkmale der ISO 25010 mit den Kategorien benannt. Zu den Kategorien werden dann einzelne Fragen gestellt und mit entsprechenden Antworten versehen (Abbildung 2.1).
Abbildung 2.1: Das Ermitteln von nicht-funktionalen Anforderungen mit dem Qualitätsbaum: Schema
In Abbildung 2.2 ist ein Qualitätsbaum zu einem System dargestellt.
Abbildung 2.2: Das Ermitteln von nicht-funktionalen Anforderungen mit dem Qualitätsbaum
Der Qualitätsbaum kann ausgebaut werden, indem für jede Unterkategorie entsprechende Fragen formuliert werden, die dann durch den Produktmanager / System-Verantwortlichen beantwortet werden können.
3. Weitere Aspekte zu den NFAs
3.1 Normen zu den NFAs
Als Normen zu den nicht-funktionalen Anforderungen können gesehen werden:
- DIN 66272 — “Informationstechnik — Bewerten von Softwareprodukten — Qualitätsmerkmale und Leitfaden zu ihrer Verwendung”; diese → Norm weist große Ähnlichkeit mit der ISO 9126 auf und wurde 2006 zurückgezogen
- ISO 9126 — “→ Software engineering — Product quality”; diese Norm wurde 2011 zurückgezogen und durch die ISO 25010 ersetzt
- ISO 25010:2023 — “Systems and software engineering — Systems and software Quality Requirements and Evaluation (SQuaRE) — Product quality model”
Auch die inzwischen veralten Normen IEEE 830 und IEEE 1362 bieten Vorgaben für die Erfassung von nicht-funktionalen Anforderungen.
3.2 Vorlagen zur Erfassung von NFAs
Es gibt eine Reihe von → Vorlagen zur Erfassung von nicht-funktionalen Anforderungen. Diese sind häufig in Form von → Checklisten organisiert. Ebenso können Gliederungen aus Normen und Standards verwendet werden. Hierzu kann beispielsweise das Volere-Template genutzt werden, welches die nicht-funktionalen Anforderungen benennt.
3.3 Satzschablonen für NFAs
Bei den Sophisten finden sich spezifische → Satzschablonen, mit denen nicht-funktionale Anforderungen erfasst werden können /#Sophist-MASTeR-Broschüre-24/.
Abbildung 3.1: Die → Satzschablone zur Erfassung von nicht-funktionalen Anforderungen (nach /#Sophist-MASTeR-Broschüre-24/)
Beispiele sind:
- Das Dateiformat der Präsentationen muss pdf in der Version 1.5 bis 2.0 sein
- Die Antwortzeit des Systems muss keiner als 1,5 Sekunden sein
3.4 User Stories und NFAs
Grundsätzlich werden in → User Stories funktionale Aspekte festgehalten. Sollen nicht-funktionale Aspekte berücksichtigt werden, so gibt es folgende Möglichkeiten:
- Erstellen von “nicht-funktionalen” User Stories, die in einem technischen Sprint bearbeitet werden
- Rein technische Sprints oder Design-/Architektursprints
3.5 Das Testen von nicht-funktionalen Anforderungen
Nicht-funktionale Tests überprüfen die nicht-funktionalen Anforderungen, wie z.B. die Sicherheit, die Benutzbarkeit oder die Zuverlässigkeit eines Systems. Dabei steht nicht die Funktion der Software (Was tut die Software?) im Vordergrund, sondern ihre Funktionsweise (Wie arbeitet die Software?).
Es werden beim → Testen der nicht-funktionalen Anforderungen typischerweise Grenzwerte benannt, die dann getestet werden.
Typische Szenarien sind dann:
- Reaktionszeiten: Es werden die maximal zulässigen Antwortzeiten eines Systems benannt
- Hochfahrzeiten: Es werden die Zeiten benannt, in denen ein System hochfahren muss
Typischerweise werden die Tests für nicht-funktionale Anforderungen automatisiert durchgeführt.
4. Zur Verwendung des Begriffs nicht-funktionale Anforderungen
Die Verwendung des Begriffs “nicht-funktionale Anforderungen” hat noch zu Beginn der 2000er Jahre zu regen Diskussionen in der deutschsprachigen Fach-Community geführt.
4.1 “Qualitätsanforderungen und Randbedingungen” statt “nicht-funktionale Anforderungen”
Nach → IREB sollte auf der Begriff “nicht-funktionale Anforderungen” nicht mehr verwendet und stattdessen “Qualitätsanforderungen und Randbedingungen” genutzt werden /#IREB-CPRE-FL-Handbuch-24/. Hruschka schreibt dazu /Hruschka23/:
“Eine Bitte: Streichen Sie das Wort “nichtfunktionale Anforderungen” aus Ihrem Sprachschatz. Verwenden Sie stattdessen die viel aussagekräftigeren Begriffe “Qualitätsanforderungen” und “Randbedingungen”.”
In Abbildung 4.1 ist eine mögliche Einteilung der Begriffe funktionale Anforderung, Qualitätsanforderung und → Randbedingung ohne Verwendung der funktionalen Anforderung dargestellt.
Abbildung 4.1: Arten von Anforderungen (nach /Hruschka23/)
4.2 Unterteilung bei Rupp
Rupp und die Sophisten /Rupp20, #Sophist-MASTeR-Broschüre-24/ unterteilen die nicht-funktionalen Anforderungen in folgenden sechs Kategorien:
- Qualitätsanforderungen
- Technologische Anforderungen
- Benutzungsoberfläche
- Sonstige Lieferbestandteile
- Durchzuführende Tätigkeiten
- Rechtlich-vertragliche Anforderungen
Abbildung 4.2: Unterteilung der nicht-funktionalen Anforderungen (nach /Rupp20/ und /#Sophist-MASTeR-Broschüre-24/)
5. Häufig gestellte Fragen und Antworten (FAQ) zu den nicht-funktionalen Anforderungen
Einige Fragen zu den nicht-funktionalen Anforderungen werden häufig gestellt – diese werden hier wiedergegeben.
- F: Muss man nicht-funktionale Anforderungen separat betrachten?
A: Dies ist durchaus ratsam, insbesondere da die nicht-funktionalen Anforderungen die Systemarchitektur beeinflussen und daher sehr frühzeitig bekannt sein müssen. - F: Kann in der Praxis auf die Betrachtung und Behandlung von nicht-funktionalen Anforderungen verzichtet werden?
A: Nein, in der Regel nicht. - F: Gibt es Übersichten zur Ermittlung und Erfassung von nicht-funktionalen Anforderungen?
A: Ja. Es gibt einige, meist listenartige Übersichten, in denen typische nicht-funktionale Anforderungen benannt werden. In diesem Beitrag wurde dazu der Qualitätsbaum auf Basis der ISO 25010 vorgestellt.
A. Präsentationen, Literatur und Weblinks
A.1 Meine öffentliche Präsentationen mit Bezug zu den NFAs
Inhalt | Typ |
---|---|
Requirements Engineering (und Business Analysis) – Eine Einführung (RE-Basispräsentation) |
A.2 Literatur
- /BAPG15/ Project Management Institute: → Business Analysis For Practitioners: A Practice Guide, Project Management Institute, Philadelphia, Pennsylvania 2015, ISBN 978–1‑62825–069‑5
- /BBG15/ IIBA: A Guide to the Business Analysis Body of Knowledge (BABOK Guide), International Institute of Business Analysis, Marietta, Georgia 3rd Edition 2015, ISBN 978–1‑927584–02‑6
- /BBG17‑d/ IIBA: BABOK v3: Leitfaden zur Business-Analyse BABOK Guide 3.0, Dr. Götz Schmidt, Wettenberg 2017, ISBN 978–3‑945997–03‑1
- /Dörr11/ Jörg Dörr: Elicitation of a Complete Set of Non-Functional Requirements, Fraunhofer Verlag, Stuttgart 2011, ISBN 978–3‑8396–0261‑4
- /Ebert22/ Christof Ebert: Systematisches Requirements Engineering. Anforderungen ermitteln, dokumentieren, analysieren und verwalten, dpunkt, Heidelberg 7. Auflage 2022, ISBN 978–3‑86490–919‑1
- /Hruschka19/ Peter Hruschka: → Business Analysis und Requirements Engineering: Prozesse und Produkte nachhaltig verbessern, Hanser, München 2. Auflage 2019, ISBN 978–3‑446–45589‑4
- /Hruschka23/ Peter Hruschka: Business Analysis und Requirements Engineering. Prozesse und Produkte nachhaltig verbessern, Hanser, München 3. Auflage 2023, ISBN 978–3‑446–47692‑9
- /PMG-BA17/ Project Management Institute: The → PMI Guide to Business Analysis, Project Management Institute, Philadelphia, Pennsylvania 2017, ISBN 978–1‑62825–198‑2
- /Rupp20/ Chris Rupp: Requirements-Engineering und ‑Management. Das Handbuch für Anforderungen in jeder Situation, Hanser, München 7. Auflage 2020, ISBN 978–3‑446–45587‑0
- /Schienmann01/ Bruno Schienmann: → Anforderungsmanagement. Prozesse – Techniken – Werkzeuge, Addison-Wesley, München 2001, ISBN 978–3‑8273–1787‑2
- /Wiegers13/ Karl E. Wiegers, Joy Beatty: Software Requirements, Microsoft Press, Redmond, Washington 3rd Edition 2013, ISBN 978–0‑7356–7966‑5
- /Wiegers23/ Karl Wiegers, Candase Hokanson: Software Requirements Essentials. Core Practices for Successful Business Analysis, Addison-Wesley Professional, Boston, Massachusetts 2023, ISBN 978–0‑13–819028‑6
- /Winteroll21/ Marcus Winteroll: Requirements Engineering für Dummies, Wiley-VCH, Weinheim 2021, ISBN 978–3‑527–71635‑7
A.3 Weblinks
- /*Dörr11/ Jörg Dörr: Elicitation of a Complete Set of Non-Functional Requirements, Website zum Buch mit Open Access zur kompletten Ausgabe (englisch, pdf-Datei, 219 Seiten)
- /IREB/ International Requirements Board (IREB), deutsch und englisch
- /IREB-24/, /#IREB-24/, /#IREB-CPRE-FL-24/ IREB – International Requirements Engineering Board: Lehrplan / Syllabus zum CPRE-FL, Version 3.2.0 vom Februar 2024 (deutsch, pdf-Datei, 51 Seiten)
- /#IREB-CPRE-FL-Handbuch-24/ IREB – International Requirements Engineering Board: Handbuch für das CPRE Foundation Level nach dem IREB-Standard, Version 1.2.0 vom Mai 2024 (deutsch, pdf-Datei, 174 Seiten)
- /ISO-25010/ ISO/IEC 25010:2023: “Systems and software engineering – Systems and software Quality Requirements and Evaluation (SQuaRE) – Product quality model”: Übersichtsseite
- /#Sophist-MASTeR-Broschüre-24/ Fa. Sophist: Satzschablonen für alle Fälle, 6. Auflage 2024, (deutsch, pdf-Datei, 52 Seiten)
- /#Wiki-Anforderung/ Anforderung (Informatik) in der deutschen Wikipedia
- /#Wiki-DIN-66272/ DIN 66272 in der deutschen Wikipedia
- /#Wiki-ISO-9126/ ISO/IEC 9126 in der deutschen Wikipedia
Legende zu den Weblinks
/ / Verweis auf eine Website (allgemein)
/*/ Verweis auf eine Website, die als Ergänzung zu einem Buch dient
/#/ Verweis auf ein einzelnes Thema auf einer Website
/#V/ Verweis auf ein Video auf einer Website
Letzte Aktualisierung: 20.09.2024 © Peterjohann Consulting, 2005–2024