Introduction to Software Requirements Engineering, Non Functional Requirements, Kinds of Software Requirements, Requirements from the User/Customer’s Perspective, Process Models and Requirement Engineering Process, Actors and Stakeholders in the Requirements Engineering Process, Social and Cultural Issues in Requirements Engineering, Requirements Elicitation - Stages, Basics of Knowledge Acquisition, Knowledge Structuring Techniques, Specific Elicitation Techniques Including: Interviewing, Scenarios, Prototyping and Participant Observation; Requirements Analysis - Incomplete Requirements, Inconsistent Requirements, Analysis Checklists; Requirements Analysis and Negotiation, Requirements Errors - Impact of Requirements Errors, Error Prevention in Requirements, Defect Removal, Requirements Validation, Requirements Management - Stable and Volatile Requirements, Requirements Identification Techniques, Change Management; Requirements Traceability, Prototyping, Writing Requirements, Requirements Document, Quality Attributes of Requirements Document, Use Case Modeling (Case Study: Banking System), Software Modeling, Object-Oriented Modeling Using UML, Object-Oriented Static Modeling (Case Study: Banking System), Functional Modeling (Case Study: Banking System), Dynamic Modeling (Case Study: Banking System), Requirements Engineering for Agile Methods, Requirements Engineering for Web-Based Systems, Requirements Engineering for Product Lines, Requirements Prioritization.