Die Herausforderungen in der Entwicklung heutiger softwarebasierter Systeme bestehen in der Komplexität der Anwendungen und ihren vielfältigen Verhaltens-, Qualitäts- und Integrationsanforderungen. Dem Requirements Engineering kommt hier eine Schlüsselaufgabe zu. Es ist integrierter Teil der Software- und Systementwicklung und befasst sich mit der Erarbeitung, Analyse, Abstimmung und strukturierten Spezifikation von Anforderungen an ein System, dem Management von Anforderungen, sowie der Sicherstellung ihrer angemessenen Umsetzung im Systementwurf.
Es gilt Kunden- und Nutzeranforderungen systematisch herauszuarbeiten, Ziele und Prioritäten zu setzen, Konflikte und Inkonsistenzen aufzulösen und erforderliche Funktionen mit entsprechenden Anforderungen an Systemverhalten, Nutzwert und Architektur herauszuarbeiten und zu dokumentieren.
Die frühzeitige Qualitätssicherung der Anforderungs- und Systemspezifikation ist ein kritischer Erfolgsfaktor, um Fehlentscheidungen zu vermeiden und das Risiko hoher Änderungs- und Fehlerkosten in späteren Phasen der Entwicklung zu verringern.