Software developers are often faced with the task of maintaining or extending large and complex applications, with which they are unfamiliar. Typically change requests and bug reports are expressed in terms of system features. Much of the maintenance effort is spent trying to identify which classes and methods provide functionality to individual features. To tackle this problem, we propose an approach based on dynamic analysis that exploits the relationship between features and software entities. Our definition of a feature is a unit of observable behavior of a software system. We apply our approach to a large open source application and identify key classes and methods which provide functionality to individual features.