Software development models, requirement engineering, software design, testing, maintenance, and project management.