The generation process is achieved via several steps starting from a transformation of the input software codes to their related UML designs; then creating the corresponding graphs whose nodes are elements such as classes and interfaces and the edges are the relationships between those elements.