- From coding to software engineering, software engineering ethics, legacy systems.
- Software engineering models, Waterfall, Spiral, V&V, iterative models, CASE tools.
- Software projects management, PERT and Gantt chats, managing time, staff allocation.
- Risk analysis and risk management, cost estimation and management, estimation models.
- Requirements analysis, OOAD, UML, Use Cases, Domain model and Class Diagrams.
- Software design, the ICONIX methodology, robustness diagrams, sequence diagrams.
- Development and programming, principles of OOAD, from dynamic models to static model and code.
- Programming in teams, code repositories, Gits and version control, code reviews and code inspections.
- Iterative development, rapid prototyping, visual programming, RUP.
- Agile methods, extreme programing, programming in pairs, timebox, SCRUM, Kanban.
- Verification and Validation, units and system testing, white box testing, equivalence partitioning, boundary value analysis.
- Interface testing, black box testing, basic path testing, condition coverage, stress testing.
- Debugging, brute force techniques, backtracking, cause elimination, regression testing.