{'fraction_non_alphanumeric': 0.017195767195767195, 'fraction_numerical': 0.0, 'mean_word_length': 5.361344537815126, '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}}
Using simulated annealing for producing software architectures

Automatic design of software architecture by use of genetic algorithms has already been shown to be feasible. A natural problem is to augment -- if not replace -- genetic algorithms with some other search method in the process of searching good architectures. The present paper studies the possibilities of simulated annealing in designing software architecture. We start from functional requirements given as a graph of functional responsibilities and consider two quality attributes, modifiability and efficiency. It is concluded that simulated annealing as such does not produce "natural" architectures, but it is useful as a method of producing initial populations for genetic algorithms.