1. A system for factorizing a set of requirements, the system comprising: a catalog normalizer configured to: receive a first plurality of requirement terms, receive a glossary having a second plurality of requirement terms with matching requirement term synonyms, determine whether a first requirement term from the first plurality of requirement terms is identical to a second requirement term in the glossary, and replace the first requirement term with a matching requirement term synonym of the second requirement term based on the first requirement term being identical to the second requirement term; a graph generator configured to generate a first graph having a plurality of matching requirement term synonyms represented by nodes connected by lines, each line representing a type of relationship; a graph factorizer configured to: determine a relationship strength between the nodes connected based on the type of relationship represented by the lines connecting the nodes, and group the plurality of matching requirement term synonyms into one or more clusters based on the relationship strength between the nodes; and an output generator configured to: separate the one or more clusters into one or more modules based on relationship strength between the nodes and a maximum number of requirements allowed in each module, generate a second graph having the one or more modules, translate the second graph into human-readable documents and machine-readable files, and export the machine-readable files to a software design tool.