What are the differences between multi-module and single-module software architectures? What are the advantages and disadvantages of each? When should each one be used, and why?
What are the differences between multi-module and single-module software architectures? What are the advantages
Share
The main advantage using multiple modules is that you can re-use them, whereas single modules often contain multiple functionalities, not necesarilly related to each other, and are impractical for reuse. This depends on the size of the project, but for large projects multiple modules bring more advantages.
Multiple modules also provide an easier to update and change system. If you find a bug, you’d only need to update the module containing the bug, not the whole system.
Compile time is also better for a system with more modules as not necesarilly all of them need to be compiled for small changes (of course, with a smart enough compiler this shouldn’t be a problem for single-module programs either).
Testing is another issue – testing smaller modules can decrease the number of bugs as they can be pinpointed to their specific module.
As for disadvantages, multiple modules can be harder to maintain; if they exist in a large number and aren’t documented well enough, following dependencies can also be a tedious task.
Again, this depends on the size of the project.