Design Patterns for Embedded Systems

Print


Who should attend?

This course is primarily designed for developers, architects or technical leads who are responsible for the development of software for embedded and/or realtime systems with limited resources. Despite its focussing on memory and runtime requirements this training is also suitable for developers of applications where resource limitation is not an issue.

Pre-requisites:

A good working knowledge of C++ and a basic understanding of object oriented principles. Knowledge of basic UML (Unified Modeling Language) is useful but not a requirement. With respect to UML diagrams this training teaches everything that is needed in this course.

Duration:

5 days ( including practical exercises )

Course Description:

This course demonstrates under which conditions the classic Design Patterns of the "Gang of Four" (GoF) can profitably be used in resource-constrained embedded systems. It covers a selection of design patterns particularly suited for this purpose, presenting them through hardware-related or other applications typical of embedded systems. The classes and relationships necessary for implementing these design patterns are not only presented conceptually through UML diagrams but are also developed step-by-step using fully programmed code examples. This approach enables a thorough assessment of the costs in terms of memory usage and runtime in relation to the benefits of using a design pattern. Additionally, the examples illustrate how the SOLID principles of modern clean code programming work in conjunction with design patterns and how these contribute to the improvement of the software design quality. The course also addresses the memory and runtime overhead caused by using traditional debugging methods and demonstrates how these issues can be resolved using pattern-based solutions. By doing so, it becomes evident that the use of design patterns not only leads to a better software structure but can also result in a more efficient utilisation of the system resources, which is particularly crucial in embedded systems


Course Outline:

Introduction

Creational Patterns

Structural Patterns

Behavioural Patterns

Practical Exercises