Evaluating a design, identifying common problems, and how to fix these problems through refactoring.
SOFTWARE DESIGN PATTERNS
Course Description
This course explores advanced principles of object-oriented design by studying key software design patterns. The patterns are drawn from a variety of sources and illustrated through examples and case studies. These are presented in an object oriented programming language e.g. Java, C++ or C sharp.
Course Objectives
The Course aims to provide students with understanding and skills in:
Designing effective and maintainable complex software systems of high quality by reusing/applying design patterns.
Evaluating a design, identifying common problems, and how to fix these problems through refactoring.
Learning Outcomes
By the end of this course, the student should be able to:
i) Describe the purpose of design patterns.
ii) Describe a range of software patterns giving examples of their use.
iii) Understand the ways that design patterns are documented and classified.
iv) Select and apply design patterns to practical software design problems.
v) Select and apply design patterns to realistic business situations through a series of hands-on exercises.