Requirement engineering is the process of understanding a client's needs, documenting software requirements, and ensuring the final product meets the client's expectations. It involves eliciting requirements from stakeholders, analyzing and specifying the requirements, and managing changes. The key outputs are a software requirements specification document that formally defines functional and non-functional requirements, and a common understanding between developers and clients.