{'fraction_non_alphanumeric': 0.02293202293202293, 'fraction_numerical': 0.0, 'mean_word_length': 5.641304347826087, '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}}
Evaluation of Markov Models for Architecture Conformance Checking

Conformance between architecture and implementation is a key aspect of architecture-centric development. However, the architecture “as documented” and the architecture “as implemented” tend to diverge from each other over time. Thus, conformance checks should be run periodically on the system in order to detect and correct differences. Despite having a structural conformance analysis, assessing whether the main scenarios describing the architectural behavior are faithfully implemented in the code is still challenging. Checking conformance to architectural scenarios is usually a time-consuming and error-prone activity. In this article, we describe ArchLearner, a tool to assist architects to bridge the gap between architecture and its implementation. The architecture is specified with Use-Case Maps (UCMs), a notation for modeling both high-level structure and behavior. ArchLearner uses Markov Models to detect code deviations with respect to predetermined UCMs, based on the analysis of system execution traces for those UCMs. The results from two case-studies have shown that ArchLearner is practical and reduces conformance checking efforts.