This course aims to introduce the fundamentals of software engineering and requirements engineering. The course emphasises on the important processes in requirements engineering, namely eliciting and analysing requirements, specifying and validating requirements specifications and managing the requirements throughout the software development cycle. Students will learn how to define the vision and scope of a software product and determine the stakeholders. They will learn utilising various techniques and methods involved in eliciting, analysing and validating requirements. Students are exposed to several types of documents for specifying requirements and practise creating a software requirements specification. Students will also learn to perform requirements traceability and manage requirements change.