12. A non-transitory computer readable medium having stored thereon machine readable instructions for component discovery, the machine readable instructions, when executed, cause a processor to: determine business classes by excluding packages and classes in source code; extract code features from the business classes by extracting packaging information for each of the business classes, wherein extracting packaging information for each of the business classes includes extracting concept words embedded in business class names, extracting a packaging hierarchy as a string, and extracting a substring that describes the packaging hierarchy; estimate similarity for business class pairs based on the extracted features; cluster the business classes based on the similarity, wherein clusters generated by the clustering represent components of the source code; and determine interfaces for the components based on the clustering by identifying public methods of the business classes in a cluster of the generated clusters that are called by the business classes of other clusters from the generated clusters.
17. The non-transitory computer readable medium according to claim 12 , further comprising machine readable instructions that when executed by the processor further cause the processor to: map functional entities to the components by separating each of the functional entities into distinct words; and determine, based on the separation of each of the functional entities into distinct words, a similarity between each of the functional entities and the components.