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

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 2: Notwendigkeit erkennen

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.

Kundenunzufriedenheit sollte heute in jedem Unternehmen ein wichtiger Antrieb für Innovation sein. Bemerkt schon der Kunde Defizite bei der inneren Softwarequalität bzw. Prozessqualität, dann ist es kurz nach zwölf!

Embedded-Software-Redesign Guide Teil 2: Notwendigkeit erkennen 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

Qualitätsanforderungen an Embedded-Software – Teil 3: Ein Erfassungsbeispiel

Anforderungen zu erfassen und zu verwalten ist ein wesentlicher Schlüssel zum Projekterfolg. Die Embedded-Software-Funktionalität lässt sich einfacher in Anforderungen beschreiben als die Qualitätsmerkmale. Dennoch: Qualitätsmerkmale lassen sich nicht am Ende einfach “hineintesten”. Je abstrakter sie sind, desto aufwendiger ist ihre Erfassung. Welche Herausforderung stellt das für ein Projekt dar?

In einem Beispiel führt unser Autor durch die wichtigsten Schritte der Erfassung von Qualitätsanforderungen. Qualitätsanforderungen an Embedded-Software – Teil 3: Ein Erfassungsbeispiel weiterlesen

Qualitätsanforderungen an Embedded-Software – Teil 2: Die Erfassungsmethode

Anforderungen zu erfassen und zu verwalten ist ein wesentlicher Schlüssel zum Projekterfolg. Die Embedded-Software-Funktionalität lässt sich einfacher in Anforderungen beschreiben als die Qualitätsmerkmale. Dennoch: Qualitätsmerkmale lassen sich nicht am Ende einfach “hineintesten”. Je abstrakter sie sind, desto aufwendiger ist ihre Erfassung. Welche Herausforderung stellt das für ein Projekt dar?

Welche Erfassungsmethode für Qualitätsanforderungen greift bei Ihrem Projekt am besten? Ein Überblick.

Qualitätsanforderungen an Embedded-Software – Teil 2: Die Erfassungsmethode weiterlesen

Qualitätsanforderungen an Embedded-Software – Teil 1: Anforderungen und Mythen

Anforderungen zu erfassen und zu verwalten ist ein wesentlicher Schlüssel zum Projekterfolg. Die Embedded-Software-Funktionalität lässt sich einfacher in Anforderungen beschreiben als die Qualitätsmerkmale. Dennoch: Qualitätsmerkmale lassen sich nicht am Ende einfach “hineintesten”. Je abstrakter sie sind, desto aufwendiger ist ihre Erfassung. Welche Herausforderung stellt das für ein Projekt dar?

Auch Qualitätsanforderungen unterliegen der Mythenbildung. Deshalb ist es wichtig, sich die unterschiedlichen Arten von Anforderungen genau anzuschauen.

Qualitätsanforderungen an Embedded-Software – Teil 1: Anforderungen und Mythen 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