Requirements engineering involves requirements development and management. It is important for defining the scope of a project, establishing agreement between stakeholders, and forming the basis for design. Requirements can be functional, describing system services, or non-functional, specifying constraints. Prioritizing requirements helps focus development efforts on the most important and valuable features.