Main Concepts in Software Architecture

Haitham Raik
2 min readMar 10, 2022

I have been always wondering what is the difference between Module, Subsystem, and Component? As simple as it may seem, this is one of the most difficult questions to answer. Each concept from the above has no single unified definition among the software architecture communities. Each community defines and uses these concepts differently, which makes the communications about an architecture difficult to comprehend.

As the software architecture field has been evolving rapidly over time (See The History of Software Architecture story), new terms have been constantly emerging and existing terms’ definitions have been continuously changing. As a result, the whole industry struggled to precisely provide universal definitions for many concepts in the IT community and the above concepts are not different.

Personally, I have read tens of books to get a clear answer about the three concepts, and eventually, I reached the most widely accepted definitions among all the communities which I will explain here in this story with an emphasis on how these concepts are complementing each other.

Please check the following article for more details:

Don’t forget to follow me to get notifications for my new articles and please clap for the article if you liked it.

--

--