Software system analysis for identifying software functionality in source code remains as a major problem in the reverse engineering literature. The early approaches for extracting softwares functionality mainly relied on static properties of software system. However the static approaches by nature suffer from the lack of semantic and hence are not appropriate for this task.
This thesis presents a novel technique for dynamic analysis of software systems to identify the implementation of certain software functionalities known as software features. In the proposed approach, a specific feature is shared by a number of task scenarios that are applied on the software system to generate execution traces. The application of a sequential pattern mining technique on the generated execution traces allows us to extract execution patterns that reveal the specific feature functionalities. In a further step, the extracted execution patterns are distributed over a concept lattice to separate feature-specific group of functions from commonly used group of functions. The use of lattice also allows for identifying a family of closely related features in the source code. Moreover, in this work we provide a set of metrics for evaluating the structural merits of the software system such as component cohesion and functional scattering. We have implemented a prototype tool kit and experimented with two case studies Xfig drawing tool and Pine email client with very promising results.