Dauerbrenner Python: Eine Einführung in die beliebte Multiparadigmen-Sprache

Unter den vielen Programmiersprachen, die bei Entwicklern beliebt sind, gibt es eine, die sich wie ein Chamäleon an die unterschiedlichsten Anforderungen anpassen kann: Python. Schon lange ist Python als eine der am weitesten verbreiteten Programmiersprachen bekannt. Doch was macht das Coden mit Python so besonders? Werfen wir einen Blick darauf, warum es sich lohnt, Python in Projekten einzusetzen.

Dauerbrenner Python: Eine Einführung in die beliebte Multiparadigmen-Sprache weiterlesen

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

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

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

Eine gemeinsame Sprache für die Cybersecurity – Teil II: Projektspezifisches Cybersecurity Management

Welche Ziele, Anforderungen und Richtlinien dienen als Grundlage für ein gemeinsames Verständnis der Cybersecurity-Perspektive bei der Entwicklung von Fahrzeugen im Straßenverkehr? Wie definiert man die Prozesse und managt die Risiken in Übereinstimmung mit ISO 31000? 

Der zweite Teil der Beitragsreihe beleuchtet das projektspezifische Cybersecurity Management –  Ziele, Planung und Assessment.

Eine gemeinsame Sprache für die Cybersecurity – Teil II: Projektspezifisches Cybersecurity Management weiterlesen

Eine gemeinsame Sprache für die Cybersecurity – Teil I: Einführung und übergreifendes Cybersecurity Management

Welche Ziele, Anforderungen und Richtlinien dienen als Grundlage für ein gemeinsames Verständnis der Cybersecurity-Perspektive bei der Entwicklung von Fahrzeugen im Straßenverkehr? Wie definiert man die Prozesse und managt die Risiken in Übereinstimmung mit ISO 31000?

Der erste Teil bietet eine Einführung in die Thematik und beleuchtet das übergreifende Cybersecurity Management – Ziele, Governance & Culture.

Eine gemeinsame Sprache für die Cybersecurity – Teil I: Einführung und übergreifendes Cybersecurity Management 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