Difference between software architecture and software design.
INTRODUCTION:
This is not a coding bug or any of such, but this is an important concept I did find difficult to grasp, I am glad I have finally put the pieces of the puzzle together, and I’m glad to share it with you.
Software architecture and software design are common terms in software engineering and development used interchangeably, but they mean different things we would discuss.
I am Precious Ojogu, passionate about backend and cloud development and creating solutions to solve real-world problems.
Software Architecture
Software architecture spans across the high-level structure of a system, focusing on components, their interactions, and the principles guiding their design.
Software architecture is how the defined components of a system are organized and assembled, how they communicate with each other, and the constraints the system is ruled by.
The way I like to think of it is as a big square which can be seen as the requirement analysis, the square is broken down into four different squares which are the components of the system architecture and each smaller square can have a little square inside which can define the components.
Software architecture is a broad field, so broad that big tech companies like Google, Microsoft, and all have roles just for this purpose.
Software architecture problems are solved using architectural patterns like monolithic architecture, microservices, and event-driven architecture, which we will talk about in a later article.
System Design
Software design is more focused on the detailed design of individual components and modules within the system. It involves defining the structure, behavior, interfaces, and algorithms for each component to fulfill its specific function.
Software design also has patterns, these patterns are already proven solutions to the different software design problems we may encounter, examples are the factory pattern, observatory, etc.
We will get into the different architectural patterns, design patterns, and design principles in a later article stay tuned!
On a more abstract topic, I’d love to talk about HNG internship. This is an internship created by a wonderful man, Mark Essien. This internship is mainly designed for people in the tech space who wish to take their tech skills to the next level. As a developer, I sometimes find it difficult to find a bit more challenging project to take up on and this is where HNG internship comes in. It is created to take you out of your comfort zone and make you job ready, I urge you all to get in!
you can visit through the link: https://hng.tech/internship