Schnellere Systemanalyse

Nichtfunktionale Anforderungen strukturiert erfassen und wieder verwenden

Bei der Systementwicklung in Softwareprojekten wird die Formulierung nichtfunktionaler Anforderungen (NFA) oft vernachlässigt. In der Folge kann es geschehen, dass das Endprodukt zwar alle funktionalen Anforderungen erfüllt, aber umständlich zu bedienen ist oder nicht in die bestehende Systemarchitektur integriert werden kann. Es ist deshalb wichtig, die NFA solide zu erstellen. Das ist zwar aufwändig, doch NFA von hoher Qualität können gesammelt und in Folgeprojekten erneut verwendet werden. Das spart Zeit und Kosten. Chris Rupp und Christof Geißel stellen ein Verfahren vor, mit dem NFA entsprechend angepasst für andere Systementwicklungen wieder verwendet werden können.
Schnellere Systemanalyse

Nichtfunktionale Anforderungen strukturiert erfassen und wieder verwenden

Bei der Systementwicklung in Softwareprojekten wird die Formulierung nichtfunktionaler Anforderungen (NFA) oft vernachlässigt. In der Folge kann es geschehen, dass das Endprodukt zwar alle funktionalen Anforderungen erfüllt, aber umständlich zu bedienen ist oder nicht in die bestehende Systemarchitektur integriert werden kann. Es ist deshalb wichtig, die NFA solide zu erstellen. Das ist zwar aufwändig, doch NFA von hoher Qualität können gesammelt und in Folgeprojekten erneut verwendet werden. Das spart Zeit und Kosten. Chris Rupp und Christof Geißel stellen ein Verfahren vor, mit dem NFA entsprechend angepasst für andere Systementwicklungen wieder verwendet werden können.

Nichtfunktionale Anforderungen an Systeme erscheinen oft als eine Nebensache. Fehlen sie jedoch, kann das System in vielen Fällen nicht in Betrieb gehen und ist somit unbrauchbar - selbst wenn es die geforderten Funktionalitäten zu 100% erfüllt. Es ist deshalb wichtig, die nichtfunktionalen Anforderungen sauber aufzusetzen. Dieser Aufwand lohnt sich, denn danach lassen sie sich (im Gegensatz zu funktionalen Anforderungen) für andere Projekte wieder verwenden, so dass Zeit und Kosten eingespart werden.

Im Folgenden erfahren Sie, wie Sie nichtfunktionale Anforderungen erstellen und ohne großen Aufwand an andere Systeme anpassen können. Basis für die Ausführungen sind die Erfahrungen, die wir in diversen Großprojekten gesammelt haben.

Unterscheidung: funktionale und nichtfunktionale Anforderungen

Funktionale Anforderungen an ein System enthalten die Beschreibung dessen, was das System können und leisten soll. Ein Reisewecker beispielsweise soll die Uhrzeit anzeigen und zur eingestellten Weckzeit klingeln. Alle anderen Anforderungen sind nach unserer Definition nichtfunktional.

Nichtfunktionale Anforderungen (NFA) beschreiben beispielsweise, wie oder in welcher Qualität die Funktionalitäten in einem System umgesetzt werden (z.B. Lautstärke des Weckerklingelns), aber auch, was rund um das System gefordert ist (z.B. Lieferung einer Anleitung). Sie definieren Randbedingungen, die den Entwicklern und Software-Zulieferern bei der Realisierung der funktionalen Anforderungen Freiheitsgrade entziehen. Für den Reisewecker können z.B. eine bestimmte Stoßfestigkeit oder ein Höchstgewicht gefordert sein. Beide Randbedingungen haben Auswirkungen auf die Implementierung, z.B. auf die Materialauswahl.

Die Bedeutung nichtfunktionaler Anforderungen im Projekt

Viele Entscheider unterschätzen die Bedeutung nichtfunktionaler Anforderungen. Wurden NFA nicht erstellt oder nicht umgesetzt, lässt sich das z.B. daran erkennen, dass

  • das System zu umständlich zu bedienen ist,
  • seine Performance zu schwach ist,
  • es nicht in die bestehende Systemumgebung integriert werden kann, oder
  • seine Architektur notwendige Änderungen am System nicht zulässt.

Die NFA spielen in Projekten also eine wichtige Rolle. Sie entscheiden darüber, ob der Kunde mit dem Produkt zufrieden oder unzufrieden ist. Das gilt insbesondere für die NFA an die Qualität und an die Benutzerschnittstelle. Ein Reisewecker mit zehn verschiedenen Wecktönen und stufenlos einstellbarer Lautstärke ist nutzlos, wenn man wegen der kryptischen Bedienelemente nicht weiß, wo die Weckzeit eingestellt wird. Der große Erfolg des Apple iPod zeigt, dass bei vielen Systemen nicht die Menge an Funktionalitäten für den Benutzer entscheidend ist, sondern die intuitive Bedienbarkeit.

Egal welche NFA das System erfüllen soll - der Kunde muss sie zunächst definieren. Wenn er also nicht nur ein Softwareprodukt benötigt, sondern auch weitere Lieferbestandteile wie eine Benutzerdokumentation, Schulungen oder ein Wartungshandbuch, oder wenn er möchte, dass Aspekte des Entwicklungsprozesses von vornherein festgezurrt werden, dann muss er diese Anforderungen in der Systemanalyse festlegen.

Die Systemanalyse ist der erste Schritt der Systementwicklung und entscheidet maßgeblich über den Erfolg oder Misserfolg eines Projekts. Dabei werden die funktionalen und die nichtfunktionalen Anforderungen der zukünftigen Benutzer an das System erhoben und dokumentiert. Mit dem Use Case-Ansatz nach Cockburn gibt es schon seit langem eine bewährte und effiziente Methode, um die funktionalen Anforderungen zu ermitteln. Die nichtfunktionalen Anforderungen werden dagegen oft "aus dem Bauch heraus" erhoben. Das ist nicht nur sehr aufwändig, sondern kann auch dazu führen, dass der Anforderungskatalog unvollständig und unpräzise formuliert wird. In der Folge gestaltet sich das Testen der Anforderungen schwierig.

Dabei würden NFA sich, im Gegensatz zu den funktionalen Anforderungen, sehr leicht wieder verwenden lassen. Einmal sauber definierte NFA können ohne großen Aufwand an ein neues System angepasst werden. Dieser Artikel berichtet aus der Projekterfahrung, wie ein Wiederverwendungsprozess für NFA aussehen kann.

Warum sind nichtfunktionale Anforderungen für ihr Projekt so wichtig?

Viele Entscheider unterschätzen die Bedeutung von NFA. Aber gerade die nichtfunktionalen Anforderungen an die Qualität und an die Benutzerschnittstelle machen den Unterschied zwischen zufriedenen und unzufriedenen Kunden aus. Der Grundstein dafür wird bereits in der Systemanalyse durch Anforderungen an die Usability, die Performanz und die Benutzerschnittstelle gelegt.

Bewertungen und Kommentare

(nur angemeldete Benutzer)

Diese Funktion steht nur eingeloggten Nutzern zur Verfügung. Jetzt einloggen
Gesamt
Bewertungen 2
Alle anzeigen