3 Credit Hour Course
Intended For Level 2 Term 2 Students
Prerequisite:
Software engineering: professional software development, ethics; Software development life cycle; Requirements analysis: functional and non-functional requirements, requirement elicitation and specification, use cases, requirement validation; System modeling and design: unified modeling language (UML) diagrams, user interface design; Design patterns: creational, structural, and behavioral patterns; Development: code review and documentation, version control, code smell, code refactoring; Testing and debugging: unit testing, test doubles, integration testing, regression testing, white box and black box testing, performance and security testing, A/B testing, bug reporting