Learning Outcomes:
On successful completion of this module, students will be able to:
- Describe current trends in software methodology;
- Model various aspects of a software system using UML;
- Develop robust software using unit testing;
- Use software design principles and heuristics to guide their programming and metrics to assess software quality;
- Improve the design of their software using refactoring;
- Apply a number of basic design patterns in their own programs.