This lecture teaches methods for the systematic planning and development of complex software (and hardware) architectures in the context of intelligent systems. We learn about a variety of established and successful methods that software architects apply to develop and evaluate complex system architectures. We sharpen our understanding of architectural concerns that give rise to architectural decisions a good architect needs to be aware of. We also learn how we can evaluate software architectures before a system is built and how architectural decision making helps minimizing risks during complex (AI) software development projects. |