1. A system for factorizing a set of requirements, the system comprising: a memory to store program instructions of a catalog normalizer, a graph generator, a graph factorizer, and an output generator; a processor to execute the program instructions stored in the memory, wherein, when executed by the processor, the catalog normalizer: receives a first plurality of requirement terms, receives a glossary having a second plurality of requirement terms with matching requirement term synonyms, determines whether a first requirement term from the first plurality of requirement terms is identical to a second requirement term in the glossary, and replaces 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; the graph generator generates a first graph having a plurality of matching requirement term synonyms represented by nodes connected by lines, each line representing a type of relationship; the graph factorizer: determines a relationship strength between the nodes based on the type of relationship represented by the lines connecting the nodes, and groups the plurality of matching requirement term synonyms into one or more clusters based on the relationship strength between the nodes; and the output generator: separates 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, generates a second graph having the one or more modules, translates the second graph into human-readable documents and machine-readable files, and exports the machine-readable files to a software design tool.