{'fraction_non_alphanumeric': 0.019462465245597776, 'fraction_numerical': 0.0, 'mean_word_length': 5.368731563421829, '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': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Development and assessment of a tool to support pattern-based code generation of time-triggered (TT) embedded systems

This thesis is concerned with embedded systems which employ time-triggered software architectures and for which there are both severe resource constraints and a requirement for highly-predictable behaviour. The thesis discusses design patterns and their benefits to software development and reviews a pattern language (the PTTES collection) previously assembled to support the development of time-triggered embedded systems. As embedded systems become ever more complex and in many cases take on an increasing role in safety, it is widely recognised that developers require tools and techniques that support the ‘automatic’ generation of such designs. This thesis makes a novel contribution to the field of pattern-based automated code generation and illustrates the capabilities of this approach in the development of reliable time-triggered embedded systems. Specifically, the approach described in this thesis addresses a key limitation of previous work in this area, namely the challenge of implementing the ‘one pattern, many implementations’ relationship. Furthermore, unlike previous pattern tools, the approach described in this thesis is based on a substantial pattern language: this paves the way for the generation of coherent application code from groups of related patterns. To test the above ideas, the thesis describes PTTES Builder, a pattern-based code generation tool based on the PTTES collection. In an empirical study, the effectiveness of the PTTES Builder approach is compared with an equivalent ‘manual’ approach. The results obtained demonstrate that time-triggered embedded systems can be created using this approach. There is also some evidence that the use of the tool is likely to lead to improved code reliability and quality. In a second study discussed in the thesis, there are indications that the approach implemented by PTTES Builder is robust enough to support the evolution of its underlying pattern collection. The thesis concludes by making a number of suggestions for future extensions to this work.