Experience Embedded

Professional Training, Consulting and Project Support

Design Patterns Training (not only) for Embedded Systems - Live Online Training

  • Content
     
  • Objectives
     
  • Participants
     
  • Requirements
     

This training shows you under which conditions classic design patterns can be used efficiently even in embedded systems with limited resources.

A selection of the most suitable patterns is presented based on examples typical of embedded systems.

Most of the patterns are developed step by step in complete code examples before being presented in their final abstracted UML representation.

Moreover, as part of this process, solutions are discussed that are often applied but had better be avoided ("Anti Patterns").

This approach facilitates a well-grounded assessment of the memory and/or runtime cost in relation to the benefit of using a design pattern.

This course also highlights new debugging possibilities resulting from the application of design patterns, considerably reducing the development time and improving code quality which is crucial especially in embedded systems.

C++ software developers, software architects

Good knowledge of the programming language C++.

Introduction

  • History
  • What are design patterns?
  • GoF design patterns
  • Typical problems in embedded systems
  • Design patterns in embedded systems

Creational Patterns

  • Example: Motor control application
  • Flexible design based on interfaces
  • Practical exercise: Measuring the memory space and runtime costs of an interface
  • Comparison of static and dynamic polymorphism
  • Example: Position tracking for a goods transport system
  • Reusing the position tracking system for airplanes
  • Position tracking based on the design pattern Abstract Factory
  • Factory generation using the design pattern Singleton

Structural Patterns

  • Example: Motor control application
  • Alternative design based on the design pattern Adapter
  • Workshop exercise: Debugging a counter application
  • Solutions based on the design pattern Decorator
  • Example: Multithread application
  • Identifying the problems of typical solutions
  • Flexible solution based on the design pattern Proxy
  • Protection proxy, virtual proxy, remote proxy
  • Smart reference / smart pointer

Behavioral Patterns

  • Example: Handling timer events
  • Flexible solution based on the design pattern Observer
  • Practical exercise: Using the observer pattern in the elevator control
  • Pitfalls in interface design or implementation
  • "Horizontal" and "vertical" interfaces
  • Event handling based on the design pattern Command
  • Practical exercise: Using the command pattern in the elevator control
  • Example: Traditional implementation of a state machine in C
  • Object-oriented solution based on the design pattern State
  • Practical exercise: Using the state pattern in the elevator control
  • Example: User-defined memory management
  • Partitions and their management using partition managers
  • Flexible memory management based on the design pattern Strategy
  • Practical exercise: Using the strategy pattern in the elevator control
  • Example: Strategies with a common basic structure
  • Implementation based on the design pattern Template Method

More Patterns

  • Design pattern Factory Method
  • Entwurfsmuster Prototype
  • Design pattern Facade
  • Design pattern Composite
  • Design pattern Memento
  • Design pattern Chain of Responsibility
  • Design pattern Flyweight
  • Design pattern Iterator
  • Design pattern Mediator

Practical Exercises in the Design Patterns Training

  • The exercises are performed with IAR Embedded Workbench and the design tool Enterprise Architect

You will acquire the following practical knowledge:

  • How to perform storage space and runtime measurements
  • How to use design patterns to enhance software quality
  • How to use patterns for debug purposes
  • How to develop projects further by using design patterns

The training price includes:
Training documentation, your training certificate and target HW etc. where required.


ALL INCLUSIVE!

Related trainings

Software Architectures for Embedded Systems and Real-Time Systems - Live Online Training
Training code: LE-EMB-AR

Embedded C++: Object-Oriented Programming for Microcontrollers with C++/EC++ and UML - Live Online Training
Training code: LE-EC++

Embedded Software Design and Patterns with C - Live Online Training
Training code: LE-ESD-C


Related trainings

Live-Online-Training

Duration
5 days
Training code: LE-DP
* Price per attendee, in Euro plus VAT

> Registration form download (PDF)
> Training details as PDF

Face-To-Face - English

Duration
5 days  

Live Online - German

Date Duration
10.06. – 14.06.2024 5 days  
18.11. – 22.11.2024 5 days  

Face-To-Face - German

Date Duration
10.06. – 14.06.2024 4.5 days  
18.11. – 22.11.2024 4.5 days  
17.03. – 21.03.2025 4.5 days  

Design Patterns Training (not only) for Embedded Systems - Live Online Training

Content

Introduction

  • History
  • What are design patterns?
  • GoF design patterns
  • Typical problems in embedded systems
  • Design patterns in embedded systems

Creational Patterns

  • Example: Motor control application
  • Flexible design based on interfaces
  • Practical exercise: Measuring the memory space and runtime costs of an interface
  • Comparison of static and dynamic polymorphism
  • Example: Position tracking for a goods transport system
  • Reusing the position tracking system for airplanes
  • Position tracking based on the design pattern Abstract Factory
  • Factory generation using the design pattern Singleton

Structural Patterns

  • Example: Motor control application
  • Alternative design based on the design pattern Adapter
  • Workshop exercise: Debugging a counter application
  • Solutions based on the design pattern Decorator
  • Example: Multithread application
  • Identifying the problems of typical solutions
  • Flexible solution based on the design pattern Proxy
  • Protection proxy, virtual proxy, remote proxy
  • Smart reference / smart pointer

Behavioral Patterns

  • Example: Handling timer events
  • Flexible solution based on the design pattern Observer
  • Practical exercise: Using the observer pattern in the elevator control
  • Pitfalls in interface design or implementation
  • "Horizontal" and "vertical" interfaces
  • Event handling based on the design pattern Command
  • Practical exercise: Using the command pattern in the elevator control
  • Example: Traditional implementation of a state machine in C
  • Object-oriented solution based on the design pattern State
  • Practical exercise: Using the state pattern in the elevator control
  • Example: User-defined memory management
  • Partitions and their management using partition managers
  • Flexible memory management based on the design pattern Strategy
  • Practical exercise: Using the strategy pattern in the elevator control
  • Example: Strategies with a common basic structure
  • Implementation based on the design pattern Template Method

More Patterns

  • Design pattern Factory Method
  • Entwurfsmuster Prototype
  • Design pattern Facade
  • Design pattern Composite
  • Design pattern Memento
  • Design pattern Chain of Responsibility
  • Design pattern Flyweight
  • Design pattern Iterator
  • Design pattern Mediator

Practical Exercises in the Design Patterns Training

  • The exercises are performed with IAR Embedded Workbench and the design tool Enterprise Architect

You will acquire the following practical knowledge:

  • How to perform storage space and runtime measurements
  • How to use design patterns to enhance software quality
  • How to use patterns for debug purposes
  • How to develop projects further by using design patterns