Embedded-Software-Design und Patterns mit C (Seminar)
Datum:
20.07.2026 - 23.07.2026
Veranstaltungsort:
München, MicroConsult
Beschreibung:
MicroConsult Academy GmbH
Die heutigen Embedded-Systeme mit komplexen Mikrocontroller- und Prozessorarchitekturen enthalten immer mehr Software, die aber in immer kürzerer Zeit geplant und realisiert werden muss. Immer mehr Systemfunktionalität verlagert sich in die Software. In der Konsequenz muss die Software aus Architektur und Design entstehen. Die VHIT- (vom Hirn ins Terminal) Methode ist längst nicht mehr anwendbar. Stattdessen wenden Sie erfolgreiche Methoden für das Software-Design mit C-Programmierung an. Häufig sind Vorgaben zu erfüllen, in denen Normen und sicherheitskritische Aspekte berücksichtigt werden müssen. Echtzeitfähigkeit, Wiederverwendbarkeit, Anpassbarkeit an veränderte Rahmenbedingungen und leichte Lesbarkeit der Software spielen eine immer größere Rolle.
Inhalt
Themeneinleitung Embedded-Software-Design
Definition Software-Design
Einordnung in den gesamten Entwicklungsprozess
Die Rolle des Software-Designers
Objektorientierung in C
Klassen und Objekte
Relationen: Dependency, Assoziation, Aggregation, Komposition, Vererbung
Interfaces und virtuelle Funktionen
Übung: Sie designen und implementieren Klassen sowie Objekte mit verschiedenen Relationen, führen diese auf einem Embedded-Target aus und testen sie. Mit jeder Übung wächst Schritt für Schritt eine Messgeräte-Applikation.
Ausgewählte Design-Prinzipien mit C umgesetzt
DRY, KISS, Vorsicht vor Optimierungen
SLA, SRP, Dependency Inversion
Prinzip der geringsten Überraschungen
Open/Closed-Prinzip, Law of Demeter, YAGNI
Source-Code-Konventionen, MISRA
Ausgewählte Design Patterns
Softwarearchitektur-Pattern: Layer, Blackboard, Pipes and Filters, Client Server, Model View Controller (MVC), Microkernel .
Softwaredesign-Pattern: Builder/Manager, Facade, Strategy
Hardwarezugriff-Pattern: HW Proxy, HW Adapter, Mediator, Observer, Debouncing, Interrupt, Polling
Safety and Reliability One's Complement, CRC, Smart Data, Channel, Protected Single Channel, Multi-Channel (Dual, Triple), Sanity Check, Monitor Actuator
Übung: Sie wenden in der Messgeräte-Applikation die o.a. Pattern teilweise an
Zustandsautomaten
Entwurf
Implementierungsvarianten: Switch-Case, Tabelle, State-Pattern
Übung: Sie designen und implementieren den objektorientierten Zustandsautomaten der Messgeräte-Applikation
Betriebssystem
Mechanismen in der Übersicht: Task-Management, Scheduler, Synchronisation, Kommunikation, Ressourcen-Managament, Zeit-Management, Interrupt-Management, Speichermanagement
Praxisbeispiel: Anwendungen der Mechanismen in der Messgeräte-Applikation
Callback Strukturen
Kommunikation zwischen Architekturelementen
Designregeln
Synchron, asynchron
Callback-Struktur prozedural und objektorientiert
Callback-Struktur mit und ohne Betriebssystem
Variationsmöglichkeiten
Qualitativ hochwertige Software-Architektur mit Callback-Strukturen
Übung: Sie designen und implementieren eine objektorientierte Callback-Struktur in der Messgeräte-Applikation.
Hardware-Treiberkonzepte und Interrupts
Architekturrichtlinien
Software Layer Pattern
Praxisbeispiele von Softwareschichten-Architekturen
Objektorientierte Treiberkonzepte
Interrupt-Handling
Praxistipps: Standards und Quellen zu Treiberkonzepten Übung: Sie designen und implementieren einen Treiber und den dazugehörigen Treiberzugriff in der Messgeräte-Applikation.
Ausgewählte Refactorings in C
Randbedingungen für erfolgreiches Refactoring
Kleine und große Schritte
Smells
Refactoring Patterns
Praktische Übungen
Für die durchgängige Übung (Messgeräte-Applikation) verwenden Sie das ARM Keil MDK (Microcontroller Development Kit) zusammen mit einer realen Hardware, basierend auf einem ARM CortexTM M3 Mikrocontroller.
MicroConsult Plus
Sie erhalten Ihre Übungen und die Lösungen aus dem Workshop per Download.
Sie erhalten alle C-Beispiele und UML-Modelle in elektronischer Form und können diese sehr einfach für Ihr Entwicklungsenvironment anpassen.
Ferner erhalten Sie eine Tool- und Software-Komponentenübersicht für die Entwicklung von Embedded-Software.
Sie bekommen zudem die Notationsübersicht für UML (Unified Modeling Language) im A3-Format.