Software architecture refers to the high-level structure and design of a software system. It encompasses the key components, modules, relationships, and decisions that govern how a software application or system is organized and how its various parts