1. A method for component discovery from source code, the method comprising: receiving source code; determining business classes by excluding packages and classes in the source code identified at least one of as belonging to a presentation layer, as belonging to a data access layer, as models and as utilities; extracting features from the business classes; estimating similarity for business class pairs based on the extracted features; clustering, by a processor, 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.
1. A method for component discovery from source code, the method comprising: receiving source code; determining business classes by excluding packages and classes in the source code identified at least one of as belonging to a presentation layer, as belonging to a data access layer, as models and as utilities; extracting features from the business classes; estimating similarity for business class pairs based on the extracted features; clustering, by a processor, 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. 7. The method of claim 1 , wherein estimating similarity for business class pairs based on the extracted features comprises: populating a method name matrix that accounts for a frequency of occurrence of word concepts embedded in public methods of a business class; applying term frequency-inverse document frequency (tf-idf) based automated weighting to the method name matrix; and calculating method name similarity for the business class pairs by evaluating method name matrices corresponding to the business class pairs.