Software architecture is a general level of how the software components are organized to create an effective system. It deals with what and where should be deployed for the system to work the best. Software design deal with the level-specific functioning of the separate components. It deals with how something should be deployed on every level for the system to work.