Ein Angebot von

Fachbeiträge

C++11: Aufwand und Nutzen der 'auto' und 'range-based'-Features

C++11: Aufwand und Nutzen der 'auto' und 'range-based'-Features

C++ 11 und seine Nachfolger bieten Entwicklern zahlreiche neue Eigenschaften. Features sind aber mit 'Kosten' verbunden: entweder in der Geschwindigkeit oder bei der Code-Größe. Um die Sprache C++ effektiv nutzen zu können, ist es für Entwickler wichtig zu wissen, welchen Aufwand einzelne Features bergen. lesen

Wiederverwendung von Embedded-Software in Safety-kritischen Automotive-Systemen

Wiederverwendung von Embedded-Software in Safety-kritischen Automotive-Systemen

Wenn es um Safety-Zertifizierung geht, können ursprünglich für andere Projekte entwickelte Standardelemente nicht so einfach in neuen Code implementiert werden. ISO 26262 spricht hierbei von „Safety Elements out of Context“ (SEooC). Wobei handelt es sich hier genau, und was gibt es bei der Implementierung solcher Elemente zu beachten? lesen

10 kleine Dinge, die C++ einfacher machen

10 kleine Dinge, die C++ einfacher machen

Die Einführung der Standards C++11/14/17 hat C++ merklich modernisiert. Nebst Sprachfeatures wie smart-pointers, move semantics und varaidic templates gibt es auch noch eine ganze Menge an kleineren Erweiterungen, die oftmals unter dem Radar fliegen. Aber gerade diese Features können helfen, C++ Code merklich zu vereinfachen und wartbarer zu machen. lesen

Automatischer Einklang von Architektur und Implementierung

Automatischer Einklang von Architektur und Implementierung

Die Architekturbeschreibung eines Software-Systems erlaubt, auf abstraktem Niveau über die Software zu sprechen und Erweiterungen an der Software zu analysieren, zu planen und zu bewerten. Damit dies gut funktioniert, muss die Architektur unter anderem zur Implementierung passen. lesen

Neun praktische Tipps für die Entwicklung von Embedded-Software

Neun praktische Tipps für die Entwicklung von Embedded-Software

Von Zeit zu Zeit präsentiert Colin Walls von Mentor einige nützliche Programmiertipps für Embedded-Entwickler. Dabei geht es nicht um harte und schnelle Regeln, sondern um Denkanreize und einige bewährte Vorgehensweisen aus der Entwicklungspraxis. lesen

Fünf praxisnahe C/C++-Tipps für Embedded-Software-Programmierer

Fünf praxisnahe C/C++-Tipps für Embedded-Software-Programmierer

Es ist Zeit für ein paar weitere, hoffentlich hilfreiche Tipps für Embedded-Software-Entwickler. Diese Tipps sind in vielen Fällen nur gesunder Menschenverstand, aber ich denke, wir müssen sie uns immer mal wieder in Erinnerung rufen. lesen

Hardwarenahe Softwareentwicklung

Hardwarenahe Softwareentwicklung

Ein Thema wie hardwarenahe Programmierung in einer Hochsprache sollte es eigentlich gar nicht geben. Dennoch kann auf Grund eingeschränkter verfügbarer Ressourcen oft auf hardwarenahe Softwareprogrammierung nicht verzichtet werden. Wie geht man am besten mit diesem scheinbaren Konflikt um? lesen

Dynamische Speicherzuweisung und -fragmentierung in C und C++

Dynamische Speicherzuweisung und -fragmentierung in C und C++

In C und C++ kann es sehr komfortabel sein, Speicherblöcke nach Bedarf zu allokieren und wieder freizugeben. Der Umgang mit einem dynamischen Speicher kann jedoch problematisch und ineffizient sein. Bei Desktop-Anwendungen mit ihrem frei verfügbaren Speicher können diese Probleme ignoriert werden. Für Embedded-Anwendungen – meist Echtzeitapplikationen – ist das aber keine Option. lesen

Die Verschmelzung von Hardware und Software

Die Verschmelzung von Hardware und Software

Die Prioritäten in der Entwicklung von Embedded Geräten verlagern sich zunehmend von dem Hard- in den Softwarebereich. Entwickler, die sich auf spezielle Softwaregebiete fokussieren, werden von diesem Trend besonders profitieren. lesen

Richtige Anwendung von Software Design Patterns

Richtige Anwendung von Software Design Patterns

Viele Entwickler besitzen einen Vorrat an allgemein anwendbaren Entwurfsmustern, mit deren Hilfe flexible, leicht anpassbare und gut wartbare Applikationen entwickelt werden können. Aber der Versuch, diese Software Design Patterns Patterns in der Praxis anzuwenden, stellt sich oft schwieriger heraus als erwartet. Dies kann viele Ursachen haben. lesen

Raus aus der Software-Krise: 50 Jahre Software-Engineering

Raus aus der Software-Krise: 50 Jahre Software-Engineering

In den 1960ern beginnen Computer, die Wirtschaft zu erobern. Doch die Softwareentwicklung steckt noch in den Kinderschuhen und verschlingt oft mehr Geld als die zugehörige Hardware. Eine NATO-Tagung in Garmisch-Partenkirchen sucht einen Ausweg: Die Computerlandschaft braucht Software-Engineering! lesen

Model-View-Adapter statt Model-View-Controller: Vorteile und Praxis-Tipps

Model-View-Adapter statt Model-View-Controller: Vorteile und Praxis-Tipps

Ein Model View Adapter (MVA) ist eine modernere Methode, um komplexe GUIs in C++ zum Einsatz in Qt umzusetzen, als der herkömmliche Ansatz eines Model View Controllers (MVC). Diese Beitrag zeigt auf, wo die Unterschiede liegen, und was Sie beim praktischen Einsatz beachten sollten. lesen

