As an innovative software application mode, Software as a service (SaaS) shows many attractive advantages. Migrating legacy system to SaaS can make outdated systems revived. In the process of migration, the existing valuable components need to be discovered and reused in order that the target system could be developed/ integrated more efficiently. An innovative approach is proposed in this paper to extract the reusable components from legacy systems. Firstly, implementation models of legacy system are recovered through reverse engineering. Secondly, function models are derived by vertical clustering, and then logical components are discovered by horizontal clustering based on the function models. Finally, the reusable components with specific feature descriptions are extracted. Through experimental verification, the approach is considered to be efficient in reusable component discovery and to be helpful to migrating legacy system to SaaS.