{'fraction_non_alphanumeric': 0.016046681254558718, 'fraction_numerical': 0.005835156819839533, 'mean_word_length': 5.293577981651376, '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}}
Approximating object based architecture for legacy software written in procedural languages using Variable Neighborhood Search

Legacy software, often written in procedural languages, could be a major concern for organizations due to low maintainability. A possible way out could be migrating the software to object oriented architecture, which is easier to maintain due to better modularity. However, a manual migration could take significant time and thus an automated process is required. This migration problem has been modeled as an optimal graph clustering problem where vertices and edges are represented by function and function calls respectively. Solution to this problem is NP-hard and thus meta-heuristic base approaches are potential to get near optimal result. This paper presents a Variable Neighborhood Search (VNS) approach for addressing the modeled graph clustering problem. The method provides a set of clusters that gives a clue for possible structure of the object oriented architecture. This approach is based on the objective to minimize the coupling and maximize the cohesion within the clusters. The proposed algorithm was implemented and its performance was compared with state of the art techniques. It is observed that the proposed method produced 37.15% and 12.02% better results in contrast to genetic algorithm and local search heuristics.