Software architecture focuses on the design of software structures and systems to provide blueprints and frameworks that guide the software development process.
Unlike application architecture, which is more logical in nature and encompasses multiple layers of technology concepts, software architecture focuses on selecting the technologies, frameworks, and patterns that enable robust and functional software when assembed and structured.
Software architecture has to take into account not only the functional requirements that will make the software usable to the business, but also non-functional requirements such as performance, scalability, and the adaptability to changing requirements and business conditions.