Requirement: „Eine Bedingung oder Fähigkeit, die eine Software erfüllen oder besitzen muss, um einen Vertrag, eine Norm oder ein anderes, formell bestimmtes Dokument zu erfüllen." (IEEE 610.12-1990)

Die
zentrale Funktion des Requirementsengineerings ist das Sammeln, Formalisieren und Bewerten von Anforderungen. 
Requirementsengineering
Dabei gilt es die Anforderungen eindeutig zu formulieren und vollständig zu erfassen. Kommt es hierbei zu Lücken, kann dies später zu erheblichen Mehraufwänden bzw. Verzögerungen in der Abwicklung des Vorhabens führen. Um dies zu gewährleisten ist eine einheitliche Strukturierung der Dokumentation unerlässlich. Besonders in großen Projekten kommt dem Anforderungsmanagement besondere Bedeutung zu.

Requirements können in unterschiedlichen Ebenen definiert werden. Die Spanne reicht hier von High-Level Requirements (z.B. Reduktion der Kosten um 10%) bis hin zu konkreten Funktionen einer Software (z.B. Möglichkeit zum Sortieren einer Liste).
Auch die adequate Beschreibung der Requirements kann je nach konkretem Anwendungsfall variieren. So kommen hier unter anderem User Stories, Use Case Diagramme, Prozessmodelle oder Prototypen zum Einsatz.