What is software architecture
The software architecture of a program or computing system is the structure or structures of the system, which comprises software components, the externally visible properties of those components and the relationships between them.