Course Summary
Building large-scale software systems requires important strategic and technical decisions from the outset. The primary aims of this course are to provide a sound understanding of architecture concepts, functions, tasks and techniques, and how the systems constituent parts interact. You will be exposed to the practical aspects of architecture through the analysis of case studies and design exercises. In particular, the course introduces you to architecture principles and tactics to support development of systems that exhibit system qualities required for successful software systems, such as performance, availability, security, and maintainability. Introduced throughout are strategies for technical analysis and evaluation of candidate architectures and decisions, communicating with stakeholders, and documenting an architecture.