Embedded C++: Objektorientierte Programmierung für Mikrocontroller mit C++/EC++ und UML
Vor Ort
Online
Inhouse
StandorteMünchen, Online
Dauer32 Stunden
SpracheDeutsch
Kurstermine 3 Startdaten
Preis ab 3.094,00 € inkl. MwSt.
Beschreibung
- Sie kennen nach dem EC++ Workshop die Möglichkeiten, die ein objektorientierter Ansatz bietet, um auch in der Embedded-Welt in kürzerer Zeit qualitativ hochwertige Software zu entwickeln.
- Der vermittelte Überblick über den gesamten Entwicklungsprozess von Embedded-Realtime-Systemen - Software-Analyse, Software-Design, Software-Implementierung und Unit-Test - gibt Ihnen das Rüstzeug, um Projekte mit EC++ zu erstellen.
- Sie wissen, wie Sie das Design von Software-Systemen mithilfe der UML und der Implementierung in der Programmiersprache C++ gestalten.
- Damit verfügen Sie über die Wissensbasis zur Erfüllung besonderer Anforderungen an die Software-Qualität von Embedded-Systemen, z.B. im Hinblick auf Laufzeit und Codeeffizienz.
- Ferner vermeiden Sie mithilfe von Programmierrichtlinien, z.B. dem MISRA-C++ Standard, frühzeitig Programmierfehler.
- Sie entwickeln mit modernen objektorientierten Techniken qualitativ hochwertige und komplexe Softwaresysteme und sparen dabei Zeit und Geld.
Inhalte
- Einführung in die objektorientierte Begriffswelt
- Klasse und Objekt
- Attribut, Operation, Methode
- Kapselung
- Relation (Beziehung) zwischen Klassen
- Nutzen und Vorteile der objektorientierten Softwareentwicklung
- Demonstration des objektorientierten Ansatzes an einem Hardwaretreiber-Beispiel
- Objektorientiertes Programmieren in C
- Klassen, Attribute, Operationen und Objekte
- Möglichkeiten der Kapselung in C
- Assoziation, Aggregation, Komposition und Vererbung
- Praxistipps mit bewährten Umsetzungsmöglichkeiten
- Einführung in die Programmiersprache C++ (EC++)
- Migration von objektorientierter Programmierung mit C zu C++/EC++
- Klasse, Attribute, Operationen und Objekte
- Möglichkeiten der Kapselung in C++
- Konstruktoren, Destruktor, Überladen
- Modifizierer für Daten, Operationen und Objekte
- Speichermanagement für Objekte
- Objekt-Initialisierung
- Namespaces
- Templates
- C++ New Style Casts
- Weitere C++ spezifische Mechanismen und Konstrukte
- Assembleranalysen von C++ Konstrukten
- Speicher- und laufzeitorientierte Einschätzung und Optimierung
- Vergleich zu C
- Verbesserung von Qualitätsmerkmalen wie Wartbarkeit und Wiederverwendbarkeit
- Risiken erkennen, Stolpersteine vermeiden
- Übung: Sie implementieren, instanziieren und testen eine Klasse
- Relationen zwischen Klassen und deren Programmierung mit C++
- Assoziation
- Aggregation
- Komposition
- Vererbung
- Dependency
- Richtige Relationsauswahl im Design treffen
- Varianten der Implementierung mit C++
- Assembleranalysen von C++ Konstrukten
- Speicher- und laufzeitorientierte Einschätzung und Optimierung
- Verbesserung von Qualitätsmerkmalen wie Wartbarkeit und Wiederverwendbarkeit
- Übung: Sie implementieren die Relationen Assoziation, Vererbung und Komposition in der Applikation und bei der Anwendung des Builder-Patterns
- Virtuelle Methoden und Interfaces mit C++
- Überschreiben von Funktionen / Operationen
- Dynamische (späte) Bindung
- Rein virtuelle Funktionen/ Operationen
- Polymorphismus
- Von der abstrakten Klasse zur Interface-Klasse
- Software-Architektur mit Interfaces
- Nutzen, Vorteile und Nachteile von Interface-Klassen
- Implementierung mit C++
- Assembleranalysen von C++ Konstrukten
- Speicher- und laufzeitorientierte Einschätzung und Optimierung
- Verbesserung von Qualitätsmerkmalen wie Wartbarkeit und Wiederverwendbarkeit
- Übung: Sie programmieren eine Interface-Klasse mit rein virtuellen Funktionen, implementieren diese und greifen darauf zu
- C++ Klassenbibliotheken
- Statische versus dynamische Klassenbibliotheken
- Erzeugung und Einbindung von Klassenbibliotheken
- Vor- und Nachteile bei der Verwendung in Embedded-Software
- Demonstration eines Beispiels
- Zustandsautomaten mit C++
- Prinzipielle Möglichkeiten der Implementierung
- Vorstellung der Tabellen-basierten Abarbeitung von Zustandsautomaten
- State-Pattern und objektorientiertes State-Pattern
- Demonstration eines Beispiels
- Callback-Strukturen
- Typische Embedded-SW-Architekturen und deren Darstellung (Schichtenmodell, Interfaces)
- Architekturrichtlinien
- Kommunikationsmöglichkeiten zwischen Architekturelementen
- Objektorientiere Callback-Strukturen mit Callback-Objekten
- Demonstration eines Beispiels
- Übung: Sie programmieren eine Callback-Struktur mit Callback-Objekt-Registrierung in der Übungsapplikation
- Hardwaretreiber und Interrupts mit C++
- Treiber- und Interrupt-Richtlinien
- Hardwaretreiber mit Peripherie-Registerzugriff objektorientiert in C++
- Interrupt-Konzepte und Interrupt-Service Routinen objektorientiert mit C++
- Verbesserung von Qualitätsmerkmalen wie Wartbarkeit und Wiederverwendbarkeit
- Übung: Sie wenden einen objektorientierten Timer-Treiber zusammen mit einem Timer-Interrupt in Ihrer Übungsapplikation an
- Übersicht Embedded-Software-Test
- Software-Implementierung und -Test
- Testprozess
- Checkliste zum Test objektorientierter Software
- Demonstration eines Beispiels mit GoogleTest™
- Grundlegende Notationen mit der UML (Unified Modeling Language)
- Darstellung von Klassen, Objekten und Relationen mit der UML
- Use-Case-, Sequenz-, Aktivitäten- und Zustandsfolge-Diagramm
- Demonstration der Übung im UML-Modell - Aspekt: Diagramme
- Von der Projektplanung bis zur Implementierung
- Software-Entwicklungsprozess
- Qualität von Embedded-Softwaresystemen
- Praxisgerechte Modellierung einer Embedded-Applikation mit der UML
- Demonstration der Übung im UML-Modell - Aspekt: Modellentstehung und Aufbau
- Ausblicke
- Historie und Weiterentwicklung von C++
- Übersicht zu fortgeschrittenen C++ Mechanismen
- Embedded- und generische C++ Codierrichtlinien
- Interessante Internet-Links
- C++ Idiome
- Clean Code Development
- Praktische Übungen im Workshop
- Für die durchgängige Übung (Uhrenapplikation) verwenden Sie das Arm Keil MDK (Microcontroller Development Kit) zusammen mit einer realen Hardware basierend auf einem Arm Cortex® M3 oder M7 Mikrocontroller bzw. einem entsprechenden Simulator. Die Übung besteht sowohl aus dem Programmcode als auch dem zugehörigen UML-Modell.
- MicroConsult Plus:
- Sie erhalten von uns Ihre Übungsverzeichnisse und Lösungsbeispiele für alle Übungsaufgaben.
- Sie bekommen alle C- und C++ Beispiele in elektronischer Form und können diese sehr einfach für Ihr Entwicklungsenvironment anpassen.
- Sie erhalten zudem eine Tool- und Software-Komponentenübersicht für die Entwicklung von Embedded-Software.
- Sie bekommen hilfreiche Notationsübersichten für UML (Unified Modeling Language) und SysML (Systems Modeling Language).
Zielgruppe
- Der EC++ Kurs richtet sich an Programmierer, Software-Entwickler, Software-Designer und Software-Architekten, die C++ für Embedded-Softwareapplikationen unter Verwendung objektorientierter Konzepte einsetzen.
Voraussetzungen
- Sie sollten über solide C-Programmierkenntnisse verfügen; Mikrocontroller-Grundkenntnisse sind von Vorteil.
Zertifikate
Unterschriebenes Teilnahmezertifikat
Weitere Infos
Haben Sie Fragen zu diesem Kurs? Füllen Sie das folgende Formular aus und wir melden uns bei Ihnen.
Kostenlose Beratung
Sichere Anfrage
Geprüfter Anbieter
Über den Anbieter

MicroConsult Academy GmbH
Ein zertifizierter Anbieter für qualitativ hochwertige Kurse und Schulungen.
Mehr über MicroConsult Academy GmbH