Design Patterns for Embedded Systems


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.


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.


5 days ( including practical exercises )

Course Description:

This course shows under which conditions classical GoF design patterns can profitably be used in resource limited environments. A selection of the most suitable patterns is presented based on examples appropriate for embedded systems. Before the patterns are explained on a UML class diagram level, their characteristics are deduced by a stepwise refinement of concrete code examples which are typical for embedded systems. This approach not only demonstrates the features of the patterns but also allows for a well-grounded assessment of the patterns' cost in relation to their benefits. Another focus of this course is the memory and runtime overhead which is produced by the use of classical debug techniques and how patterns can be used to solve this problem. So, this couse not only shows why design patterns lead to better code quality but also why they are useful especially for embedded systems.

Course Outline:


Creational Patterns

Structural Patterns

Behavioural Patterns

Practical Exercises