Embedded Software Manager Pattern – Teil 2: Die Manager und ihre Funktionalitäten

Jede Embedded-Software muss in der Praxis eine Vielzahl von verteilten und zentral koordinierten Aufgaben ausführen. Software Patterns stellen dabei nicht nur die konzeptionelle Integrität sicher, sondern ermöglichen auch die Skalierbarkeit über verschiedene Projekte hinweg. Im zweiten Teil unserer Beitragsreihe rücken wir die Manager mit ihren vielfältigen Funktionen in den Fokus.

Embedded Software Manager Pattern – Teil 2: Die Manager und ihre Funktionalitäten weiterlesen

Embedded Software Manager Pattern – Teil 1: Zentrale Aufgaben skalierbar in der Software etablieren

(Embedded-) Software muss verschiedene zentrale Aufgaben softwareweit koordinieren. Das klassische Beispiel dafür ist die Initialisierung, die auf allen Ebenen der Software stattfinden muss. Bei genauerer Betrachtung lassen sich produktabhängig viele weitere dieser softwareweiten Aktionen identifizieren. Im Teil 1 dieses Beitrags stellen wir das Manager Pattern für die Koordination dieser Aufgaben in der Software vor. Embedded Software Manager Pattern – Teil 1: Zentrale Aufgaben skalierbar in der Software etablieren weiterlesen

Embedded Software Manager Pattern: Zentrale Aufgaben skalierbar in der Software etablieren

MicroConsult-Trainer Thomas Batt widmet seinen Vortrag auf dem ESE Kongress 2023 der Anwendung des Embedded Software Manager Patterns. Jetzt anmelden und Early-Bird-Ticket sichern!

Embedded Software Manager Pattern: Zentrale Aufgaben skalierbar in der Software etablieren weiterlesen

C++ Programmierung: Dynamische oder statische Polymorphie?

Mit steigender Komplexität von Embedded-Software erlangt die Erfüllung von Qualitätsmerkmalen, wie Änderbarkeit, Erweiterbarkeit, Anpassbarkeit und Wiederverwendbarkeit, eine immer größere Bedeutung. Ein wichtiges Mittel, um diese Software-Qualitätsanforderungen zu erfüllen, ist die Anwendung von polymorphen Strukturen in der Architektur, im Design und in der Implementierung. Die Softwareentwicklung unterscheidet dynamische und statische Polymorphie. 

C++ Programmierung: Dynamische oder statische Polymorphie? weiterlesen

Dynamische versus statische Polymorphie mit C++

In seinem Vortrag auf dem ESE Kongress 2022 stellt MicroConsult-Trainer Thomas Batt Implementierungsansätze für Polymorphie mit C++ vor und vergleicht sie in Bezug auf Performance und Speicherverbrauch auf einem Embedded-Target. Jetzt anmelden!

Dynamische versus statische Polymorphie mit C++ weiterlesen

Design for Test und Design for Safety – Software-Architektur nach Maß

Unser Alltag ist heute wie selbstverständlich von miteinander vernetzten Geräten und Systemen geprägt. Ob man mit dem Smartphone unterwegs den schnellsten Weg zum Ziel findet, auf dem Sofa mit dem Tablet die Zeitung liest oder die smarte Heizung über eine App auf dem Smartphone steuert, diese Systeme machen unser Leben komfortabler. Der Gewinn an Komfort erfordert jedoch auch strengere Security- und Safety-Anforderungen, mit denen die Entwickler solcher Systeme Schritt halten müssen. Dies gilt besonders für das autonome Fahren – hier haben schlüssige Safety-Konzepte oberste Priorität. 

Design for Test und Design for Safety – Software-Architektur nach Maß weiterlesen

Software-Entwicklung neu gedacht – Teil 3: Software-Architektur

Welche Ziele in einem Software-Projekt werden maßgeblich davon beeinflusst, ob es sich um ein Multicore-Design mit Safety- und Security-Aspekten handelt?

Software-Entwicklung neu gedacht – Teil 3: Software-Architektur weiterlesen

Port-Designs und ihre Implementierung

In seinem Vortrag auf dem ESE Kongress digital 2021 stellt MicroConsult-Trainer Thomas Batt Interface-Konzepte vor und zeigt Implementierungsansätze in C und C++. Jetzt anmelden und Early-Bird-Ticket sichern!

Port-Designs und ihre Implementierung weiterlesen

Interface-Designs und ihre Implementierungen – Teil 2: Realisierung und Zugriff

Der Einsatz von Software-Interfaces ist ein elementares Mittel zur Entwicklung von langlebigen und tragfähigen Software-Architekturen. Deshalb sollten sie so früh wie möglich in der Architektur etabliert werden, um diese zu stabilisieren. Der Software-Architekt kann so eine schnelle Aufgabenverteilung auf unabhängige Personen, Teams oder Standorte ohne weitere „Reibungsverluste“ sicherstellen.

Welche Varianten der Architekt beim Interface-Design kennen sollte und wie diese in den Programmiersprachen C und C++ implementierbar sind, verrät dieser Beitrag in seinem zweiten Teil – er zeigt Implementierungsansätze durch Assoziation, Komposition, Fassade, virtuelle Interfaces, nicht-virtuelle Interfaces, C++ Templates und CRTP-Pattern auf.

Interface-Designs und ihre Implementierungen – Teil 2: Realisierung und Zugriff weiterlesen

Interface-Designs und ihre Implementierungen – Teil 1: Struktur und Definition

Der Einsatz von Software-Interfaces ist ein elementares Mittel zur Entwicklung von langlebigen und tragfähigen Software-Architekturen. Deshalb sollten sie so früh wie möglich in der Architektur etabliert werden, um diese zu stabilisieren. Der Software-Architekt kann so eine schnelle Aufgabenverteilung auf unabhängige Personen, Teams oder Standorte ohne weitere „Reibungsverluste“ sicherstellen.

Welche Varianten Sie beim Interface-Design kennen sollten und wie diese in den Programmiersprachen C und C++ implementierbar sind, verrät dieser Beitrag. Der erste Teil stellt Interface-Konzepte und unterschiedliche Interface-Typen vor.

Interface-Designs und ihre Implementierungen – Teil 1: Struktur und Definition weiterlesen