Experience Embedded

Professional Training, Consulting and Project Support

Design Patterns Training (not only) for Embedded Systems - Face-to-Face 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.

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:
Lunch, drinks, training documentation and your training certificate.


ALL INCLUSIVE!

Related trainings

Software Architectures for Embedded Systems and Real-Time Systems - Face-to-Face Training
Training code: E-EMB-AR

UML Training: UML Basics and Introduction to Model-Based Software Development - Face-to-Face Training
Training code: E-UML-G

C++ Training: Object-Oriented Programming with C++ - Face-to-Face Training
Training code: E-C++

Embedded C++: Object-Oriented Programming for Microcontrollers with C++/EC++ and UML - Face-to-Face Training
Training code: E-EC++

Embedded Software Design and Patterns with C - Face-to-Face Training
Training code: E-ESD-C


Related trainings

FACE-TO-FACE TRAINING

Price *Duration
3.000,00 €5 days
Training code: E-DP
* Price per attendee, in Euro plus VAT
> Registration form download (PDF)> Training details as PDF

Onsite Training

Our customized workshops integrate your specific project tasks in our training content and accommodate your requirements on content, time, location, duration, technical environment and knowledge transfer methodology.

Please contact us for further information or an individual quotation.

> Training details as PDF

Live Online - English

Duration
5 days  

Face-To-Face - German

Date Duration
27.03. – 31.03.2023 5 days  
12.06. – 16.06.2023 5 days  
04.09. – 08.09.2023 5 days  
20.11. – 24.11.2023 5 days  
19.02. – 23.02.2024 5 days  

Live Online - German

Date Duration
27.03. – 31.03.2023 5 days  
12.06. – 16.06.2023 5 days  
04.09. – 08.09.2023 5 days  
20.11. – 24.11.2023 5 days  
19.02. – 23.02.2024 5 days  

Coaching

Our coaching services offer a major advantage: our specialists introduce their expertise and experience directly in your solution process, thus contributing to the success of your projects.

We will be happy to provide you with further information or submit a quotation tailored to your requirements.

Design Patterns Training (not only) for Embedded Systems - Face-to-Face 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