Software architecture and software design are the two main important parts or phases of software development. These two terms are very confusing to everyone. This article describes a basic overview of software architecture and software design, software architecture VS software design.
Software Architecture focuses more on the interaction between the externally visible components of the system where as the Design is about how the internal components of the system interact with each other. Software Architecture is more about what we want the system to do and Software Design is about how we want to achieve that. Software Architecture is at a higher level of abstraction than the Software Design. Software Architecture is concerned with issues beyond the data structures and algorithms used in the system.
Software Architecture shows how the different modules of the system communicate with each other and other systems. What language is to be used? What kind of data storage is present, what recovery systems are in place? Like design patterns there are architectural patterns. Such MVC, 3-tier layered design, etc.
Software design is about designing the individual modules / components. What are the responsibilities, functions, of module x or class Y? What can it do, and what not? What design patterns can be used? UML diagram/flow chart/simple wireframes (for UI) for a specific module/part of the system.
Software Architecture is the design of the entire system, while Software Design emphasizes on a specific module / component / class level.
All architecture is design but not all design is architecture.
Software Architecture is “what” we are building.
Software Design is “how” we are building.
20 thoughts on “Difference between Software Architecture and Software Design”
Thanks for a good article.
Thank you so much it was simple and easy to understand
Well writing. Thanks
thanks a lot
All data will arrange in the circle or rows and columns while design he software design ?
Thank you very much for the explanation, i am not a software developer , i am only starting to learn about software development this year and i found your explanation simple and was able to place and envision the software development process much easier, it is much appreciated
Thank you very much.
CAN YOU FOCUS ON DESIGN LEVEL METRICS.
HOW THE METRICS VALUES ARE CALCULATED WHICH CAN BE USED TO ASSESS RELIABILITY.
ANY TOOL OR METHOD
thanks for the artical
one of the good review.thanks.