Embedded Software Manager Pattern

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.

Das Manager Pattern ist hochgradig skalierbar und somit anwendbar für sehr einfache Software, aber auch für komplexeste Architekturen. Das Pattern ist unabhängig von der Programmiersprache und unterstützt sowohl die prozedurale als auch objektorientierte Softwareentwicklung. Um diese Beitragsreihe vollständig zu verstehen, sind Kenntnisse der UML sowie der prozeduralen und objektorientierten Programmierung in C und C++ von Vorteil.

Zentrale Aufgabe in der Software

Zur Instanziierung und Initialisierung von Objekten in der Software sind bereits Design Patterns wie „Abstract Factory“ und „Builder“ als „Creational Patterns“ von Erich Gama et.al. publiziert. Des Weiteren ist im Internet das „Manager Design Pattern“, auch bekannt als „Manager-Managed Design Pattern“ oder „Managed Object Design Pattern“ veröffentlicht.

Das hier vorgestellte Embedded Software Manager Pattern verantwortet alle in der Software verteilten und zentral zu koordinierenden Aufgaben. Die Anzahl und Vielfalt der Aufgaben ist abhängig von den System-/ Softwareanforderungen, die das Produkt erfüllen muss. Betrachtet werden die folgenden Aufgaben:

Tabelle 1: Aufgaben und Funktionsaufrufe

Prinzip des Embedded Software Manager Patterns

In einer sehr einfachen Software besteht das Manager Pattern lediglich aus einer SoftwareManager Klasse oder einem SoftwareManager Modul, welches die zuvor genannten Aufgaben übernimmt. Mit wachsender Softwarearchitektur erhalten die Architekturelemente (AE) auf jeder Architekturebene (architectureLevel = x) ihre eigenen AEnManager, die die Aufgaben dezentral für ihr Architekturelement übernehmen.

Bild 1: Prinzip des Manager Patterns

Die verschiedenen Architekturelemente sind durch Namen <<type>> typisierbar (z.B. Software-Layer, Software-Subsystem). Bei tieferen Architekturhierarchien sind häufig keine individuellen Typennamen mehr identifizierbar. Aus diesem Grund sind die Architekturhierarchien hier nicht mit Typennamen versehen, sondern der architectureLevel ist angegeben.

Somit ist das Manager Pattern für beliebig hierarchisch und beliebig flach wachsende Architekturen anwendbar. Die Manager sind fähig, untereinander zu kommunizieren.

Skalierbarkeit des Embedded Software Manager Patterns

Ein Architekturelement AE1.1 kann theoretisch eine unbegrenzte Anzahl 0…z weiterer Architekturelemente auf der geleichen Ebene enthalten, die wiederum mit Managern ausgestattet sind.

Bild 2: Manager Pattern mit mehreren Architekturelementen auf gleicher Ebene

Die Hierarchiestufen-Anzahl der Architekturelement ist theoretisch ebenfalls unbegrenzt von 1…x oder 1…y. Je nach Architekturzweig sind unterschiedliche Hierarchiestufen-Anzahlen möglich.

Bild 3: Manager Pattern mit unterschiedlichen Architekturelement-Hierarchiestufen

Unabhängig von der UML-Notation lassen sich die Architekturebenen und Anzahlen der Architekturelemente in den einzelnen Eben sehr gut in einem Baumdiagramm darstellen. Die Astknoten bilden die Managerklassen/ -module ab.

Bild 4: Baumdiagramm der Architekturebenen

Die unterste Architektureben 0 ist main() zugeordnet, während die Ebene 1 für den übergeordneten SoftwareManager reserviert ist. Danach beginnen die eigentlichen Architekturebenen 2…x mit ihren AEnManagern.

Im 2. Teil dieses Beitrags stellen wir die Manager mit ihren Funktionalitäten im Detail vor.

Holen Sie sich das richtige Wissen darüber, wie das Embedded Software Manager Pattern in Ihren Software-Architekturen und Ihrem Software-Design anzuwenden ist. MicroConsult bietet Ihnen dazu professionelle Trainings und Coachings rund um die Themen Analyse, Design und Architektur uvm. an.

Weiterführende Informationen

Beitrag Teil 2

MicroConsult Fachwissen zum Thema Embedded SW-Entwicklung

MicroConsult-Trainings zum Thema:

Alle Trainings & Termine auf einen Blick

Veröffentlicht von

Thomas Batt

Thomas Batt

Thomas Batt studierte nach seiner Ausbildung zum Radio- und Fernsehtechniker Nachrichtentechnik. Seit 1994 arbeitet er kontinuierlich in verschiedenen Branchen und Rollen im Bereich Embedded-/Realtime-Systementwicklung. 1999 wechselte Thomas Batt zur MicroConsult GmbH. Dort verantwortet er heute als zertifizierter Trainer und Coach die Themenbereiche Systems/ Software Engineering für Embedded-/Realtime-Systeme sowie Entwicklungsprozess-Beratung.