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

Interface-Designs und ihre Implementierung

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

Interface-Designs und ihre Implementierung weiterlesen

Embedded-Software-Redesign Guide Teil 3: Anforderungen und Checkliste

Manchmal ist es nicht mehr damit getan, alten Code zu erweitern: Eine Rundumerneuerung muss her. Dieser Beitrag beschreibt Vorgehen rund um das Embedded-Software-Redesign und erläutert dabei die Begriffe Reverse-Engineering, Refactoring und Reengineering.

Veranstaltungsformen wie Workshops eignen sich ideal, um mit den passenden Wissensträgern die Anforderungen zu erfassen und zu dokumentieren. Um Anforderungen aus dem Programmcode abzuleiten, existieren keine Tools am Markt. Hier ist manuelle Arbeit gefragt. Erfahrungsgemäß ist es nicht möglich, 100% aller in der Software implementierten Anforderungen zu erfassen.

Embedded-Software-Redesign Guide Teil 3: Anforderungen und Checkliste weiterlesen

Embedded-Software-Redesign Guide Teil 1: Defizite und Auslöser

Manchmal ist es nicht mehr damit getan, alten Code zu erweitern: Eine Rundumerneuerung muss her. Dieser Beitrag beschreibt Vorgehen rund um das Embedded-Software-Redesign und erläutert dabei die Begriffe Reverse-Engineering, Refactoring und Reengineering.

Embedded-Software-Redesign Guide Teil 1: Defizite und Auslöser weiterlesen

Mit Design Patterns Entwicklungszeit einsparen

Die wichtigsten Elemente für Entwurfsmuster, mit denen Sie standardisierte Software-Strukturen einfach wiederverwerten können.

Bei der objektorientierten Entwicklung von Software-Architektur und Software-Design sowie der objektorientierten Programmierung (OOP) einer strukturierten Software-Entwicklungsmethode stößt man immer wieder auf ähnliche Aufgaben und Probleme. Der Einsatz von wiederverwendbaren Entwurfsmustern (praxisbewährten Lösungsschablonen) kann dabei einen sich wiederholenden Software-Programmieraufwand verhindern.

Mit dieser Methode lassen sich Entwicklungszeit einsparen und Fehler vermeiden, die bei einer doppelten Programmierung auftreten könnten.

Mit Design Patterns Entwicklungszeit einsparen weiterlesen

Entwicklungsprozesse als Basis moderner Softwareentwicklung

Im professionellen Software Engineering sind die Entwicklungs- und Prozess-Schritte vor der Software-Implementierung essentiell. Begriffe wie Softwareanalyse und Softwaredesign bzw. Software-Grobdesign und Software-Feindesign aus den Entwicklungsprozessen (beispielsweise dem V-Modell XT oder dem branchenspezifischen V-Modell Automotive) stehen genau dafür.

Entwicklungsprozesse als Basis moderner Softwareentwicklung weiterlesen

Das Rad nicht immer neu erfinden: Architekturmuster im Embedded-Umfeld erfolgreich einsetzen

Embedded-Projekte starten meistens sehr klein. Und oft wird im Anfangsstadium kein Gedanke an die Software-Architektur verschwendet. Die Anwendung soll bald funktionieren – und die Probleme mit der neuen Hardware sind ja auch noch zu lösen.

Das Rad nicht immer neu erfinden: Architekturmuster im Embedded-Umfeld erfolgreich einsetzen weiterlesen

Wie gut sind Sie auf das Internet of Things vorbereitet?

Das Internet der Dinge hat bereits in vielen Bereichen Produkte, Branchen und Ökonomien verändert. Es beeinflusst das Verhältnis von Kunden und Lieferanten und die Verfügbarkeit von Waren und Dienstleistungen. Es wirkt auf Gesellschaftssysteme und auf Ökosysteme, ja auf nahezu alles, was wir an Systemen kennen. Diese tiefgreifenden Veränderungen der Umgebungsbedingungen für alle, die mit dem Internet of Things direkt oder indirekt interagieren, bergen Chancen und Risiken.

Wie gut sind Sie auf das Internet of Things vorbereitet? weiterlesen

Wichtiger denn je: In Systemen und Architekturen denken

Der Blick in die Gegenwart und die Zukunft zeigt deutlich, dass die Embedded-Welt und die IT-Welt miteinander verflochten sind und sich immer mehr verflechten werden. Embedded-Systeme werden zum Bestandteil des Internet of Things, das sich zu einem Internet of Everything entwickelt und Brutstätte vieler neuer Geschäftsideen sein wird. Die große Herausforderung liegt darin, in immer komplexeren und dynamischeren Systemen zu denken und die immer rasanteren technischen und unternehmerischen Aspekte zu neuen Systemen und Geschäftsideen zu kombinieren. Unsere Trainer haben sich dazu ein paar Gedanken gemacht.

Wichtiger denn je: In Systemen und Architekturen denken weiterlesen