Schulungsreihe 'Rapid Embedded Software Development' in C++ mit wiederverwendbaren Komponenten
Lernen Sie, wie Sie mit Hilfe moderner objektorientierter Software-Entwicklungsmethoden wiederverwendbare Embedded-Software-Komponenten entwickeln und im Embedded-Umfeld einsetzen. Die größte Herausforderung stellt dabei der richtige Umgang mit den begrenzten Ressourcen (vor allem Speicher) dar.
Wir zeigen Ihnen, wie es mit der richtigen Methodik und durch die effiziente Anwendung der Programmiersprache selbst auf 8-Bit-Mikrocontrollern möglich ist, C++ und wiederverwendbare Software-Komponenten praktisch ohne Overhead gegenüber der Implementierung in C zu nutzen.
Flexibel und individuell
Durch die aufeinander aufbauenden Schulungsblöcke richtet sich diese Schulungsreihe an Software-Entwickler mit ganz unterschiedlichen Vorkenntnissen: Je nach Vorwissen steigen Sie erst später ein.
Bei In-House-Schulungen (in Ihrem Unternehmen) können wir die einzelnen Schulungsthemen auch individuell nach Ihren Bedürfnissen zusammenstellen.
Diese Schulungsreihe wird in der Regel alle 3 bis 4 Monate als öffentliche Schulung veranstaltet: Immer dann wenn genügend Interessenten zusammen gekommen sind (ab 4 Personen). Kontaktieren Sie uns bei Interesse also einfach!
Block 1: Embedded C++ für C-Entwickler (3 Tage)
Dieser Schulungsblock richtet sich an C-Entwickler mit Erfahrung im Embedded-Umfeld.
Sie lernen die syntaktischen Spracherweiterungen von C++ und deren Vorteile im Vergleich mit C kennen, sowie grundlegende Konzepte objektorientierter Softwareentwicklung. Das umfasst z. B. die folgenden Themen:
- Klassen, Attribute, Methoden, Operatoren
- Konzept der Datenkapselung, Sichtbarkeitskonzept
- Konstruktoren und Destruktoren
- Funktions- und Operatorüberladung
- Typkonvertierung
- Zeiger und Referenzen
- Vererbung und Mehrfachvererbung
- Virtuelle Methoden, Polymorphie, abstrakte Klassen
- Templates
- Exceptions
Besonderen Raum nimmt die Effizienzbetrachtung von C++ gegenüber C beim Einsatz auf Embedded-Plattformen ein. Dabei werden insbesondere folgende Themen auf ihren Ressourcenbedarf hin untersucht:
- Statische Methoden
- Inline-Methoden
- Virtuelle Methoden
- Virtuelle Vererbung
Block 2: C++ zur Entwicklung von Embedded-Software (2 Tage)
Dieser Schulungsblock baut auf den 1. Schulungsblock auf und richtet sich gleichermaßen direkt an Entwickler die die Sprache C++ schon kennen aber noch nicht im Embedded-Umfeld eingesetzt haben.
Es wird vermittelt, welche Sprachkonzepte sich für den Einsatz auf Embedded-Plattformen besonders gut eignen und welche eher weniger. Unter anderem werden dabei folgende Themen ausführlich beleuchtet:
- Dynamische Speicherallokierung
- Verwendung von Exceptions
- Virtuelle Methoden
- Verwendung von Templates
- Ressourcenoptimierung durch Verwendung von statischer vs. dynamischer Polymorphie
Es werden einige exemplarische Untersuchungen zur Laufzeiteffizienz und zum Speicherplatzbedarf angestellt, um ein Gefühl für die "Ressourcen-Kosten" zu vermitteln. Die Ergebnisse werden größtenteils anhand von praktischen Übungen gemeinsam erarbeitet.
Block 3:
Rapid Embedded Software Development in C++ mit wiederverwendbaren Komponenten (5 Tage)
Dieser Schulungsblock schließt sich an den Schulungsblock 2 an, richtet sich allerdings auch direkt an C++-Entwickler die bereits Erfahrungen mit dieser Sprache im Embedded-Umfeld gesammelt haben und nun den Ansatz im Detail kennen lernen möchten, wie wiederverwendbare Software-Bausteine zur Entwicklung von Embedded-Anwendungen genutzt werden können.
Hier ein Themenauszug:
- Grundlagen der UML-Notation
- Nützliche Design-Patterns für Embedded Anwendungen
- Bausteine finden: Zergliederung von Funktionalität in Software-Komponenten und die Identifikation sauberer Schnittstellen
- Bausteine testen: Unit-Tests gewinnbringend nutzen, um die Software-Qualität zu steigern
- Bausteine zusammensetzen: Software-Komponenten richtig konfigurieren, zusammensetzen und die nötigte Glue-Logic implementieren
- Beispiele für generische Embedded-Komponenten aus dem Embedded-Software-Baukasten redBlocks.
- Best-Practices bei der Entwicklung von domänen- und plattformspezifischen Embedded-Software-Komponenten (z. B. Anwendungsbausteine, Treiber)
Auch in diesem Schulungsblock wird großer Wert darauf gelegt, die vermittelten Erkenntnisse im Rahmen von Übungen gemeinsam zu erarbeiten.








