A source code flow analysis system comprising: a memory storing machine readable instructions to: receive source code for an application; generate a method interaction graph using the source code, wherein the method interaction graph comprises nodes that represent methods in the source code and edges that represent the method calls in the source code; identify virtual flow documents for the application in the method interaction graph, wherein the virtual flow documents represent ordered sequences of method calls for the application; extract features of the virtual flow documents, wherein the features include textual features, wherein the textual features are extracted from method definitions in the virtual flow documents and arranged as a co-occurence vector; determine similarity between the virtual flow documents by estimating similarities for the extracted features to determine a flow-to-flow similarity, wherein the similarity comprises a textual similarity, wherein the textual similarity is determined by determining a cosine similarity of co-occurrence vectors of the virtual flow documents; and cluster the virtual flow documents based on the flow-to-flow similarity to facilitate identification of a cause of a defect related to the application, by, generating clustered classes for the application; and using relevant virtual flow documents and the clustered classes to generate relevant class clusters, wherein a first class cluster is more relevant for carrying out a first maintenance activity and a second class cluster is more relevant for carrying out a second maintenance activity; and a processor to implement the machine readable instructions. a memory storing machine readable instructions to: receive source code for an application; generate a method interaction graph using the source code, wherein the method interaction graph comprises nodes that represent methods in the source code and edges that represent the method calls in the source code; identify virtual flow documents for the application in the method interaction graph, wherein the virtual flow documents represent ordered sequences of method calls for the application; extract features of the virtual flow documents, wherein the features include textual features, wherein the textual features are extracted from method definitions in the virtual flow documents and arranged as a co-occurence vector; determine similarity between the virtual flow documents by estimating similarities for the extracted features to determine a flow-to-flow similarity, wherein the similarity comprises a textual similarity, wherein the textual similarity is determined by determining a cosine similarity of co-occurrence vectors of the virtual flow documents; and cluster the virtual flow documents based on the flow-to-flow similarity to facilitate identification of a cause of a defect related to the application, by, generating clustered classes for the application; and using relevant virtual flow documents and the clustered classes to generate relevant class clusters, wherein a first class cluster is more relevant for carrying out a first maintenance activity and a second class cluster is more relevant for carrying out a second maintenance activity; and receive source code for an application; generate a method interaction graph using the source code, wherein the method interaction graph comprises nodes that represent methods in the source code and edges that represent the method calls in the source code; identify virtual flow documents for the application in the method interaction graph, wherein the virtual flow documents represent ordered sequences of method calls for the application; extract features of the virtual flow documents, wherein the features include textual features, wherein the textual features are extracted from method definitions in the virtual flow documents and arranged as a co-occurence vector; determine similarity between the virtual flow documents by estimating similarities for the extracted features to determine a flow-to-flow similarity, wherein the similarity comprises a textual similarity, wherein the textual similarity is determined by determining a cosine similarity of co-occurrence vectors of the virtual flow documents; and cluster the virtual flow documents based on the flow-to-flow similarity to facilitate identification of a cause of a defect related to the application, by, generating clustered classes for the application; and using relevant virtual flow documents and the clustered classes to generate relevant class clusters, wherein a first class cluster is more relevant for carrying out a first maintenance activity and a second class cluster is more relevant for carrying out a second maintenance activity; and generating clustered classes for the application; and using relevant virtual flow documents and the clustered classes to generate relevant class clusters, wherein a first class cluster is more relevant for carrying out a first maintenance activity and a second class cluster is more relevant for carrying out a second maintenance activity; and a processor to implement the machine readable instructions.