October 1, 2020
architect-vs-engineer

Difference between Software Architecture and Software Design

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.

Rashedul Alam

I am a software engineer/architect, technology enthusiast, technology coach, blogger, travel photographer. I like to share my knowledge and technical stuff with others.

View all posts by Rashedul Alam →

18 thoughts on “Difference between Software Architecture and Software Design

  1. Hi Rashed
    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

  2. HELLO
    CAN YOU FOCUS ON DESIGN LEVEL METRICS.
    HOW THE METRICS VALUES ARE CALCULATED WHICH CAN BE USED TO ASSESS RELIABILITY.
    ANY TOOL OR METHOD

Leave a Reply

Your email address will not be published. Required fields are marked *