(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
Immer leistungsfähigere Multicore-Mikrocontroller sind und bleiben das Rückgrat für Fail-Operational Systeme in Fahrzeugen. Mit diesem Grundelement entstehen gerade Architekturen, Methoden und Tools, die eine effiziente Entwicklung von Fail-Operational Systemen ermöglichen. Ähnliche Architekturen können auch außerhalb der Automobilindustrie verwendet werden, die kostengünstigen Bauteile und die lange Verfügbarkeit machen diesen Ansatz attraktiv. (gemeinfrei)

Anforderungen an Fail-Operational-Systeme in Fahrzeugen

Fail-Operational-Systeme müssen weiterhin funktionieren, auch wenn ihre Steuerungssysteme ausfallen. Gerade in Fahrzeugen müssen sie hohen Ansprüchen hinisichtlich Safety, Security, harte Echtzeit oder Robustheit gerecht werden. Zeit für einen Überblick über Anforderungen an und Entwicklungen in betriebssicheren Systemen.

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
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
 (Software Quality Lab)

Behaviour Driven Testing und automatische Unit-Test-Generierung

Softwaretests aus Fachabteilungen sind oft nur funktional, ohne dass Details näher definiert wären. Automatisierte Tests können hier helfen, doch werden sie oft aus Mangel an Fachwissen nicht implementiert. Die agile Methode des BDT (Behavior Driven Testing) zielt darauf ab, die hier entstehende Lücke zu schließen.

Weiterlesen
Durch die Kombination statischer und dynamischer Codeanalyse in einem kontinuierlichen Testprozess lässt sich effizient eine nachhaltige Qualitätssteigerung erzielen.  (gemeinfrei)

Statische und dynamische Codeanalyse in einem kontinuierlichen Testprozess

Zunehmende Variantenvielfalt und steigende Komplexität stellen Entwickler von Embedded Software vor neue Herausforderungen. Kontinuierliche Integration gewinnt daher an Bedeutung. Durch die Kombination statischer und dynamischer Codeanalyse in einem kontinuierlichen Testprozess lässt sich effizient eine nachhaltige Qualitätssteigerung erzielen – die richtigen Analysewerkzeuge vorausgesetzt.

Weiterlesen
Der monegassische Stadtbezirk Monte-Carlo (© Noppasinw - stock.adobe.com)

Der Monte-Carlo-Algorithmus und -Simulationen

Eine Reihe von Algorithmen dient der Suche von Lösungen, ohne vorher die Antwort zu kennen, und von Entscheidungen, die nach „wahrscheinlich richtig oder falsch“ beurteilt werden. Das ist sinnvoll für das Risiko-Management, aber auch für die Nutzung von Supercomputern. Ein solcher Algorithmus ist der Monte-Carlo-Algorithmus und die darauf basierenden Simulationen

Weiterlesen