Die Aufgabe des Requirements Engineering ist es, die Anforderungen an das zu entwickelnde System vollständig und fehlerfrei zu ermitteln, um die Aktivitäten in nachgelagerten Entwicklungsstadien (z.B. Architekturentwurf, Design, Implementierung, Test) sowie in der Wartung des Systems bestmöglich zu unterstützen. Studien und viele Erfahrungen aus der Praxis zeigen, dass gerade Fehler in Anforderungen zu erheblichen Problemen in Entwicklungsprojekten führen können, da insbesondere dann, wenn solche Fehler in der Entwicklung erst spät oder überhaupt nicht aufgedeckt werden, in der Regel sämtliche zugehörige Entwicklungsergebnisse überarbeitet werden müssen. Fehler in den Anforderungen, die im Rahmen des Entwicklungsprojektes nicht aufgedeckt werden, führen früher oder später zum Versagen des Systems im Betrieb, was, abhängig von der Sicherheitsrelevanz des Systems, neben ernsten finanziellen Folgen auch schwerwiegende Konsequenzen für Leib und Leben von Menschen haben kann.
Die Forscher im Bereich Requirements Engineering beschäftigen sich mit der frühzeitigen Qualitätssicherung von Anforderungen in Entwicklungsprozessen, um der Problematik der spät aufgedeckten Fehler in Anforderungen entgegen zu wirken. Eine wesentliche Fragestellung ist dabei, wie die Anforderungen an umfangreiche und komplexe softwarebasierte Systeme, die häufig auch in einem äußerst komplexen funktionalen Zusammenhang mit ihrer Umgebung stehen, systematisch und bewertbar erarbeitet werden können. In diesem Zusammenhang wird auch betrachtet, wie auf Basis der Anforderungsspezifikation eine möglichst optimale Architektur des Systems erreicht werden kann, wie komplexe Abhängigkeiten zwischen Funktionen des Systems bereits in der Anforderungsspezifikation aufgedeckt bzw. nachgewiesen werden können und wie durch die strukturierte Analyse des Systemkontextes die inhaltliche Qualität der Anforderungen erhöht werden kann.