Software architecture is the final phase of design of the software life cycle, is kind of weird because once you have a design, (read Software design), is natural to think that the next step is coding, but in software life-cycle, software architecture is needed after software design and before coding.
From this page Software Architecture…
defines a structured solution to meet all the technical and operational requirements, while optimizing the common quality attributes like performance and security.
Software Architecture in Practice (2nd edition), Bass, Clements, and Kazman from Microsoft says this about software architecture:
The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them. Architecture is concerned with the public side of interfaces; private details of elements—details having to do solely with internal implementation—are not architectural.
In other words, Software Architecture provides the relation between all the components, elements and requirements of a system as well as how they are related. It also involves a series of decision that have impact on quality, performance and maintainability.
I imagine the software design like a small model of a building, in software it can be represented in many ways, for example in the UML; and software architecture like the blueprints of a building, which will be difficult to relate it with software development. Both of them are inside the design step of software life-cycle and very important because they are like the pillars of the software, if they are not well structured the application will fall apart.