Experience Embedded

Professionelle Schulungen, Beratung und Projektunterstützung

Qualität und Sicherheit

Qualität und Sicherheit - Training & Coaching:

 

Qualität und Sicherheit - Fachwissen:

Test, Qualität und Safety von Embedded-Software

Softwarequalität beschränkt sich leider noch zu häufig auf die Formel: Hauptsache es läuft! Doch jeder der Erfahrung mit über Jahre gewachsener Software hat, weiß, welche unangenehmen Folgen diese sehr einseitige Sicht haben kann. Gerade weil sich Software lange Zeit schnell verändern und erweitern lässt, muss der Qualität eine besondere Aufmerksamkeit geschenkt werden.

 

 

Einfach und clever: wogtest ist die innovative MicroConsult-Lösung für Embedded-Softwaretests

Mit wogtest erleichtern wir Entwicklern die Integration von Test-Driven Development in Embedded-Projekte – ohne die Komplexität von Google Test, ohne aufwendige Portierung und kostenfrei zum Download.

 

Test-Ende gut, alles gut

Blackbox-Tests mit Whitebox-Metriken ergeben keine Graybox-Tests. Doch jeder der drei erfüllt eine wichtige Aufgabe, um das Test-Ende zu definieren und die Anzahl an notwendigen Softwaretests zu minimieren.

 

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.

 

Trends in der Mikroelektronik: Neue Perspektiven und Anforderungen für mobil agierende Geräte

Jedes Jahr werden neue, noch leistungsfähigere Mikrocontroller- Architekturen angekündigt. Dies ebnet den Weg für immer komfortablere und sogar autonom arbeitende Transportgeräte für unseren Alltag. Neben der gesteigerten Rechenleistung – MIPS per Watt – sind die enormen Anforderungen an Safety und Security eine der größten Herausforderungen.

 

Software-Entwicklung neu gedacht

Das rasante Wachstum des Internet of Things, des 5G-Netzes, künstlicher Intelligenz und Cloud- bzw. Edge-Computing haben große Auswirkungen auf die Entwicklung von Embedded-Software.

 

Eine gemeinsame Sprache für die Cybersecurity

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?

 

TDD - Test-Driven Development von Embedded Systemen

Test-Driven Development (TDD) ist die Umsetzung des Test-First-Ansatzes im Komponententest und steht für das Schreiben der Unit-Testfälle vor der eigentlichen Implementierung. Die Einhaltung von nur drei Regeln und ein paar Tricks im Umgang mit dem Target-Hardware-Bottleneck ermöglicht TDD auch für Embedded-Systeme.

 

Test-First = Erst Testen, dann Denken? - Test-Driven Development von Embedded Systemen

Viele agile Entwicklungsframeworks verweisen auf den Test-First-Ansatz, der unabhängig von der Teststufe darauf beruht, als ersten Schritt zur eigentlichen Realisierung von Funktionalität mit dem Testen zu beginnen: Testen zu einem Zeitpunkt, an dem man noch mit dem "Was" beschäftigt ist und das "Wie" noch vor einem liegt. Test-Driven Development (TDD) ist die Umsetzung des Test-First-Ansatzes im Komponententest und bedeutet das Schreiben der Unit-Testfälle vor der eigentlichen Implementierung. Die Einhaltung von nur drei Regeln und ein paar Tricks im Umgang mit dem Target-Hardware-Bottleneck ermöglichen TDD auch für Embedded-Systeme.

 

Mehr Gestaltungsspielraum durch Secure Exception Priority Boosting

Die Armv8-M-Architektur bringt grundlegende Sicherheit in Cortex-M-Geräte und ermöglicht so mehr Schutz für IoT-Systeme. Doch wie verhält sich das “Secure Exception Priority Boosting” Feature in der Praxis?

 

Embedded-Software-Redesign Guide

Manchmal ist es nicht mehr damit getan, alten Code zu erweitern: Eine Rundumerneuerung muss her. Diese Beitragsreihe beschreibt Vorgehen rund um das Embedded-Software-Redesign und erläutert dabei die Begriffe Reverse-Engineering, Refactoring und Reengineering.

 

Interview: Clean Code und der ideale Ablauf eines Embedded-Projektes

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.

 

Sichere Software von Anfang an - Entwickler unter Zeitdruck

So wie in alten Mythen Drachen die Menschen plagten und ihr Leben bedrohten, stellen heute technisch unsichere Systeme eine Gefahrenquelle dar. Der entscheidende Unterschied: Während die Drachen in das Reich der Fabeln gehören, sind technische Systeme als potentielle Gefahrenquellen Teil unseres Alltags.

 

Design Patterns in der Praxis richtig anwenden

Design Patterns sind Lösungen für häufig wiederkehrende Aufgabenstellungen des objektorientierten Softwareentwurfs. So gesehen spielen sie eine ähnliche Rolle wie das kleine Einmaleins, das man auswendig lernt, um die Ergebnisse für häufig vorkommende Rechenaufgaben nicht immer wieder neu berechnen zu müssen.

 

Sichere IoT-Smart-Grids durch modulare Hardware-Security

In einer stark vernetzten Welt ist es ratsam, Anwendungen effektiv gegen Cyberangriffe zu schützen. Dafür ist es wichtig, dass Daten und Kommunikationswege optimal verschlüsselt sind. Die Kryptographie-Algorithmen, die hierzu in Software zum Einsatz kommen, schützen Geräte, die den Angriffen direkt ausgesetzt sind, nicht immer verlässlich. Eine mögliche Lösung, Informationen besser zu schützen, besteht in einer Turnkey-Lösung.

 

