Software Engineering

SWE4403Software Architecture and Design Patterns (Cross Listed: CS 4015)4 ch (3C 2L*) (P)

Develop a deep understanding of software architecture and design patterns and strengthen skills to design, evaluate, and improve software architectures using industry best practices. Apply object-oriented programming principles to create reusable and maintainable software. Practice using creational, structural, and behavioral design patterns to design flexible, scalable, and maintainable software solutions. Analyze architectural quality attributes and design tactics to balance trade-offs between performance, scalability, maintainability, security, and other key system properties. Assess and reconstruct software architectures, evaluate software product lines, and develop effective documentation to communicate architectural decisions. 

Prerequisite: CS 2043.