21 Quality Attributes (non-functional requirements)
Nicht-funktionale Anforderungen stellen die Qualitätsmerkmale eines Produkts dar. Diese sind bei fast allen Projekten weitesgehend identisch, können allerdings unterschiedliche Ausprägungen haben. Im Folgenden sind einige der gängigsten nicht-funktionalen Anforderungen aufgelistet.
Performanz
Mit Performanz beschreibt eine möglichst niedrige Wartezeit zwischen einem auslösenden Ereignis (bspw. das Klicken einer Schaltfläche) und der Visualisierung des Ergebnisses (bspw. Darstellung einer neuen Seite). Sollten die Nutzer einer Software sich über zu lange Wartezeiten oder ein zu langsames System beschweren, so sollte versucht werden diesem mit technischen Mitteln oder durch Änderung der Software entgegenzuwirken.
Skalierbarkeit
Wenn beispielsweise eine App auf den Markt kommt, so wird sie zu Beginn voraussichtlich wenig Nutzer haben. Wenn die Zahl der Nutzer dann steigt muss es einfach sein, das System zu erweitern, sodass es den aufkommenden Datenverkehr weiterhin bewältigen kann.
Verfügbarkeit
Die Verfügbarkeit gibt an zu wie viel Prozent der Laufzeit eine Softwarelösung nutzbar ist. Um eine hohe Verfügbarkeit zu erreichen können beispielsweise redundante Systeme eingesetzt werden, welche sich beispielsweise bei einem Stromausfall ersetzen können. Eine Verfügbarkeit von 100% ist hierbei unmöglich. Meist sind es 99% mit einer variierenden Zahl von neunen als Nachkommastelle.
Sicherheit
Sicherheit von Authentifizierung bis hin zum Datenschutz wird unter diesem Begriff zusammengefasst. Um sich vor den gängigen Sicherheitslücken schützen zu können kann man sich bei dem “Open Web Application Security Project (OWASP)” erkundigen.
Desaster Wiederherstellung
Hierbei geht es um die Möglichkeit Daten wiederherstellen zu können, falls ein großes Unglück wie beispielsweise ein Brand eingetreten ist. Auch hierbei ist es wie bei der Verfügbarkeit möglich, durch redundante Datenhaltungssysteme einen gewissen Schutz zu bieten.
Barrierefreiheit
Man sollte das gesamte Spektrum der möglichen Nutzer erreichen können. Somit muss auch die Bedienbarkeit der Software von Personen mit Einschränkungen gegeben sein. Hierbei können die “W3C accessibility standards” einen guten Einstieg liefern.
Wartbarkeit
Wartbarkeit bedeutet die Lesbarkeit und Weiterverwendung des geschriebenen Codes. Diese ist schwierig zu messen und hängt stark von Prinzipien wie Code-Konventionen ab.
Rechtliche Einschränkungen
Man sollte sich darüber im Klaren sein, an welchen Orten eine Anwendung eingesetzt werden kann. Handelt es sich beispielsweise um eine global abrufbare App, so muss sie auch den Gesetzen der Länder entsprechen.
Internationalisierung
Softwarelösungen sollten immer mindestens die englische Sprache anbieten, um auf der ganzen Welt nutzbar zu sein. Bei einer beauftragen Softwarelösung für ein kleines Unternehmen ist dies meist weniger sinnvoll.