They are developed in collaboration with the customer and capture all customer facing functionality. These requirements are analyzed to determine the software architecture design and they are the basis for deriving the low-level requirements.