{'fraction_non_alphanumeric': 0.013975155279503106, 'fraction_numerical': 0.0, 'mean_word_length': 4.863636363636363, '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}}
State model extraction of a software component by observing its behavior

We propose a novel black-box approach to reverse engineer the state model of a software component. We assume that in different states of a component, different subsets of its services are supported and state of a component may change due to invocation of its services. Therefore, we construct the state model of a component by tracking the changes (if any) to its supported services that occur after accessing its services. Case study carried out by us shows that our approach can generate the state model with sufficient accuracy and completeness for simple components.