{'fraction_non_alphanumeric': 0.017741935483870968, 'fraction_numerical': 0.0, 'mean_word_length': 5.088235294117647, '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}}
Software engineering knowledge for software reuse

The types of knowledge that are brought to bear at every stage of the software development life cycle are identified. However, some knowledge, though used, is lost when it is not captured explicitly or embedded within a software artifact. The knowledge encoded in a software artifact as software concepts can be reused. A model is proposed to illustrate the various dimensions of software reuse, namely component granularity, component origin and abstraction levels. This model is related to software reuse in CASE tools, and the degree of knowledge reuse is indicated.