This document covers topics in requirements engineering including functional and non-functional requirements, the software requirements document, requirements specification, and requirements processes. It defines requirements engineering as establishing customer services and system constraints. Requirements can range from abstract to detailed specifications and serve both bidding and contractual purposes. User requirements use natural language while system requirements provide structured descriptions. Functional requirements define system services and behaviors while non-functional requirements constrain timing, standards, and processes.