This course develops a strong understanding of object-oriented design. Students will study modelling and programming techniques that support the analysis, design and development of large and maintainable programs. Students will work together in groups on an engineering problem and use a variety of best practices (e.g. Design Patterns) and notations (e.g. UML). Students will use specialized tools to apply these techniques in practical work.
Students who pass this course will be able to:
- Competently analyse a software engineering problem and design and implement a solution, using appropriate tools.
- Apply correctly a range of techniques and notations for designing extensible and reusable software.
- Apply correctly techniques for ensuring and assessing the quality of software.
- Work co-operatively in a team to solve a software engineering problem.