Anforderungsmanagement
Das Verfahren des Anforderungsmanagements ist ein systematischer Ansatz für das Ermitteln, Dokumentieren, Organisieren und Verfolgen von sich ändernden Anforderungen an ein System.
Hauptbeschreibung

Was ist Anforderungsmanagement?

Anforderungsmanagement ist ein systematischer Ansatz für das Ermitteln, Dokumentieren, Organisieren und Verfolgen von sich ändernden Anforderungen an ein System.

Eine Anforderung ist in RUP als "eine Bedingung oder Fähigkeit, die das System erfüllen bzw. erbringen muss" definiert.

In RUP wird das Anforderungsmanagement formal als systematischer Ansatz für folgende Aufgaben definiert:

  • Sondieren, Organisieren und Dokumentieren der Anforderungen an das System.
  • Erreichen und Aufrechterhalten einer Einigung zwischen Kunden und Projektteam bezüglich der sich ändernden Anforderungen an das System.

Zu den Schlüsseln für ein effektives Anforderungsmanagement gehören eine klare Beschreibung der Anforderungen, der entsprechenden Attribute und der Rückverfolgbarkeit zu anderen Anforderungen und anderen Projektartefakten.

Das Zusammenstellen von Anforderungen hört sich vielleicht wie eine überschaubare Aufgabe an. In Wirklichkeit geraten viele Projekte jedoch aus den folgenden Gründen in Schwierigkeiten:

  • Anforderungen sind nicht immer offensichtlich und können von unterschiedlichen Quellen stammen.
  • Anforderungen lassen sich nicht immer einfach und klar in Worten ausdrücken.
  • Es gibt viele unterschiedliche Arten von Anforderungen auf unterschiedlichen Detailstufen.
  • Die Anzahl der Anforderungen nimmt so stark zu, dass eine Verwaltung nicht mehr möglich ist, wenn die Anforderungen nicht kontrolliert werden.
  • Anforderungen stehen miteinander und mit anderen Liefergegenständen im Software-Engineering-Prozess in Zusammenhang.
  • Anforderungen haben eindeutige Merkmale oder Merkmalwerte. Beispielsweise haben sie nicht zwangsläufig dieselbe Bedeutung, noch können sie alle problemlos erfüllt werden.
  • Es gibt viele interessierte Parteien, d. h. die Anforderungen müssen durch funktionsübergreifende Personengruppen verwaltet werden.
  • Änderungen ändern sich.

Egal wie sorgfältig Sie Ihre Anforderungen definiert haben, es gibt immer Dinge, die sich ändern. Was die Verwaltung von Anforderungen so kompliziert macht, ist nicht allein die Tatsache, dass eine geänderte Anforderung bedeutet, dass Zeit für die Implementierung eines bestimmten neuen Features aufgebracht werden muss, sondern auch, dass die Änderung einer Anforderung Auswirkungen auf andere Anforderungen haben kann. Zur Verwaltung von Änderungen gehören Aktivitäten wie das Erstellen einer Referenzversion, das Bestimmen der Abhängigkeiten, die unbedingt verfolgt werden müssen, das Einrichten der Rückverfolgbarkeit zwischen zusammengehörigen Elementen und die Implementierung der Änderungssteuerung.

Inwieweit wird die Entwicklung von Anwendungsfällen gesteuert?

Die empfohlene Methode für die Organisation Ihrer funktionalen Anforderungen ist die Verwendung von Anwendungsfällen. Anstatt eine Liste mit Anforderungspunkten zu erstellen, organisieren Sie die Anforderungen so, dass Sie eine Geschichte darüber erzählen, wie eine Person das System verwenden könnte. Diese Methode unterstützt Vollständigkeit und Konsistenz und sorgt außerdem für ein besseres Verständnis für die Bedeutung einer Anforderung aus der Perspektive des Benutzers.

Anhand eines traditionellen objektorientierten Systemmodells ist häufig schwer zu sagen, wie ein System das tut, was es tun soll. Diese Schwierigkeit ergibt sich aus dem Fehlen eines "roten Fadens" durch das System, wenn es bestimmte Aufgaben ausführt. In Rational Unified Process (RUP) stellen die Anwendungsfälle diesen roten Faden dar, weil sie das von einem System zu erbringende Verhalten definieren. Anwendungsfälle gehören nicht zur traditionellen Objektorientierung, aber ihre Bedeutung zeichnet sich immer mehr ab. Diese These wird durch die Tatsache, dass Anwendungsfälle Teil der Unified Modeling Language sind, gestärkt.

RUP wendet einen "anwendungsfallgesteuerten Ansatz" an, d. h. die für ein System definierten Anwendungsfälle bilden die Basis für den gesamten Entwicklungsprozess.

Anwendungsfälle spielen in mehreren Disziplinen eine Rolle.

  • Das Konzept von Anwendungsfällen kann verwendet werden, um Geschäftsprozesse darzustellen. Diese Anwendungsfallvariante wird "Geschäftsanwendungsfall" genannt und kommt in der Disziplin "Geschäftsmodellierung" zur Anwendung.
  • Anwendungsfälle als Softwareanforderungen werden in der Disziplin "Anforderungen" beschrieben. Anwendungsfälle sind ein wichtiges grundlegendes Konzept, das von Kunden, Entwicklern und Testern des Systems gleichermaßen angenommen werden muss.
  • In der Disziplin "Projektmanagement" werden Anwendungsfälle als Basis für die Planung der iterativen Entwicklung verwendet.
  • Anwendungsfälle werden in einem Designmodell in der Disziplin "Analyse und Design" realisiert. Anwendungsfallrealisierungen beschreiben, wie der Anwendungsfall vom Design durch interagierende Objekte im Designmodell unterstützt wird.
  • Anwendungsfälle werden letztendlich zu implementierten und testfähigen Szenarios und bilden somit einen wichtigen Schwerpunkt in den Disziplinen "Implementierung" und "Test". Von Anwendungsfällen werden Testfälle und Testscripts abgeleitet. Die Funktionalität des Systems wird durch Ausführung der Testszenarios geprüft, die die einzelnen Anwendungsfälle ausführen.
  • In der Disziplin "Deployment" bilden Anwendungsfälle die Grundlage für das, was in den Benutzerhandbüchern beschrieben wird. Anwendungsfälle können auch verwendet werden, um Bestelleinheiten des Produkts zu definieren. Beispielsweise kann ein Kunde ein System erhalten, das auf der Basis einer bestimmten Kombination von Anwendungsfällen konfiguriert wird.