This document provides an introduction to software requirements engineering. It defines what requirements are and explains that they form the basis for all software products. Requirements engineering is the process of systematically determining what the software system needs to do. There are different types of requirements, including functional requirements, which describe what functions or services the system should provide. Non-functional requirements, domain requirements, and other kinds of requirements are also discussed. Examples of functional requirements are provided to illustrate the level of detail and potential ambiguities. The importance of clear, unambiguous requirements for developing quality software is emphasized.