What is Software Architecture?

Software architecture is the fundamental organization of a software system, encompassing its components, their relationships to each other and to the environment, and the principles guiding its design and evolution.…