Schulung: ‚Software-Architektur und Design-Patterns für Embedded-Systeme‘

Die Schulung richtet ihr Augenmerk auf die Besonderheiten des Software-Designs für Embedded-Systeme. Neben UML-Grundlagen wird intensiv betrachtet, welchen Einfluss ein sauberes Software-Design auf den Ressourcenverbrauch haben kann. Anhand zahlreicher Beispiele wird gezeigt, dass ein modulares Design – richtig umgesetzt – keinen Overhead gegenüber monolithischen Lösungen bedeuten muss, so dass selbst auf ressourcenarmen Plattformen nichts gegen einen modernen objektorientierten Designansatz und dessen Umsetzung mit C++ spricht. Das dafür benötigte Konzept der statischen Polymorphie bietet maximale Flexibilität und Konfigurierbarkeit von Softwaremodulen ohne jeglichen Overhead.

Im Rahmen der Schulung wird das Konzept der statischen Polymorphie auf Design-Ebene vorgestellt und dessen Unterschied zur dynamischen Polymorphie vermittelt. Mit Hilfe einer geeignet erweiterten UML-Notation lässt sich statische Polymorphie bereits im Software-Design mittels Klassendiagrammen konsistent beschreiben. In diesem Zusammenhang lernen die Teilnehmer ein für jedermann verständliches Verfahren kennen, um dynamische in statische Polymorphie zu transformieren und umgekehrt.

Ausgerüstet mit diesen Grundlagen werden ausgewählte GoF-Design-Patterns anhand von realistischen Beispielen aus Embedded-Anwendungen vermittelt. Jedes Pattern wird hinsichtlich möglichen Overheads gegenüber einer monolithischen Lösung untersucht und es wird ggf. Optimierungspotential aufgezeigt.

Die Schulung kann je nach Themenauswahl und Vorkenntnissen der Teilnehmer wahlweise als drei- oder viertägige In-House-Veranstaltung durchgeführt werden. Dabei lassen sich ausgehend von der folgenden Inhaltsübersicht individuelle Schwerpunkte setzen:

  • Wiederholung bzw. Einführung in die UML-Notation für folgende Diagrammarten:
    • Klassendiagramme inkl. Einführung einer Notation zur Repräsentation von C++-Templates mittels UML
    • Sequenzdiagramme
    • Aktivitätsdiagramme
    • Zustandsdiagramme
  • Software-Architekturgrundsätze für die optimale Wartbarkeit und Testbarkeit von Software
  • Wiederverwendungsmechanismen: Komposition, Aggregation, Vererbung, ihre Umsetzung in C++ sowie deren Ressourcenbedarf
  • Konzept der Polymorphie und Vergleich statische / dynamische Polymorphie
  • Erläuterung von ausgewählten GoF-Design-Patterns anhand realistischer Fallbeispiele aus Embedded-Anwendungen, z. B.:
    • Abstract Factory
    • Factory Method
    • Adapter
    • Decorator
    • Proxy
    • Chain of Responsibility
    • Strategy
    • Template Method
    • State

Das vermittelte Wissen wird durch praktische Übungen vertieft. Dabei kann das in Ihrem Unternehmen eingesetzte UML-Werkzeug verwendet werden.