1. A method for component discovery from source code, the method performed by a processor and comprising: receiving source code; determining business classes by excluding packages and classes in the source code; extracting features from the business classes; estimating similarity for business class pairs based on the extracted features by determining textual similarity by using a co-occurrence matrix that is defined as a sequence of the business classes in the source code and a sequence of unique intermediate representation (IR) tokens occurring across the business classes, and evaluating, for the co-occurrence matrix, a frequency of occurrence of an IR token from the IR tokens occurring in a particular business class of the business classes; clustering the business classes based on the similarity, wherein clusters generated by the clustering represent components of the source code; and determining interfaces for the components based on the clustering.