Martina Hafner ♥ Embedded Software Engineering

Martina Hafner

Leitung Digital
ELEKTRONIKPRAXIS

Fachjournalistin Embedded Software Engineering, Innovation, Wissenschaft und Forschung; Leitung Digital; Programmkomitee ESE Kongress http://www.ese-kongress.de

Artikel des Autors

Keynote auf dem ESE Kongress: Die Trends in der Embedded-Software-Entwicklung hören und diskutieren über 1100 Teilnehmer jährlich im Dezember in Sindelfingen (Elisabeth Wiesner)

Willkommen im nächsten Software-Zeitalter

Software-Entwickler stehen am Beginn einer neuen Ära: Neben den Problemen der totalen Vernetzung müssen sie komplexe Technologien wie KI und Machine Learning beherrschen – und einiges mehr. Was das bedeutet, erläutern Experten auf dem 10. ESE Kongress.

Weiterlesen
Bild 1: Meta-ese-Layer bis anhin (bbv Software Services)
Maßgeschneidertes Linux

Yocto: Das geht auch automatisch!

Das Yocto-Build-System ist ein großes und mächtiges Werkzeug. Für den Einsteiger ist es oftmals schwierig, die Zusammenhänge des Build-Systems zu sehen, und der Start eines eigenen Projektes gestaltet sich entsprechend schwierig. Dieser Beitrag zeigt Schritt für Schritt den Bau einer einfachen Distribution mit eigenen Rezepten.

Weiterlesen
Ist der angebliche Ressourcenhunger von C++ hinderlich für Echtzeit-Anwendungen? Wenn man es richtig macht, geht C++ nicht zwingend zu Lasten der Performance. (gemeinfrei)

C++ für Echtzeit-Anwendungen

Die Objektorientierte Programmierung in C++ hat unter vielen Embedded-Programmierern den Ruf, gegenüber der Strukturierten Programmierung in C weniger performant zu sein. Hierdurch wird C++ für zur Erreichung harter Echtzeit meist von vornherein ausgeschlossen. Aber ist das auch berechtigt?

Weiterlesen
Frank Pilhofer ist Software-Entwickler im Bereich Embedded Systems Solutions bei der Zühlke Engineering GmbH. (Zühlke Engineering)

Bare-Bones mit GCC und C++

Neue Optionen des GCC ermöglichen es, nicht benötigte oder schlicht nicht vorhandene Funktionalität der C- und C++-Laufzeitbibliotheken wegzulassen oder auf den eigenen Bedarf zurechtzuschneiden. So gelingt die Entwicklung von C++-Software auch für kleine Mikrocontroller wie z.B. einen Cortex-M0.

Weiterlesen
Sogenannte Muster, auch Patterns oder Idioms genannt, sollen dem Entwickler beim Erstellen einer soliden Software-Architektur helfen, anhand derer er seinen Code aufziehen kann. Gleichwohl lohnt es sich, auch über sogenannte Anti-Patterns Bescheid zu wissen – Muster, anhand derer sich wiederholt auftretende Entwicklungsfehler erkennen lassen. (gemeinfrei)

Anti-Patterns: Wiederkehrende Entwicklerfehler erkennen und vermeiden

Entwurfsmuster (Design Pattern) sind vor allem in der objekt-orientierten Softwareentwicklung als bewährte Lösungen für immer wiederkehrende Entwurfsprobleme weitestgehend bekannt und verbreitet. Wer aber seinem Software-Entwicklungsprojekt gezielt Schaden zufügen möchte, der bedient sich lieber aus dem reichhaltigen Repertoire der Anti-Pattern.

Weiterlesen
Schludriger Code führt zu instablien Systemen. Dabei gibt es keinen guten Grund, Quellcode unsauber hinzuklatschen. Die 5 SOLID-Prinzipiel helfen, ohne Zeitaufwand von Grund auf sauberen, strukturierten Code zu programmieren. (PublicDomainPictures)

