1. A computer system for improving modularity of a software source code, comprising: i. a user interface for receiving source code; ii. a source code model extractor for parsing and forming a model of the source code; iii. a source code model database for storing the source code model, refactoring operators, and a record of refactoring changes, wherein: each refactoring operator comprises a defined source code function, and each refactoring change comprises an alteration to the source code such that external behavior of the source code subsequent to alteration conforms to external behavior of the source code prior to alteration; and the source code model database is stored in a non-transitory memory; iv. a modularization diagnosis reader for evaluating modularity of the source code and generating a modularity problem diagnosis data, wherein the modularity problem diagnosis data comprises information corresponding to identified modularity problems; v. a modularity improvement analyzer for reading the source code model and modularity problem diagnosis data and generating a set of prescriptions, the set of prescriptions comprising a list of operations for improving modularity of the source code; vi. an optimal improvement suggestion selector for evaluating and electing one or more prescriptions from the set of prescriptions, based on a predetermined criteria; and vii. a refactoring engine for receiving selected prescriptions and applying them on the source code; wherein modularity is a logical partitioning of the software source code into software modules, each module comprising a logical unit.