Software requirements is a knowledge area in the context of computer and software engineering. Mining requirements and planning for them start from developing software requirements and is extended to the methods for eliciting, prioritizing, and planning for them. The course covers these phases plus the impact and importance of non-functional requirements, Requirements change, and reuse, as well as the modeling. The course provides contemporary examples of requirement analysis technique by referring to the state of the art and state of the practice for mobile software applications.