Failure to understand and control software requirements is the number 1 cause of project failure. This course is developed for those who are involved with defining or understanding the requirements for any system that contains software. The primary audiences are business analysts, architects, designers, developers, testers, and other technical team members. It is also for project managers in charge of software development, and stakeholders who participate in defining a product that meets their business, functional, and quality needs. This course prepares students in pursuing computer science degree. You will learn (1) how to establish the requirements of a software system, specify/develop (based on IEEE standard) and manage those requirements; (2) learn some other basic software engineering standards (process, products, resource and technique); (3) In particular, learn the basics of CMMI, a means for assessing and improving the software development process.