Seitdem Anforderungen an Software erhoben und spezifiziert werden, versucht man, funktionale von nicht-funktionalen Anforderungen zu unterscheiden. Lehrbücher wurden auf der Suche nach einer klaren Antwort auf die Frage nach diesem Unterschied gefüllt. Für die systematische Erfassung von Anforderungen ist die Unterscheidung von Kategorien, die nach den unterschiedlichen Zwecken der Anforderungen fragt, natürlich sinnvoll, aber fraglich ist, ob so eine viel-diskutierte und unpräzise Trennung wie die in funktionale und nicht-funktionale Anforderungen wirklich zielführend ist.

In den letzten Jahren hat sich in der Literatur die Überzeugung durchgesetzt, dass nicht-funktionale Anforderungen

  1. entscheidend für die Benutzerzufriedenheit sind,
  2. durch Architektur-Entscheidungen umgesetzt werden.

Das gibt uns vielleicht einen Hinweis darauf, was nicht-funktionale Anforderungen wirklich sind. Dazu ein Beispiel aus der Welt, aus der der begriff „Architektur“ eigentlich stammt:

Ein Haus wird im Erdgeschoss und im Keller lange Zeit als Möbelhaus mit Lager genutzt. Nach einem kleinen Umbau dienen die gleichen Flächen als Kino mit Gastronomie. Die Architektur des Hauses hat es möglich gemacht. Welche Anforderungen wurden durch die Architektur bereits erfüllt? Es sind Basis-Anforderungen: Man braucht ausreichend Platz für große Gegenstände und für eine größere Anzahl von Personen, die sich gleichzeitig auf einer Fläche bewegen können (Verkaufsausstellung, Veranstaltung, Vortrag, Vorführung – all das sind Nutzungen dieser Art).

Analog kann man für eine Software, z.B. für ein Data Warehouse festhalten: Sie soll den schnellen Zugriff auf große Daten-Mengen für einen geschlossenen Benutzerkreis ermöglichen, Berechnungen, Zusammenfassungen, müssen sehr schnell erfolgen. Das kann man als Nicht-Funktionale Anforderungen bezeichnen, besser wäre aber, es als (abstrakte) Basis-Anforderungen zu bezeichnen. In einem objektorientierten Anforderungsmodell sind das die Basisklassen, von denen die weiteren Anforderungen (Welche Daten sollen genau für welche Benutzer auf welche Weise und wie oft) als abgeleitete Klassen aufsetzen.

Die Anforderungsanalyse beginnt dann mit diesen Basis-Anforderungen und ordnet diesen die speziellen Anforderungen zu. Und so kann dann auch der Architektur-Entwurf der Anwendung erfolgen. Wie im Bauwesen: Erst wird das Grundgerüst entworfen, welches die flexible Nutzbarkeit für die Basis-Anforderungen erfüllt, dann werden die speziellen Nutzungsformen berücksichtigt. Auf diese Weise entstehen flexible, langlebige Architekturen.

Nicht-funktionale Anforderungen oder Basis-Anforderungen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Wir verwenden Cookies, um Funktionen für soziale Medien anbieten zu können und die Zugriffe auf unsere Website zu analysieren. Außerdem geben wir Informationen zu Ihrer Nutzung unserer Website an soziale Medien und für Analysen weiter. Durch die Benutzung unserer Webseite stimmen Sie dem zu. Weitere Informationen

Wir verwenden Plugins, mit denen Sie unsere Inhalte in sozialen Medien wie Facebook, Twitter und Google+ teilen können. Bereits durch den Aufruf von Seiten werden Informationen an diese sozialen Medien weitergegeben. Außerdem verwenden wir Google Analytics, um die Nutzung unserer Seite analysieren zu können.

Schließen