Die SOLID-Prinzipien – 5 Grundregeln für sauberen Code

Es gibt immer eine Ausrede, warum man gerade keinen guten Code schreiben kann. Es wird aber immer nur eine Ausrede bleiben. Einen triftigen Grund, schlechten Code zu schreiben, gibt es nicht. Die hier gezeigten SOLID-Prinzipien sind Hinweise, die es einem Entwickler erleichtern, im Alltag die Codequalität zu verbessern.

Weiterlesen
 (Willert Software Tools)

Komplexität im Software Engineering, Teil 1

Wenn ich in meinen Vorträgen auf Kongressen in die Runde der Zuhörer die Frage stelle, wer NICHT vom Wachstum der Komplexität betroffen ist, bekomme ich lediglich vereinzelt ein oder zwei Meldungen. Wir können davon ausgehen, die Komplexität in unserer Gesellschaft wächst, und das sogar mit zunehmender Geschwindigkeit.

Weiterlesen
 (ClipDealer)
Multicore

Effiziente Embedded-Multicore-Programmierung

Durch immer weiter steigende Performanzanforderungen wird in immer mehr Bereichen anstelle von Einkernprozessoren auf Mehrkernprozessoren gesetzt. Dieser Wechsel ist im Bereich von Desktop-PCs oder Smartphones bereits vollzogen, im Bereich der eingebetteten Systeme ist der Umbruch jedoch noch im Gange. Durch die parallele Ausführung von Programmen kann sowohl die Performanz gesteigert als auch die Leistungsaufnahme reduziert werden.

Weiterlesen
 (ClipDealer)

Wie das IoT die Embedded-Softwareentwicklung verändert

Bei IoT-Anwendungen spielt die Vernetzung und die Kommunikation mit dem “Thing” eine wesentliche Rolle, beispielsweise werden Nutzer einen webbasierten Zugriff oder eine mobile Applikation einfordern. Der Einsatz von SDKs mit mächtigen APIs wird zunehmend Einfluss auf die Entwicklung im Bereich IoT nehmen.

Weiterlesen
 (ClipDealer)
Multicore

Sicherheit auf allen Kernen

Da bei Multicore-Controllern die physikalische Kopplung zwischen den einzelnen Kernen deutlich enger ist als bei diskreten Mehrcontrollerlösungen, werden besondere Anforderungen an die Softwarearchitektur, das Speicherlayout, das Betriebssystem und an die Treiberschicht gestellt.

Weiterlesen
Erweitertes Sicherheits-V-Modell nach IEC 61508 (Quategra)

Software-Entwicklung gemäß IEC61508

Teil 3 der Norm IEC 61508 richtet sich an Software-Entwickler sicherheitsgerichteter Systeme. Da viele Softwarefehler auf Spezifikationsmängeln und mangelnder Transparenz in den Abläufen basieren nehmen Entwicklungsprozesse und Methoden in der Norm einen breiten Raum ein.

Weiterlesen
Bild 1: Die 3 Cs der Intelligent Edge: Verbinden, Berechnen und Steuern (Hewlett-Packard)

Was ist die Intelligent Edge?

Die Intelligent Edge wird die kommende Dekade ähnlich prägen wie das Internet die Nullerjahre. Das Technologieversprechen: intelligente Städte, Fahrzeuge, Fabrikhallen und vieles mehr. Was steckt hinter der Intelligent Edge und welches Innovationspotenzial bietet sie Entwicklern?

Weiterlesen
 (gemeinfrei/Pixabay)
Requirements

Das Lastenheft zum Anfassen

iNTENCE zeigt mit der "Ausführbaren Spezifikation" eine Methode auf, mit der Funktionsverantwortliche Umfänge und Ausprägungen von kundensichtbaren Funktionen früh im Projekt beherrschen können. Erreicht wird dies durch die frühzeitige Erlebbarkeit der Funktion durch Modellbildung.

