  Modern software typically performs more than one functionality. These
functionalities or features are not always organized in a way for modules
representing these features to be used individually. Many software engineering
approaches like programming language constructs, or product line visualization
techniques have been proposed to organize projects as modules. Unfortunately,
much legacy software suffer from years or decades of improper coding practices
that leave the modules in the code almost undetectable. In such scenarios, a
desirable requirement is to identify modules representing different features to
be extracted. In this paper, we propose a novel approach that combines
information retrieval and program analysis approaches to allow domain experts
to identify slices of the program that represent modules using natural language
search terms. We evaluate our approach by building a proof of concept tool in
C, and extract modules from open source projects.
