Anforderungsmanagement (englisch Requirements Management (RE)) umfasst Methoden und Verfahren zur Ermittlung, Verwaltung, Überprüfung und Dokumentation von Anforderungen an ein Produkt oder an eine Dienstleistung. Es handelt sich um eine Managementdisziplin und einen Managementprozess, der verschiedene Aktivitäten umfasst. Er ist dem übergeordneten Inhalts- und Umfangsmanagement im Projektmanagement zugeordnet bzw. dort zu integrieren. Es findet zudem Verwendung in der Business-Analyse und ist Teil des Systems Engineering.
Der folgende Artikel enthält einzelne Begriffe und Merkmale der Softwaretechnik. Das Anforderungsmanagement ist jedoch eine branchenübergreifende Aktivität, die in einer Vielzahl von Industrien oder Wirtschaftszweigen Anwendung findet. Die Art und Weise der Produktherstellung (Vorgehen) sowie die geltenden Definitionen und Normen sind jeweils branchenspezifisch.
Anforderungsmanagement wird für die effektiven Entwicklung elektrischer, computerbasierter oder mechanischer Geräte, Maschinen, Anlagen, Konstruktionen, Gebäude und anderer Systeme oder Produkte verwendet. Es wird in vielen weiteren Bereichen und Branchen angewandt, darunter in der Automobil-, Elektro-, Halbleiter-, Rüstungs- und Luftfahrtindustrie oder Raumfahrt. Außerdem kommt es bei der Entwicklung von Software, Softwaresystemen, IT-Systemen oder Onlinediensten zum Einsatz, die aufgrund ihrer komplexen Softwaretechnik eine unterstützende Aktivität in Bezug auf die Verwaltung ihrer Funktionen und ihres Umfangs benötigen.
Das Requirements Engineering (RE) ist ein Teilbereich des Anforderungsmanagements und legt den Fokus auf die praktische Ausarbeitung von Anforderungen, d. h. der Ermittlung, Analyse (Systemanalyse) und Spezifikation von Anforderungen. Diese kommen in einer Vielzahl unterschiedlicher Fälle und auf verschiedenen Ebenen zum Vorschein. Am häufigsten sind wirtschaftliche und technische Anforderungen. Zu den ersteren zählen die Kundenwünsche und -anforderungen (Bedürfnisse, englisch needs), zu den letzteren zählen die Anforderungen, die zur Realisierung eines Produkts oder eines komplexen Systems notwendig sind. Dazu zählen beispielsweise Anforderungen an die Materialauswahl. Sie können durch Modellierungssprachen wie Unified Modeling Language (UML) digital ausgearbeitet werden.
Teilaktivitäten des Anforderungsmanagements sind die Anforderungserhebung und Anforderungsermittlung, sowie die Verwaltung (Management) des Lastenheft und Pflichtenheft. Bei dieser Aufgabe spielen die Verifikation und Validierung (V&V) von Anforderungen sowie deren Rückverfolgbarkeit eine überragende Rolle. Dabei ist es nicht die Hauptaufgabe des Anforderungsmanagers bzw. des Anforderungsingenieurs, diese Anforderungen zu überprüfen, sondern sie gemeinsam mit anderen Fakultäten so zu bearbeiten, dass sie im Rahmen von Tests, Experimenten oder Erprobungen verifiziert oder validiert werden können. Im Mittelpunkt steht dabei die korrekte Spezifikation der Anforderungen als zentrales Ziel. Der Anforderungsingenieur bzw. -manager ist somit ebenfalls als Vermittler zu verstehen, weshalb er entsprechende kommunikative Fähigkeiten benötigt.
Eine Vielzahl von Normen und Standards erfordert Arbeitsgegenstände aus dem Anforderungsmanagement und erhebt Qualitätsansprüche an diese. Vorgehensmodelle wie das agile Projektmanagement oder die agile Softwareentwicklung erfassen Anforderungen iterativ als Features oder Epics.
Das Anforderungsmanagement ist daher eine zentrale, wenn auch unterstützende Tätigkeit in der Entwicklung von Hardware (Elektrik, Elektronik oder Mechanik) und Software. Es findet in Modellen wie dem V-Modell Anwendung.
Das Ziel des Anforderungsmanagements ist es, ein gemeinsames Verständnis über ein zu entwickelndes System zwischen Auftragnehmer und Auftraggeber zu erreichen. Dieses gemeinsame Verständnis kann durch die Einführung und Umsetzung von Anforderungsmanagementmethoden (u. a. Scoping, Analyse, Spezifikation, Modellierung, Anforderungsreviews) erreicht werden. Durch den Einsatz dieser Methoden kann die Aktualität und Qualität der Anforderungsdokumentation gesteigert werden.
Qualitätskriterien einer Anforderungsdokumentation sind u. a. Verständlichkeit, Eindeutigkeit, Nachweisbarkeit (Rückverfolgbarkeit), Widerspruchsfreiheit, Vollständigkeit, Verifizierbar- und Testbarkeit. Zur halbautomatischen Prüfung einiger Qualitätskriterien kann, in Anlehnung an die in der Softwaretechnik genannten „Code-Smells“, in der Anforderungsdokumentation nach sogenannten „Requirements Smells“ gesucht werden, die potenzielle Probleme im Text aufdecken. Zugleich können einige der resultierenden Dokumente oder Arbeitsgegenstände des Anforderungsmanagements für die Erstellung von Testfällen oder als vertragliche Basis für die Umsetzung (siehe Lastenheft und Pflichtenheft, sowie Leistungsvereinbarung).
Das moderne Anforderungsmanagement entstand spätestens ab den 1950er Jahren parallel zum technischen Fortschritt. Das Aufkommen halbleiterbasierter Computer (damals noch Großrechner, siehe die Rechnertechnik) und später Personal Computer (PC) zur Konstruktion und Entwicklung stellten verschiedene Herausforderungen an die Ingenieurwissenschaften, sowohl im zivilen als auch im militärischen Kontext (Wehrtechnik). Die Grundlagen hierfür wurden durch die Entwicklung von Vorgehensmodellen geschaffen und seither stetig weiterentwickelt. Moderne Ansätze berücksichtigen neben einer hochintegrierten Auslegung und Umsetzung innerhalb der computerbasierten Entwicklung auch künstliche Intelligenz (KI) und andere Optimierungsverfahren für Inhalte und Abläufe. Das Anforderungsmanagement für nichtdeterministische oder probabilistische Systeme wie KI stellt eine eigene Herausforderung dar.
Das Anforderungsmanagement ist einer der unterstützenden Prozesse in der Produktentwicklung. Ein Beispiel hierfür ist die Softwareentwicklung für Softwaresysteme oder IT-Systeme. Eine Reihe von Normen oder Standards fordern den formalen Einsatz des Anforderungsmanagement. Dazu zählen die Normen rund um den Produktlebenszyklus (Softwarelebenszyklus), die ISO/IEC 12207 bzw. ISO/IEC 15288, sowie Normen aus der Qualitätssicherung und dem Verbesserungsmanagement (Prozessreifegradmodelle) wie ISO/IEC 15504 (SPICE) und das Capability Maturity Model Integration (CMMI)-Modell. Anforderungen und Charakteristiken für die Erstellung von Anforderungen sind in der ISO/IEC/IEEE 29148 beschrieben. Auch die Network Working Group hat einzelne Details und Definitionen zu Anforderungen in RFC 2119 festgelegt, die jedoch nicht immer ein Standard sind.
Ein von der Deutschen Automobilindustrie heraus entwickelter Standard zum einheitlichen Austausch von Anforderungen ist das Requirements Interchange Format (ReqIF™, ehemals RIF). ReqIF wird durch ein XML-Schema definiert und ist ein Format und Datenmodell, das Strukturen für Anforderungen, deren Attribute, Typen, Zugriffsrechte, Relationen (Links) enthält. Der ReqIF-Standard wird durch ProSTEP iViP von Projektpartnern stets weiterentwickelt (Stand 2022).
Eine Anforderungsspezifikation (zum Beispiel Lastenheft, Pflichtenheft oder Fachkonzept) muss die Anforderungen so formulieren, dass ein gemeinsames Verständnis zwischen Auftraggeber und Auftragnehmer über das zu entwickelnde Produkt entsteht. Werden Dokumente innerhalb einer Organisation oder Unternehmen ausgetauscht, müssen diese so formuliert sein, dass sie die zugrunde liegende Anforderung an ein Produkt oder eine Komponente inhaltlich definieren bzw. spezifizieren. Nur so können weitere Schritte in der Herstellung gewährleistet werden.
Zur Darstellung von Anforderungen wird natürliche Sprache verwendet oder eine formalisierte Sprache bzw. Beschreibung (Spezifikation) mit eingeschränktem Vokabular und festen Satzkonstruktionen, z. B. Satz-Schablonen oder Vorlagen. Dabei sollten Regeln eingehalten werden, um die Qualität der Anforderungen zu verbessern. Empfehlenswert ist beispielsweise, kurze Sätze zu formulieren, ungenaue Adjektive und Adverbien nicht zu verwenden (sogenannte „schwache Wörter“, wie z. B. schneller, schöner, automatisch, circa), sowie Passiv (z. B. „Es kann berechnet werden“) zu vermeiden, sondern stattdessen das handelnde System zu nennen, und Konjunktiv (z. B. „müsste“ oder „sollte“) zu vermeiden.
Anforderungen sollten nicht nur Aussagen über gewünschte Eigenschaften eines Produkts oder Systems treffen, sondern auch Kriterien beinhalten, wie diese Eigenschaften überprüft werden können (Verifizierungs-, Test- oder Akzeptanzkriterien). Diese Kriterien dienen der Qualität der Anforderungen selbst, da sie zu einer inhaltlichen Überprüfung der Anforderung anregen.
Zudem existieren mehrere grafische Notationen zur Modellierung und Dokumentation von Anforderungen und Zielen. Dabei handelt es sich u. a. um die Modellierungssprachen:
Um ein Anforderungsmanagement besser zu strukturieren, Redundanzen zu reduzieren sowie Versions-/Konfigurationsmanagement und Rückverfolgbarkeit zu ermöglichen, wird seit einigen Jahrzehnten spezialisierte Anwendersoftware aus dem Bereich des Application Lifecycle Management (ALM) eingesetzt. Diese basiert in aller Regel auf einer Datenbank und einer Benutzeroberfläche oder Webschnittstelle, in der die Anforderungen erfasst und verwaltet werden können.
Die Anforderungen können innerhalb der Anforderungsmanagement-Software bearbeitet und ein entsprechender Status (z. B. „Akzeptiert“, „In Bearbeitung“ oder „Verworfen“) dokumentiert werden. In der Regel ist es auch möglich, Anforderungen in Beziehung (Relation) zueinander zu setzen. So können beispielsweise Anforderungen an das System auf Kundenanforderungen zurückgeführt werden. Mithilfe dieser Techniken können im Rahmen des Inhalts- und Umfangsmanagements Overengineering, Scope Creep und weitere Projektrisiken reduziert werden. Ebenso können Tests als Teil der Verifikation und Validierung (V&V) mit den Anforderungen in Beziehung gesetzt werden. Werden Standardprogramme zur Textverarbeitung oder Tabellenkalkulation anstelle spezialisierter Software eingesetzt, können die zuvor beschriebenen Verfolgbarkeit und Beziehungen häufig nicht oder nur aufwändig gepflegt werden. Sie sind daher zu vermeiden.
Ein Anforderungsprozess muss nicht zwingend die oben genannten Aktivitäten umfassen, sondern kann auch als Beschaffungsprozess verstanden und ausgeführt werden. Damit werden Bedarf und andere Anforderungen bearbeitet. Ein Beispiel ist das Customer Product Management der Bundeswehr, das die Ermittlung und Erfüllung von Anforderungen als Teil der Beschaffung zum Gegenstand hat.
Das International Requirements Engineering Board (IREB) ist eine Interessensgemeinschaft und Unternehmen in diesem Umfeld.