Weiterlesen
Aufmacher HMI (Bild: Clipdealer)
GUI

Wie HMI-Lösungen kulturell angepasst werden können

Kulturelle Prägung trägt viel zu Erwartungen der Nutzer an ein technologisches Artefakt bei (Rößger & Rosendahl, 2002; Heimgärtner, 2010). Herangehensweise, Lösungsstrategien, Informationsverarbeitung und die Verbindung von Farben, Symbolen und Icons unterscheidet sich deutlich zwischen Kulturen (Marcus et al., 2003; Honold, 2000). Rößger (2014) diskutiert das Thema anhand von Infotainmentsystemen in Fahrzeugen.

Weiterlesen
 (gemeinfrei)

Ist ein „Let it Crash”-Paradigma in C++ sicher?

„Lass es abstürzen“ (Let it Crash) ist selbstverständlich keine valide Fehlerbehandlungsoption für ein sicherheitskritisches System. Denn niemand mit Verantwortungsbewusstsein möchte, dass ein System als Ganzes zusammenbricht. Aber wie sieht es mit seinen Komponenten aus?

Weiterlesen
 (gemeinfrei)
Implementierung

Efficient C Code for ARM Devices

In any development, some degree of “optimization” is almost inevitable in order to develop software which is performant and efficient. When optimizing software, it is crucial to establish your optimization goals and then work within the capabilities and constraints of the tools, the language, the processor and the target system to realize the best possible outcome.

Weiterlesen
Welche Werkzeuge gibt es für das Data-Mining? Wie können Daten sinnvoll visualisiert werden? Was sind ihre Chancen und Gefahren? Dies sind alles Bereiche der Software Analytics – die Wissenschaft zur Gewinnung und Auswertung von Daten über ein Software-Produkt oder dessen Entwicklung. (gemeinfrei)

Software Analytics in komplexen Software-Projekten

Welche verwertbaren Daten fallen im Entwicklungsprozess an? Wie identifiziert man die relevanten Daten für eine gegebene Fragestellung? Wie können die Daten erhoben werden? Mit Hilfe welcher Data-Mining-Techniken lassen sich die Daten auswerten? Dieser Artikel beschreibt Techniken, Methoden und Werkzeuge der Software Analytics.

Weiterlesen
STIMULUS provides a modelling language that allows system architects to combine formalised textual requirements, state machines and block diagrams in a fully integrated simulation environment.  (gemeinfrei)

Debugging Embedded Systems Requirements before the Design Begins

Over the last two decades, there has been a real movement towards requirements engineering [1]. However, the various tools that have been developed with the aim of improving the specifications development are mostly focused on requirements management and traceability (Doors, Reqtify, etc), and there is no practical upstream requirements validation tool available for checking their functional coherence before the design stage.

Weiterlesen
Keynote auf dem ESE Kongress: Die Trends in der Embedded-Software-Entwicklung hören und diskutieren über 1100 Teilnehmer jährlich im Dezember in Sindelfingen (Elisabeth Wiesner)

Willkommen im nächsten Software-Zeitalter

Software-Entwickler stehen am Beginn einer neuen Ära: Neben den Problemen der totalen Vernetzung müssen sie komplexe Technologien wie KI und Machine Learning beherrschen – und einiges mehr. Was das bedeutet, erläutern Experten auf dem 10. ESE Kongress.

Weiterlesen
 (ClipDealer)
Modellierung

Model Driven Software Engineering 2.0

Immer komplexere Strukturen, Funktionen und das Zusammenspiel technischer Systeme bestimmen unseren Alltag. Die einhergehende fortwährende Aufgabenverlagerung von Mechanik- und Elektronikkomponenten auf die Software rücken diese immer stärker in den Fokus der Innovationen und erhöhen damit deren Bedeutung und Aufwendungen.

Weiterlesen