{'fraction_non_alphanumeric': 0.02146690518783542, 'fraction_numerical': 0.0, 'mean_word_length': 5.222222222222222, '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}}
Dynamic Refactorings: Improving the Program Structure at Run-time

Many software systems must always stay operational, and cannot be shutdown in order to adapt them to new requirements. For such systems, dynamic software evolution techniques are needed. In this paper, we show how a restructuring technique – called refactoring – can be applied on running systems in order to facilitate future evolutions. We extend the preand post-conditions of the basic refactorings in order to ensure application consistency before and after the restructuring takes place.