{'fraction_non_alphanumeric': 0.023255813953488372, 'fraction_numerical': 0.0, 'mean_word_length': 6.175925925925926, '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}}
APPLYING PROGRAM DEPENDENCE ANALYSIS TO JAVA SOFTWARE

Understanding program dependences is essential for many software engineering activities including program slicing, testing, debugging, reverse engineering, maintenance, and complexity measurement. This paper presents the software dependence graph for Java (JSDG), which extends previous dependence-based representations, to represent various types of program dependences in Java software. The JSDG consists of a group of dependence graphs which can be used to represent Java methods, classes and their extensions and interactions, interfaces and their extensions, complete programs, and packages respectively. The JSDG can be used as an underlying representation to develop software engineering tools for Java software.