{'fraction_non_alphanumeric': 0.014180024660912454, 'fraction_numerical': 0.0, 'mean_word_length': 5.7907949790794975, '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}}
Behavioral customization of state machine models at ESO

For the development of the Extremely Large Telescope, the European Southern Observatory uses state machines to define life cycles and basic behavior of control software components. To provide certain degrees of freedom, the component life cycles need to be customizable, but to remain compatible, they must also conform to specific standard behavior. High customization causes difficulties in maintenance and may also lead to incompatible solutions. On the other hand, the introduction of strict compatibility requirements may increase maintainability but it also make the system less flexible. To avoid spending a significant portion of the Assembly, Integration, and Verification phase in integration hell, finding the right balance between variability and compatibility early enough is important. To address this problem, we have analyzed different variability realization mechanisms with respect to their applicability for the behavioral customization of state machine models. Based on this analysis, an approach has been researched that combines a set of variability realization mechanisms and thereby enables open and step-wise customization, systematic reuse, and separation of concerns. The approach enhances a framework approach with model manipulation capabilities and mixin composition while also supporting conditional compilation and conditional execution. We demonstrate feasibility and soundness of the elaborated approach using a proof of concept implementation that has already been integrated into a real-world project in scope of the ELT program.