{'fraction_non_alphanumeric': 0.017064846416382253, 'fraction_numerical': 0.0034129692832764505, 'mean_word_length': 5.850467289719626, '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}}
Metaphorical representation in collaborative software engineering

Finding a useful abstract representation is fundamental to solving many difficult problems in software engineering. In order to better understand how representations are actually used in key collaborative software engineering tasks, this empirical study examined all of the spoken representations of software behavior in 9 domain analysis sessions. It found that about 70% of them were metaphorical, representing system behavior as physical movement of objects, as perceptual processes, or in anthropomorphic terms ascribing beliefs and desires to the system. The pattern of use of these representations indicates 1) that they were not merely temporary placeholders, but rather their use persisted even when a specialized and more formal vocabulary had been developed, and 2) the metaphoric descriptions appear to reflect actual use of metaphor, rather than just a choice of vocabulary. The use of metaphor is explained in terms of how well they serve human cognitive abilities and collaborative needs. The predominance of metaphorical representations in synchronous collaborative sessions raises important issues about the possible misleading effects of metaphorical thinking. It also raises questions about the compatibility of the spoken representations with other representations (e.g., diagrams, specification languages) that trigger, and capture the results of, the verbal collaborative work.