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. 14. The method of claim 1 , wherein clustering the business classes based on the similarity comprises: generating a set of seed clusters based on a characteristic of edges or nodes of the business class pairs, the edges representing the similarity for the business class pairs and the nodes representing the business classes; and evaluating a modularisation quality (MQ) of the set of seed clusters.