Moderne GUIs mit dem Model View Adapter in C++ entwickeln

Moderne GUIs mit dem Model View Adapter in C++ entwickeln

Grafischer Benutzeroberflächen (GUIs) basieren oft noch auf dem Model View Controller-(MVC)-Pattern. Für viele moderne Bibliotheken ist dieser Ansatz inzwischen veraltet. Besser geeignet ist der Model View Adapter (MVA): Er lässt sich gut als Grundlage für das Entwickeln moderner, komplizierterer GUIs mit C++ und Qt verwenden und gewährleistet Wartbarkeit und Erweiterbarkeit. lesen

Stolperfalle Copy & Paste: Kopierte Fehler im Software-Code aufspüren

Stolperfalle Copy & Paste: Kopierte Fehler im Software-Code aufspüren

Auch wenn es als schlechter Stil gilt, ist Copy&Paste dennoch unter Entwicklern ein gängiges Verfahren zur Code-Wiederverwertung. Doch können dabei auch vorhandene Sicherheitslücken kopiert werden – und neue Fehler entstehen. Die statische Code-Analyse kann helfen, Bugs in kopiertem Code zu vermeiden. lesen

Codegenerierung – was man damit (nicht) machen kann

Codegenerierung – was man damit (nicht) machen kann

Die Codegenerierung ist ein wesentlicher Teil eines modellbasierten Entwicklungsprozesses. Der Vortrag vermittelt die wichtigsten Informationen darüber, was man sich von der Codegenerierung in Embedded Systems erwarten soll und was nicht. lesen

Ein sicheres Systemdesign für Flugdrohnen entwickeln

Ein sicheres Systemdesign für Flugdrohnen entwickeln

Flugdrohnen werden - nicht nur in Form von Multikoptern - immer interessanter für den privaten, kommerziellen oder auch industriellen Einsatz. Doch ähnlich wie in der bemannten müssen auch in der unbemannten Luftfahrt hohe Security-Ansprüche erfüllt werden. lesen

KI im Einsatz: Deeply Neural Networking für Embedded Systeme

KI im Einsatz: Deeply Neural Networking für Embedded Systeme

Mit DNNs (Deep Neural Networks) lassen sich intelligente Strukturen schaffen, die auch in Embedded Systemen ganz neue Anwendungen eröffnen, um zum Beispiel intelligente Sensoren zu entwickeln. Der Beitrag beschreibt ein Verfahren, mit dem im DNN angelerntes Wissen auch im Embedded Bereich eingesetzt werden kann. lesen

Wie Echtzeit-Software auch ohne Echtzeit-Betriebssystem entwickelt werden kann

Wie Echtzeit-Software auch ohne Echtzeit-Betriebssystem entwickelt werden kann

Ist ein Echtzeit-Betriebssystem notwendig, wenn Echtzeit-Software entwickelt wird? David Kalinsky beleuchtet in unserem Beitrag grundlegende Designthemen. lesen

Grafische objektorientierte C-Programmierung mit Simulink

Grafische objektorientierte C-Programmierung mit Simulink

Mit einem grafischen Ansatz können in C hardwarenahe Schichten oder Betriebssystemanbindungen direkt formuliert werden. Zudem erlauben grafische Entwicklungstools für C-Programme eine einfache Navigation des Codes. Dieser Artikel beschreibt die Anwendung der grafischen Programmierung in einer Matlab-Simulink-Umgebung. lesen

Richtiger Start mit Azure: Das volle Potenzial der Cloud ausschöpfen

Richtiger Start mit Azure: Das volle Potenzial der Cloud ausschöpfen

Die IT-Transformation ist in vollem Gange. Kaum ein Unternehmen kann sich ihr entziehen. Im Mittelpunkt dieser Entwicklung steht die Cloud, deren Einführung jedoch sehr komplex ist. Mit der richtigen Strategie können Unternehmen mit Lösungen wie Microsoft Azure das volle Potenzial der Cloud ausschöpfen. lesen

Karriere

Hitex GmbH

Application Entwickler Embedded Systeme mit AURIX (w/m)

Unser Team bietet Beratung und Entwicklungsdienstleistung für unsere Kunden im Bereich Embedded Entwicklung. ...

Lauterbach GmbH

Web-Entwickler Frontend (w/m/d)

Wir sind ein mittelständisches Unternehmen mit nahezu 40 Jahren Erfahrung im Bereich von Testsystemen. ...

Firmen stellen vor:

Mixed Mode GmbH

Frühjahrs-Check: Wie fit sind Ihre Systeme?

Wie effektiv und effizient ist Ihr Test und wie stellen Sie die Qualität Ihrer Software sicher? ...

MicroConsult Microelectronics Consulting & Training GmbH

TC17x7: Anwendungspraxis TriCore™-spezifischer Peripherie

Sie können die Einsatzmöglichkeiten der spezifischen TriCore™ Peripherie des Derivates TC17x6/TC17x7 abschätzen. ...

Lauterbach GmbH

PowerTrace Serial

Das modulare Konzept der Lauterbach Tools basiert auf universellen und architekturunabhängigen Basismodulen. ...

Downloads:

MicroConsult Microelectronics Consulting & Training GmbH

Moderne Low-Level-Treiberprogrammierung

Embedded-Systeme trifft man heute in vielen Bereichen an. Oft sind sie ein entscheidender Faktor für Komfort, ...

Parasoft® Deutschland GmbH

Parasoft SOAtest - API Testing for the Enterprise, IoT, and Embedded

As applications grow increasingly connected, the security, functionality, and performance of an application’s “mashup” is only as strong as its weakest link. ...