Wenn die Lösung zum Problem wird!

„Warum die Trennung von Problem und Lösung so wichtig für die Formulierung von Anforderungen ist“

13. Februar 2013Dr. Kim Lauenroth

Requirements Engineering beschäftigt sich mit Anforderungen. Aber was ist das genau, eine Anforderung? Im Folgenden stelle ich meine Meinung zu diesem Begriff vor und beschreibe eine – für mich – im Weiteren erstaunliche Struktur aus Problemen, Anforderungen und Lösungen.

Eine gängige Definition des Begriffs Anforderung1 besagt:

„Eine Anforderung ist eine Bedingung oder Fähigkeit, die von einem Benutzer zur Lösung eines Problems oder zur Erreichung eines Ziels benötigt wird.“

Diese Definition mag auf den ersten Blick sehr einleuchtend und harmlos klingen, allerdings enthält sie einige fundamentale Festlegungen:

1) Bedingungen und Fähigkeiten sind Aussagen, die sich auf einen (nicht notwendigerweise materiellen) Gegenstand (die Lösung) beziehen.

2) Eine Anforderung wird benötigt, um ein Problem zu lösen (oder ein Ziel zu erreichen): Damit geht das Problem (oder das Ziel2) der Formulierung einer Anforderung voraus.

3) Zur Formulierung einer Anforderung sind drei Konzepte notwendig, das Problem, die Lösung (der Gegenstand dessen Eigenschaft beschrieben wird) und die Eigenschaft (die eigentliche Anforderung).

Aber halt mal! Wir brauchen eine Lösung, um eine Anforderung zu formulieren? Sollte es nicht eher umgekehrt sein: Wir entwickeln auf Basis der Anforderungen die Lösung? Selbstverständlich, aber wir müssen uns vor der Formulierung der Anforderung für eine Lösung entscheiden, da wir ja die Eigenschaften der Lösung in Form von Anforderungen beschreiben (siehe Festlegung 3).

Puh, das ist jetzt aber sehr theoretisch… vielleicht wäre jetzt ein prägnantes Beispiel ganz hilfreich, um das Durcheinander im Kopf etwas zu lichten.

Angenommen unser Problem besteht darin, den Fahrer eines PKWs vor zu geringem Luftdruck in seinen Reifen zu warnen. Die Lösung dieses Problems ist naheliegend. Ein Drucksensor, der die folgenden Anforderungen erfüllt:

1) Der Sensor soll den Druck im Bereich zwischen 0 und 5 Bar mit einer Genauigkeit von +/-x% messen.

2) Der Reifendruck soll alle y Sekunden gemessen werden.

3) Zu geringer Reifendruck liegt vor, wenn der gemessene Druck unter den Grenzwert z sinkt.

Schauen wir noch einmal genau auf die Anforderungen. Die Lösung (Druckmessung durch Drucksensor) findet sich tatsächlich in jeder Anforderung wieder. Anscheinend steht die Lösung wirklich in unmittelbarem Bezug zu den Anforderungen.

Jetzt probieren wir mal eine andere Lösung aus. Eine andere Lösung? Kann man denn den Druck überhaupt messen, ohne ihn direkt mit einem Sensor zu messen? Man kann!

Sinkt der Druck im Reifen, verkleinert sich der Durchmesser (wie ein Luftballon, dem die Luft ausgeht) und in der Folge erhöht sich die Drehzahl des Reifens im Vergleich zu den anderen Reifen am Fahrzeug. Genau diese Veränderung kann durch ESP-Sensorik3 gemessen werden.

Ersetzen wir also die Lösung Druckmessung durch Auswertung der Reifendrehzahl und formulieren erneut Anforderungen:

1) Das ESP-System soll kontinuierlich die Reifendrehzahl aller vier Räder überwachen.

2) Die Reifendrehzahl soll mit einer Genauigkeit von +/-x% gemessen werden.

3) Zu geringer Reifendruck liegt vor, wenn über einen Zeitraum von y Sekunden ein Abweichen in der Drehzahl eines Reifens zu den anderen Reifen von z% vorliegt.

Auch hier findet sich das Lösungskonzept (Drehzahlmessung) in allen Anforderungen wieder. Nur Anforderung 3) macht auf Basis der Drehzahl eine Aussage darüber, wann zu geringer Reifendruck vorliegt. Damit hat die Wahl des Lösungskonzeptes maßgeblichen Einfluss auf die Formulierung von Anforderungen.

Zusammengefasst lassen sich für mich aus dieser kleinen Definitionsanalyse einige ganz handfeste Tipps für die tägliche Arbeit mit Anforderungen ableiten:

  •  Die Frage nach dem Problem steht an erster Stelle: Jeder Anforderung liegt ein Problem zu Grunde, das unabhängig von den Anforderungen und der Lösung diskutiert und definiert wird. In unserem Beispiel war dies die Warnung vor zu geringem Reifenluftdruck.
  • Ohne Problemverständnis kein Anforderungsverständnis: Das Problem muss ein expliziter Bestandteil des Anforderungsdokumentes sein. Ohne eine Problembeschreibung fehlt der Kontext und damit die Grundlage für das Verständnis der Anforderungen.
  • Lösungsentscheidung vor Anforderungsformulierung: Vor den Anforderungen muss die Lösung diskutiert und entschieden werden, denn die Lösung definiert den Bezugspunkt der Anforderungen. In unserem Beispiel war dies Druckmessung bzw. Drehzahlmessung.
  • Ohne Lösung kein Bezugspunkt für Anforderungen: Die Lösungsentscheidung muss expliziter Bestandteil des Anforderungsdokumentes sein, damit jede Anforderung mittelbaren oder unmittelbaren Bezug zur Lösung nehmen kann.

Das Wort Anforderung ist für mich ein Qualitätssiegel für die Güte einer Aussage. Für mich bedeutet dies, dass ich eine Aussage nur dann als Anforderung bezeichnen kann, wenn die Aussage im Kontext einer expliziten Problem- und Lösungsdefinition gemacht wurden.

Diese Interpretation des Wortes Anforderung mag auf den ersten Blick sehr strickt sein, ein lockerer Umgang mit dem Wort Anforderung birgt für mich ein großes Risiko: wird die Lösung implizit in den Anforderungen definiert, dann können in großen und komplexen Anforderungsdokumenten einander widersprechende Lösungen definiert werden, die vielleicht erst während der Realisierung erkannt werden. Und dann ist die Lösung wirklich ein Problem!

Dies war nun meine Meinung zum Begriff Anforderungen. Wie ist Ihre Meinung? Was bedeutet das Wort „Anforderungen“ für Sie? Ich bin gespannt auf Ihre Rückmeldungen.

Dr. Kim Lauenroth Dr. Kim Lauenroth ist Chief Requirements Engineer bei adesso und verfügt über mehr als 10 Jahre Erfahrung im Software und Requirements Engineering in verschiedensten Domänen. Er spricht regelmäßig zum Thema RE auf internationalen Tagungen und engagiert sich an Hochschulen und im IREB e.V. für die Aus- und Weiterbildung im Requirements Engineering.
Artikel bewerten:
1 Star2 Stars3 Stars4 Stars5 Stars
Loading...

Kommentare

Studentin 5. März 2013

Der Artikel hat mir sehr gefallen und ich finde ihn ebenfalls sehr hilfreich. Es wird verständlich das Herausarbeiten von Anforderungen beschrieben. In der Vorlesung wurde dies viel umständlicher erklärt, aber dank Ihnen habe ich es nun verstanden.
Danke!

Kommentar hinzufügen:

Ihr Kommentar: