Embedded C++: Objektorientierte Programmierung für Mikrocontroller mit C++/EC++ und UML - Seminar / Kurs von MicroConsult GmbH

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:

  • Als Teilnehmer haben Sie die folgenden Möglichkeiten, um Ihre Übungen und die von MicroConsult entwickelten Lösungen aus dem Workshop mitzunehmen:
  • Sie nehmen die Dateien direkt auf einem von MicroConsult bereitgestellten kostenfreien USB-Stick mit, oder …
  • Sie senden sich die Dateien selbst per E-Mail zu, oder …
  • Sie erhalten auf Anfrage Zugriff auf die Dateien per Download.
  • 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) im A3 Format.

Einführung in die objektorientierte Begriffswelt

  • Klasse und Objekt
  • Attribut, Operation, Methode
  • Kapselung
  • Relation (Beziehung) zwischen Klassen
  • Nutzen und Vorteile der objektorientierten Softwareentwicklun ...
Mehr Informationen >>

Lernziele

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.

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 vermitt ...

Mehr Informationen >>

Zielgruppen

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.
Der EC++ Kurs richtet sich an Programmierer, Software-Entwickler, Software-Designer und Software-Architekten, die C++ für Embedded-Softwareapplikationen unter Verwendung objektorientierter Konzepte e ... Mehr Informationen >>

Termine und Orte

SG-Seminar-Nr.: 6685463

Anbieter-Seminar-Nr.: EC++

Termine

  • 17.04.2023 - 20.04.2023

    München, DE

  • 19.06.2023 - 22.06.2023

    München, DE

  • 22.01.2024 - 25.01.2024

    München, DE

Durchführung garantiert

Seminare mit Termin haben Plätze verfügbar. Rechnung erfolgt durch Veranstalter. Für MwSt. Angabe auf den Termin klicken.

Jetzt buchen ›
Seminar merken ›

Semigator berücksichtigt

  • Frühbucher-Preise
  • Last-Minute-Preise
  • Gruppenkonditionen

und verfügt über Sonderkonditionen mit einigen Anbietern.

Der Anbieter ist für den Inhalt verantwortlich.

Veranstaltungsinformation

  • Seminar / Kurs
  • Deutsch
    • Zertifikat
  • 32 h
  •  
  • Anbieterbewertung (27)

Ihre Vorteile mehr erfahren

  • Anbietervergleich von über 1.500 Seminaranbietern
  • Vollständige Veranstaltungsinformationen
  • Schnellbuchung
  • Persönlicher Service