{'fraction_non_alphanumeric': 0.017745302713987474, 'fraction_numerical': 0.0, 'mean_word_length': 5.3933333333333335, '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}}
Hardware-aware model-driven software development

Acquisition of sensor data and generation of actuator control signals are two key properties of embedded systems. It is in the nature of these tasks that their realization is hardware-dependent and involves low level program code that is usually implemented manually. Typical requirements in this context are the actual implementation of device specific protocols and buffering strategies for efficient yet safe hardware access. In this paper, we argue why it is beneficial to consider these low-level components of embedded software in a model-driven development process that at first sight aims at raising the level of abstraction to foster more efficient and correct design and implementation. In particular, we investigate by means of a representative example application how I/O handling (including interrupt processing) can be integrated into a hardware-aware model-driven software development process.