CodeX

Everything connected with Tech & Code. Follow to join our 1M+ monthly readers

Follow publication

Software Architecture vs Design

Hiralee Malaviya
CodeX
Published in
3 min readAug 27, 2021

As a senior engineer with around a decade of being in the software industry, I often get a question like ‘What is the difference between a design and an architecture?’ Let me know that I am not the only one here. Let discuss what each means to us as software developers.

Image Source: https://www.how2shout.com/wp-content/uploads/2016/02/3D-Home-Design.jpg

To break the surprise, I believe there is no or very subtle difference between the two. To quote our very own Uncle Bob in one of books, Clean Architecture;

“The word architecture is often used in the context of something at a high level that is divorced from the lower-level details, whereas ‘design’ more often seems to imply structures and decisions at a lower level. But this usage is nonsensical when you look at what a real architect does.”

To understand the above quote better, an architecture is the high level details of a system where as the design is lower level details which composes/defines the architecture. Let us understand these in more detail with the help of examples.

As a developer, consider I developed an iOS app called Todo, where one can add/edit/remove their todos of their day. The app as a whole is supposed to have a particular shape that makes a new developer understand how the code is divided into features, how those features are defined, how the app interacts with the outside world. As one goes into the details of any given class, that’s where the low level details/decisions come to light, for instance, if we have used inheritance/composition, if the given variable is private/public, what is the responsibility of the class, etc.

Here, the high level details define the architecture of the app whereas the low level details define the design.

Similarly, as an architect of a building, consider I design a new home. The design will have a defined shape, elevation, divisions/layout that divides it into rooms. As one gets into the details of a given room, one would notice where the light outlets would come, of what colour the room will be, in which corner the water inlet/outlet would come in the kitchen. One would be able to figure out where all the switches would come, along with other minute details.

From the above two examples of an app and a home, you would understand how the design plays a role in defining the shape of the unit being…

Create an account to read the full story.

The author made this story available to Medium members only.
If you’re new to Medium, create a new account to read this story on us.

Or, continue in mobile web

Already have an account? Sign in

CodeX
CodeX

Published in CodeX

Everything connected with Tech & Code. Follow to join our 1M+ monthly readers

Responses (1)

Write a response