changes and bad design choices. To handle the complexity of systems, software products
are, in general, decomposed in terms of packages/modules containing classes that are
dependent. However, it is challenging to automatically remodularize systems to improve
their maintainability. The majority of existing remodularization work mainly satisfy one
objective which is improving the structure of packages by optimizing coupling and cohesion …