Source: Software Architecture & Design of Modern Large Scale Systems
The software architecture of a system is a high-level description of the system's structure, its different components, and how those components communicate with each other to fulfill the systems' requirements and constraints