{'fraction_non_alphanumeric': 0.009393680614859094, 'fraction_numerical': 0.0, 'mean_word_length': 5.335135135135135, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Approach for solving the feature location problem by measuring the component modification impact

Maintaining a large software system is an inherently difficult task that often involves locating and comprehending system features prior to performing the actual maintenance task at hand. Feature location techniques were introduced to locate the source code components implementing specific software features. Common to these approaches is that they rely either on exercising several features of a system, and/or domain experts to guide the feature location process. In this study, the authors present a novel hybrid feature location approach that combines static and dynamic analysis techniques. Our approach uses a component dependency graph of the system to provide a ranking of the components according to their feature relevance. The ranking itself is based on the impact of a component modification on the remaining parts of a system. Our approach can almost be completely automated without requiring an extensive knowledge of the system. A case study performed on two open source projects is presented to evaluate the applicability and effectiveness of our approach.