The software architecture of a computing system is the set of structures needed to reason about the system, which comprise software elements, relations among them, and properties of both.
The software architecture of a program or computing system is a depiction of the system that aids in the understanding of how the system will behave.