Software architecture provides a structured, visualized framework for developers to refer to as a guide when building scalable, reusable software that meets their technical and business needs.These plans are then broken down into individual components and code during the software design phase. The design phase digs even deeper by defining what each component does and how they interact with each other, right to the code level.