Design patterns and structural strategies for complex systems.
Course overview
This course moves beyond basic coding to explore the structural foundations of large-scale software. You will learn how to design systems that are scalable, secure, and easy to maintain. The curriculum focuses on design patterns and structural strategies that professional software architects use to solve complex problems.
You will work on real-world scenarios where you must choose the right architectural style for a given set of requirements. The course emphasises documentation and communication, ensuring you can justify your design choices to technical and non-technical stakeholders alike.
Who takes this course
This course is a required component for students in the Bachelor of Applied Technology — Software Development program. It prepares you for senior development roles and technical leadership positions in the software industry.
Credits: 3 · Hours: 45
Prerequisites
Learning outcomes
- Evaluate and select appropriate design patterns for complex software requirements.
- Architect scalable and maintainable system structures using industry-standard frameworks.
- Analyze trade-offs between different architectural styles such as microservices and monoliths.
- Apply refactoring techniques to improve existing codebases without altering external behaviour.
- Document architectural decisions and system constraints for stakeholder review.
Evaluation
| Component | Weight (%) |
| Mid-term architectural design project | 30 |
| Final system architecture portfolio | 40 |
| Peer code review and participation | 15 |
| Final written examination | 15 |