Zum Hauptinhalt springen

Design Patterns für Embedded Systeme

Zielgruppe

Softwareentwickler/innen, Softwarearchitekt/innen oder Projektleiter/innen, die objektorientierte Embedded-Anwendungen entwerfen oder deren Qualität verbessern wollen.

Voraussetzungen

Grundlagen der objektorientierten Programmierung, sowie gute Kenntnisse der Programmiersprache C++, wie sie z.B. der Kurs „Objektorientierte Embedded-Programmierung mit C++“ vermittelt. Kenntnisse der neueren Sprachstandards (ab C++11) sind NICHT erforderlich!

Erfahrung mit UML-Klassendiagrammen ist vorteilhaft, wird aber NICHT vorausgesetzt, da dieser Kurs auch die dafür notwendigen UML-Kenntnisse vermittelt!

Dauer

5 Tage mit praktischen Übungen bzw. 2 x 3 Tage mit mehr Zeit für die Durchführung der Designübungen. Auf Wunsch kann dieser Kurs auch als 3-tägiger Kompaktkurs mit praktischen Übungen, aber weniger Patterns durchgeführt werden. Der Abschnitt „Kursinhalt“ beschreibt die 5- bzw. 6-tägige Vollversion. (Inhalt der Kompaktversion auf Anfrage).

Kursziel

Dieser Kurs zeigt, unter welchen Bedingungen die klassischen Design Patterns der „Gang of Four“ (GoF) auch in ressourcelimitierten Embedded-Systemen gewinnbringend eingesetzt werden können. Es wird eine Auswahl von Entwurfsmustern behandelt, die für diesen Zweck besonders geeignet sind. Diese Patterns werden anhand von hardwarenahen oder anderen, für Embedded-Systeme typische Anwendungen vorgestellt. Dabei werden die für die Realisierung dieser Entwurfsmuster notwendigen Klassen und ihre Beziehungen nicht nur prinzipiell auf der Ebene von UML-Diagrammen, sondern anhand von vollständig ausprogrammierten Codebeispielen schrittweise entwickelt. Auf dieser Grundlage wird eine fundierte Beurteilung der Kosten in Bezug auf Speicherplatz und Laufzeit im Verhältnis zum Nutzen durch die Verwendung eines Entwurfsmusters ermöglicht. Unabhängig davon zeigen die Beispiele aber auch, wie die SOLID-Prinzipien der modernen Clean-Code-Programmierung mit den Design Patterns zusammenarbeiten und wie diese zur Qualitätssteigerung des Softwareentwurfs beitragen. Schließlich geht der Kurs auch auf den Speicherplatz- und Laufzeit-Overhead ein, der durch die Verwendung von klassischen Debugmethoden entsteht, und zeigt, wie diese Probleme patternbasiert gelöst werden können. Dadurch wird deutlich, dass die Verwendung von Entwurfsmustern nicht nur zu einer besseren Softwarestruktur, sondern auch zu einem effizienteren Umgang mit den Systemressourcen führen kann, was gerade in Embedded-Systemen besonders wichtig ist.


Inhalt

Einführung

  • Geschichtliche Entwicklung
  • Was ist ein Design Pattern?
  • GoF Design Patterns
  • Typische Probleme in Embedded Systemen
  • Design Patterns in Embedded Systemen

Erzeugungsmuster

  • Beispiel: Motor
  • Interfaces
  • Beispiel: Positionsanzeige für ein Warentransportsystem
  • Wiederverwendung für Flugzeugpositionsanzeige
  • Design Pattern Fabrikmethode
  • Design Pattern Prototyp
  • Design Pattern Abstrakte Fabrik
  • Design Pattern Singleton

Strukturmuster

  • Neue Lösung für Motorbeispiel
  • Design Pattern Adapter
  • Beispiel: Counter-Klassen
  • Design Pattern Dekorierer
  • Multithreading-Beispiel
  • Design Pattern Proxy
  • Design Pattern Fliegengewicht
  • Design Pattern Fassade
  • Design Pattern Kompositum

