The high-level structure of a software system, including its components, how they interact, and the principles guiding its design and development.