Anforderungsmanagement
Anforderungsmanagement ist die Disziplin des Entdeckens, Analysierens, Dokumentierens, Validierens und Verwaltens dessen, was ein Softwaresystem leisten muss und unter welchen Einschränkungen es betrieben werden muss.
Definition
Anforderungsmanagement ist der systematische Prozess des Erfassens, Analysierens, Spezifizierens, Validierens und Verwaltens der Dienste, die ein Softwaresystem bereitstellen soll, sowie der Einschränkungen seines Betriebs und seiner Entwicklung.
Scope
Dieser Bereich umfasst die Erfassung der Bedürfnisse von Stakeholdern; die Analyse und Verhandlung widerstreitender Ziele; die Unterscheidung zwischen funktionalen und nicht-funktionalen (Qualitäts-)Anforderungen; Spezifikationstechniken, die von natürlichsprachlichen Aussagen bis hin zu formalen Modellen reichen; Validierung durch Überprüfung und Prototyping; sowie das Management von Anforderungsänderungen und die Nachvollziehbarkeit über den gesamten Lebenszyklus hinweg.
Sub-topics
Core questions
- Wie werden die tatsächlichen Bedürfnisse der Stakeholder entdeckt und disambiguiert?
- Wie sollen funktionale und nicht-funktionale Anforderungen präzise und dennoch verständlich spezifiziert werden?
- Wie werden widersprüchliche Anforderungen erkannt, verhandelt und gelöst?
- Wie werden Anforderungen validiert und bei Änderungen konsistent gehalten?
Key theories
- Funktionale versus nicht-funktionale Anforderungen
- Anforderungen werden in funktionale Aussagen darüber, was das System tun muss, und nicht-funktionale (Qualitäts-)Einschränkungen wie Leistung, Sicherheit und Benutzerfreundlichkeit unterteilt, die oft das gesamte System betreffen und die Architektur bestimmen.
- Zielorientiertes Anforderungsmanagement
- Systeme werden anhand von Stakeholder-Zielen analysiert, die in Unterziele verfeinert und in Anforderungen operationalisiert werden, wodurch Begründung, Konflikterkennung und Nachvollziehbarkeit von der übergeordneten Absicht bis zu den Systemfunktionen gewährleistet werden.
Clinical relevance
Anforderungsfehler gehören zu den kostspieligsten Defekten, da sie sich in Design und Code fortpflanzen; rigoroses Anforderungsmanagement reduziert Nacharbeit, stimmt die gelieferte Software mit den Bedürfnissen der Stakeholder ab und bildet die Grundlage für Akzeptanztests und vertragliche Vereinbarungen.
Evidence & guidelines
ISO/IEC/IEEE 29148 spezifiziert Prozesse des Anforderungsmanagements und die Inhalte von Anforderungsspezifikationen, und der Wissensbereich Software Requirements des SWEBOK bietet eine konsensbasierte Referenz.
History
Das Anforderungsmanagement entwickelte sich aus den strukturierten Analysemethoden der 1970er Jahre zu einer anerkannten Teildisziplin in den 1990er Jahren, gekennzeichnet durch spezielle Konferenzen (RE) und Fachzeitschriften, den Aufstieg der ziel- und szenariobasierten Modellierung und eine zunehmende Beachtung nicht-funktionaler Anforderungen und der Stakeholder-Verhandlung.
Debates
- Vorausschauende versus emergente Anforderungen
- Planungsgetriebene Praktiken bevorzugen die gründliche Spezifikation von Anforderungen vor der Implementierung, während agile Praktiken Anforderungen als emergent betrachten und durch Iteration verfeinern; der Kompromiss hängt von Volatilität, vertraglichen Einschränkungen und den Kosten später Änderungen ab.
Key figures
- Axel van Lamsweerde
- Bashar Nuseibeh
- Steve Easterbrook
- Michael Jackson
Related topics
Seminal works
- vanlamsweerde2009
- nuseibeh2000
- sommerville2015
Frequently asked questions
- Warum sind Anforderungsfehler so kostspielig?
- Eine missverstandene oder fehlende Anforderung wird oft erst spät entdeckt, nachdem Design und Code darauf aufgebaut wurden, sodass ihre Korrektur eine Rückabwicklung nachfolgender Arbeiten erfordert; empirische Studien zeigen durchweg, dass die Kosten für die Behebung eines Defekts stark ansteigen, je später er gefunden wird.
- Betreiben agile Projekte Anforderungsmanagement?
- Ja, aber anders. Agile Projekte erfassen, analysieren und validieren Anforderungen kontinuierlich durch User Stories, Backlog-Verfeinerung und häufiges Feedback, anstatt im Voraus ein großes Spezifikationsdokument zu erstellen.