{'fraction_non_alphanumeric': 0.014833127317676144, 'fraction_numerical': 0.0, 'mean_word_length': 5.230769230769231, '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}}
Gadget: A Tool for Extracting the Dynamic Structure of Java Programs

Source code analysis and inspection does not provide enough information to describe the structure of an objectoriented program completely because there are components and relations that only exist during its runtime. This paper presents a tool, called Gadget, that helps software engineers extract the dynamic structure of objectoriented programs written in the Java programming language. The tool uses program profiling, filtering, and graph clustering techniques. In this work we show how Gadget is used to analyze a standard graphical user interface library for Java, called Swing. This library has a complex structure, part of which we expose using data gathered by Gadget during the execution of a simple Java program that uses Swing.