{'fraction_non_alphanumeric': 0.017826825127334467, 'fraction_numerical': 0.005942275042444821, 'mean_word_length': 5.205263157894737, '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}}
Understanding the Behavior of Java Programs

To fully understand the underlying architecture of an object oriented software system, both static and dynamic analyses are needed. Dynamic reverse engineering techniques are especially important for understanding the run-time behavior of objects in a distributed object systems and in systems that rely heavily on polymorphism. Shimba, a prototype reverse engineering environment, has been built to support understanding of an existing Java software system. The dynamic event trace information is generated automatically as a result of running the target system under a customized sdk debugger and viewed as scenario diagrams using the SCED tool (K. Koskimies et al., 1998). In SCED, state diagrams can be synthesized automatically from scenario diagrams. This facility is used to visualize the total behavior of a selected object or method, disconnected from the rest of the system. The paper demonstrates how Shimba aids understanding of the behavior of Java programs. A case study is made to validate the usefulness of the approach. The system under investigation is the FUJABA environment, consisting of almost 700 Java classes.