{'fraction_non_alphanumeric': 0.012204424103737605, 'fraction_numerical': 0.0, 'mean_word_length': 5.527363184079602, '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}}
Component-based version management for embedded computing system design

Nowadays, the development of modern computing devices involves a substantial and growing part of software development. A great challenge for engineers is to manage the evolution of a system with several components in the face of mounting complexity due to concurrent hardware and software development. The key limitations of existing version control tools used for a hardware software co-design process include their inadequacy in representing semantics of design models and inability to manage versions of both hardware designs and associated software components in a cohesive manner. Thus, it is difficult to track the logical interdependencies between the changes to hardware and software components in an embedded computing system over time.
 This paper presents an application of a well-known software engineering approach to the management of embedded systems design artifacts. Our novel component-based version management mechanism is capable of capturing and versioning the underlying logical contents of components in system design models and their associated software artifacts in a cohesive manner. This paper also illustrates our approach in creating a versioning system, named EmVC, for a hardware software co-design process.