Описание тега modularization
The aim of the software modularization process is to partition a software system into subsystems to provide an abstract view of the architecture of the software system, where a subsystem is made up of a set of software artifacts which collaborate with each other to implement a high-level attribute or provide a high-level service for the rest of the software system.
Knowing the software architecture, software developers can perform fit-gap analysis and estimate the costs and risks of the required changes, and also will be able to determine which components can be reused. However, for large and complex software systems, the software modularization cannot be done manually, owing to the large number of interactions between different artifacts, and the large size of the source code. Hence, a fully automated or semi-automated tool is needed to perform software modularization.