{'fraction_non_alphanumeric': 0.01855287569573284, 'fraction_numerical': 0.0, 'mean_word_length': 5.579268292682927, '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}}
Integrative Levels of Program Comprehension

Integrative levels of program comprehension describe the evolution of our knowledge about a program from low-level program elements through successive and higher orders of knowledge integration. In this paper, we motivate, define, and illustrate integrative levels as a technique to organize the knowledge that we acquire in the course of program maintenance. We differentiate between understanding in extension and understanding in intension. We define five intensional integrative levels of program comprehension, the element level, the percept level, the concept level, the subject level, and the domain level. The intensional units that make up these levels emerge and evolve in an iterative comprehension process that is active at each level. The iterations of this process comprise the four phases of lower level unit organization, unit integration, upper level unit organization, and unit validation. We demonstrate integrative levels of program comprehension using the object-oriented testing framework jUnit as a case study.