This course provides an introduction to software architecture. It is the result of expertise developed by the SEI over two decades and is based on the SEI book Software Architecture in Practice, the first and most frequently cited practitioner-oriented book about software architecture.


  • Software architects
  • Experienced programmers (5+ years)
  • Team leaders
  • CTOs


  • You must be proficient in at least one programming language. You will get the best out of this class if you have worked at least 5 years as a programmer or architect until now.


  • Understand the need of software architecture.
  • Make the distinction between functional and non-functional requirements.
  • Learn how risk management can be used when requirements change.
  • Identify security risks and mitigation strategies.
  • Have a good software deployment strategy.
  • Find ways of modularization of the software and identify modules responsibilities.
  • Learn how to communicate software architecture toward different audiences.
  • Simplify the architecture versioning process: update, refactor, improve.


  • What is Architecture?
  • What is Software Design?
  • Architect’s role: Traditional and Agile.
  • How to start on architecture?
  • How to communicate architecture to business people, product people, developers?
  • Architecture evolution.
  • Architecture versioning.