One major problem in maintaining a software system is to understand how many functional features in the system and how these features are implemented. In this paper a novel approach for locating features in code by semantic and dynamic analysis is proposed. The method process consists of three steps: The first uses the execution traces as text corpus and the method calls involved in the traces as terms of document. The second ranks the method calls in order to filter out omnipresent methods by setting a threshold. And the third step treats feature-traces as first class entities and extracts identifiers from the rest method source code and a trace-by-identifier matrix is generated. Then a semantic analysis model-LDA is applied on the matrix ...