Mit Design Patterns Entwicklungszeit einsparen

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.

 

Qualitätsanforderungen an Embedded-Software

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?

 

Programmierrichtlinien – Fluch oder Segen?

In Vorträgen, Artikeln und Büchern wird immer darauf hingewiesen, dass die Qualität des Codes ein entscheidender Faktor für den Erfolg des Projektes ist. Deshalb wird immer wieder versucht, Regularien einzuführen, die die Codequalität verbessern. Doch der Code, der von vielen Entwicklern abgeliefert wird, sieht alles andere als schön aus. Ein Ansatz, um die Qualität des Codes zu sichern, ist das Verwenden von Programmierrichtlinien.

 

Qualitätsanforderungen an Embedded-Software:
Die Kunst der hieb- und stichfesten Qualitätsanforderungen

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?


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.


Sicherheit im IoT: "Das größte Risiko ist der Mensch"

Durch das Internet der Dinge vervielfachen sich die Risiken von Hackerangriffen, denn jedes mit dem Netz verbundene Gerät ist ein potenzielles Einfallstor. Peter Siwon, Business Development Manager bei MicroConsult, und Michael Schnelle, Consultant bei Mixed Mode, schildern im Interview die größten Risiken und erläutern Schutzstrategien.

 

Mit durchdachter Software-Usability Wettbewerbsvorteile erzielen

Die Qualität von industrieller Software stellt für Unternehmen einen entscheidenden Wettbewerbsfaktor dar. Der Projekterfolg steht dabei im direkten Zusammenhang mit einer hohen Bedienqualität. Die Kommunikation zwischen Mensch und Computer basiert auf Kenntnissen der Informatik, Psychologie, Ergonomie und Arbeitswissenschaft. Entwickler können auf bewährte Prozesse, Tests und Analysen zugreifen, die ihnen wertvolle Einsichten liefern.

 

Requirements Engineering und Management

Anforderungen erfassen und verwalten ist ein wesentlicher Schlüssel zu erfolgreichen Projekten. Egal ob im klassischen oder agilen Prozessumfeld – professionelles Requirements Engineering und Management für Embedded- und Echtzeitsysteme verkürzt Ihre Projektlaufzeiten und spart Entwicklungs- sowie Wartungskosten ein. Stellen Sie sich dieser Herausforderung!

 

Funktionale Sicherheit: Systematische Fehler mit Struktur und Prozessen eindämmen

Ein  ganzheitlicher Ansatz und das entsprechende Wissen um die Details sind essentiell, wenn es um das Erstellen von funktional sicheren Systemen geht. Die Integrität der Software lässt sich durch strukturierte und zielgerichtete Methoden und Techniken erreichen.

 

Safety-Konzepte für Aurix-Mikrocontroller

Soft- und Hardwareentwickler wissen die Safety Management Unit der Aurix-Mikrocontroller als eigenständige Einheit für Fehlerbehandlungen zu schätzen.

 

Hinweise auf drohende Software-Erosion und was Sie dagegen tun können

Erfolgreiche Embedded-Software wird meist über einen langen Zeitraum hinweg entwickelt. Dabei kann es passieren, dass hin und wieder Beziehungen in den Code eingebaut werden, die dort nichts zu suchen haben. Mit der Zeit weicht die Software immer stärker von der geplanten Architektur ab – die Software-Erosion befindet sich in vollem Gange.

 

Secure Design Patterns

Security in bestehende eingebettete Systeme zu bringen ist nicht nur kostenintensiv, sondern auch methodisch falsch. Vielmehr soll Security fixer Bestandteil im Entwicklungsprozess sein. Die Frage ist nur, welche Methoden und Konzepte zum Erreichen von Security angewendet werden sollen. Secure Design Patterns für Software sollen weithin akzeptierte und relevante Lösungsansätze aufzeigen.

 

Safety & Security: Auf bekannte und bewährte Methoden setzen

Die Betriebssicherheit von softwareintensiven Embedded-Systemen ist eng mit dem Schutz vor unbefugtem Zugriff oder einem gezielten Angriff verbunden. Die dazu notwendigen Maßnahmen stellen Software- und Hardwareentwickler gleichermaßen vor hohe Herausforderungen.

 

Safety und Security in Multicore-Systemen: So gelingt die Implementierung

Die Anforderungen an sicherheitsrelevante Steuerungen steigen stetig. Multicore-Architekturen bewältigen diese Aufgaben am besten und werden deshalb vermehrt angeboten und eingesetzt.

 

Das Internet of Things - Brutstätte neuer Chancen und Risiken

Viele technologische Erfolgsgeschichten beruhen auf dem Evolutionsprinzip emergenter Eigenschaften. Es besagt, dass durch die Vernetzung von Einheiten zu einem System dieses System neue Eigenschaften und Fähigkeiten hervorbringt, die vorher noch nicht existierten und möglicherweise auch nicht vorhersehbar waren.


Trend Guide "Embedded Safety & Security"

Safety und Security bezeichnen unterschiedliche Eigenschaften von Embedded-Softwaresystemen. Doch bei genauer Betrachtung zeigt sich, wie eng die Betriebssicherheit von softwareintensiven Embedded-Systemen mit dem Schutz vor unbefugtem Zugriff oder gezieltem Angriff verbunden ist. Die dazu notwendigen Maßnahmen stellen Software- und Hardwareentwickler gleichermaßen vor hohe Herausforderungen.