The overall objective of the course is to teach the student to collect and manage User requirements. At the top level, the course is divided into seven components. The content of each of these components is briefly as follows: Overview - The Software Development Process and the Role of the Requirement; Users and their Needs; The Requirements Engineering Process; The Requirements Engineering Team. Requirements Elicitation - Techniques of Requirements Elicitation; Example of Requirements Elicitation; Domains, Problems and Terminology. Requirements Analysis - Review of Quality Function Deployment; Requirements Organisation and Prioritisation; Requirements Dependencies and Conflicts; Constraints on the Requirement; Requirements Quantification. From Requirement to Specification - Requirements Review; Requirements Verification and Validation; Planning Implementation Strategies. Requirements Risk Analysis - Principles of Software Technical Risk; Requirements-Based Risk Analysis; Managing Requirements Risk. Study of Specific Methods - Object Oriented Analysis; Structured Requirements Definition; Specification and Description Language. Requirements Evolution - Why Requirements Evolve; Assessing Requirements Volatility; Managing Requirements Volatility. There is also an in-course graded assignment. This course is suitable for all software developers who must determine and manage user requirements.