{'fraction_non_alphanumeric': 0.009777777777777778, 'fraction_numerical': 0.0, 'mean_word_length': 5.662721893491124, '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}}
A scalable goal-oriented approach to software variability recovery

Software reuse approaches, such as software product lines, can help to achieve considerable effort and cost savings in product development for sets of software systems with a significant overlap in functionality. However, in the practice many organizations at first develop a number of similar software products without explicitly planning for strategic reuse. In consequence, subsequent attempts to introduce reuse require a significant restructuring of the existing products. The restructuring is difficult because the precise information about the distribution of commonality and variability in the source code of the variants is often not available.
 The ongoing PhD thesis presented in this paper contributes to easing the task of extractive software reuse adoption: it proposes a reverse engineering approach for extracting the variability information from the source code of similar software products and outlines a method that guides the organization towards optimal use of this information in the process of planning and introducing software reuse.