This document discusses software requirements engineering. It describes that software requirements engineering is a process to establish the services required by stakeholders from a system under given constraints. It also discusses that a software requirements specification is a detailed document describing the system's services and acts as a contract between client and contractor. Finally, it outlines some common requirements engineering tasks like elicitation, specification and validation.