Verhaltensmuster

  • Beispiel: Timer
  • Design Pattern Beobachter
  • Design Pattern Befehl
  • Beispiel: Zustandsautomat
  • Traditionelle Implementierung in C
  • Portierung nach C++
  • Design Pattern Zustand
  • Beispiel: Benutzerdefinierte Speicherverwaltung
  • Partition und PatitionManager
  • Flexible Speicherverwaltung mithilfe unterschiedlicher Manager
  • Dynamisch änderbare Speicherzuteilungsstrategie
  • Design Pattern Strategie
  • Algorithmus mit festgelegter Struktur
  • Design Pattern Schablonenmethode
  • Design Pattern Memento
  • Design Pattern Zuständigkeitskette
  • Design Pattern Iterator
  • Design Pattern Vermittler

Praktische Übungen

Setzten Sie das Gelernte direkt in die Praxis um.

Der Kursinhalt entspricht nicht ganz dem, was Sie suchen?


Das sagen Kunden:

"Didaktisch gut aufbereitet, absolut sicher in der Ausführung!"
"Hervorragende Kursleitung!"
"Angenehm ruhig, kompetent, offen für Fragen."
"Sehr gut fand ich die Erklärung der Hintergründe."
"Mit 'Design Patterns für Embedded Systeme' hat Herr Nieratschker ein sehr lehrreiches, interaktives und spannendes Training entwickelt. Durch die aufeinander aufbauenden Rätselfragen fühlt sich der Kurs an, wie eine gedankliche Schnitzeljagd: der Da Vinci Code für Programmierer."
"Noch nie einen so perfekt strukturierten Kurs besucht!!! SKT++."
"Gute bildliche Erklärungen, viel Geduld bei praktischen Anwendungen."
"Ein Muss für jeden objektorientierten Programmierer!"
"Sehr guter Ansatz zum Herleiten der Patterns."
"Alle Teilnehmer wurden 'abgeholt', da der Wissensstand sehr unterschiedlich ist."
"Hat mich richtig vorwärts gebracht."
"Sehr gute, praxisnahe Beispiele."
"Der Dozent beherrscht es, die Kursteilnehmer mitzunehmen."
"Komplexe Themen super verständlich hergeleitet."
"Knowledge of the instructor far above the trained theme!"
"The thing I liked most was the instructor's teaching skills!"
"The things I liked most were the teacher's clarity both in presentation and spoken English."
"Examples from real world, not like e.g. wikipedia."
"We were 'forced' to think ... Our attention was up all the time, which was great."
"What I liked in particular was the deep knowledge of the instructor and the sense of humor."
"What I liked in particular was the way we discovered patterns."
"Didaktisch gut aufbereitet, absolut sicher in der Ausführung!"
"Hervorragende Kursleitung!"
"Angenehm ruhig, kompetent, offen für Fragen."
"Sehr gut fand ich die Erklärung der Hintergründe."
"Mit 'Design Patterns für Embedded Systeme' hat Herr Nieratschker ein sehr lehrreiches, interaktives und spannendes Training entwickelt. Durch die aufeinander aufbauenden Rätselfragen fühlt sich der Kurs an, wie eine gedankliche Schnitzeljagd: der Da Vinci Code für Programmierer."
"Noch nie einen so perfekt strukturierten Kurs besucht!!! SKT++."
"Gute bildliche Erklärungen, viel Geduld bei praktischen Anwendungen."
"Ein Muss für jeden objektorientierten Programmierer!"
"Sehr guter Ansatz zum Herleiten der Patterns."
"Alle Teilnehmer wurden 'abgeholt', da der Wissensstand sehr unterschiedlich ist."
"Hat mich richtig vorwärts gebracht."
"Sehr gute, praxisnahe Beispiele."
"Der Dozent beherrscht es, die Kursteilnehmer mitzunehmen."
"Komplexe Themen super verständlich hergeleitet."
"Knowledge of the instructor far above the trained theme!"
"The thing I liked most was the instructor's teaching skills!"
"The things I liked most were the teacher's clarity both in presentation and spoken English."
"Examples from real world, not like e.g. wikipedia."
"We were 'forced' to think ... Our attention was up all the time, which was great."
"What I liked in particular was the deep knowledge of the instructor and the sense of humor."
"What I liked in particular was the way we discovered patterns."

SKT Nieratschker · Karl Nieratschker · Joseph-Maria-Lutz-Str. 7 · D-85293 Reichertshausen · Tel. +49 (0) 8441 490210 · office@skt-nieratschker.com