Mark Hermeling ♥ Industry of Things

Mark Hermeling

Senior Director Product Marketing, GrammaTech, Inc.
GrammaTech, Inc.

Mark Hermeling verweist auf über 15 Jahre Erfahrung in der Entwicklung von Software Tools, Betriebssystemen, Virtualisierungs- und Netzwerk-Technologie in sicheren, embedded und Echtzeitsystemen. Bei GrammaTech zeichnet er als Senior Director Product Marketing verantwortlich und fokussiert Produkt- und Geschäftsentwicklung der kommerziellen Softwareprodukte. Zuvor war er bei Wind River Systems (eine Intel Tochterunternehmen), Zeligsoft und IBM Rational tätig.

Artikel des Autors

Analyse von Binär-Code:
Den Drittanbietern auf die Finger schauen (Bild: GrammaTech)
#experte
Analyse von Binär-Code

Den Drittanbietern auf die Finger schauen

Die statische Analyse von Quellcode ist in den meisten Entwicklungs-Teams mittlerweile ein Standardprozess. Doch wie sieht es mit Code aus, der binär von Dritten zugeliefert wird? Hier gelangen die gängigen Test- und Analyse-Verfahren schnell an ihre Grenzen. Dennoch ist eine Analyse der Binaries wichtig - und mit dem richtigen Werkzeug auch möglich.

Weiterlesen
Codeinspektionen sollten ein fester Bestandteil einer jeden guten Entwicklungsarbeit sein.
#experte
Codeinspektionen

Code Reviews profitieren von statischer Analyse

Code Reviews (oder Inspektionen) sind eine effektive Möglichkeit, die Zahl der der Defekte in Softwareprojekten zu reduzieren. Tatsächlich ist eine Defektentfernungsrate von bis zu 75% möglich, was nichts anderes bedeutet, als dass zwei Drittel aller Bugs während der Entwicklungsphase eines Projekts entfernt werden. Führt man sich die Kosten der Fehlerbehandlung an bereits ausgelieferten Produkten vor Augen, wird deutlich, dass Codeinspektionen fester Bestandteil einer jeden guten Entwicklungsarbeit sein sollten.

Weiterlesen
Ohne geeignete Sicherheitsmaßnhamen bieten IT-Strukturen viele Einfallstore für Datenklau und Malware.
#experte
Software Sicherheit im Fokus

Wie verwundbar ist Ihre Software?

Die Verheißungen der statischen Analyse sind zweifellos überzeugend, doch die meistgestellte Frage lautet: „Wo fangen wir an?“ Weil das Thema Security allerhöchste Priorität hat, heißt es auch oft: „Wie verwundbar ist unsere Software, und wo setzen wir an, um die Schwachstellen zu beseitigen?“ Dieser Text beschreibt einen sinnvollen Ansatzpunkt und eine Vorgehensweise, wie man bestehende Schwachstellen verstehen und die statische Analyse als Bestandteil eines kontinuierlichen Verbesserungsprozesses nutzen kann.

Weiterlesen
Security ist immer noch einer der bestimmenden Faktoren für das IoT.
#experte
Statische Analyse und Railway Software

Sicherheitskritische Software und die EN 50128 Norm

Verkehrssysteme und insbesondere Eisenbahnsysteme sind Wachstumsmärkte, in denen Software zur Befehlsgabe, Kommunikation und Steuerung immer stärkeren Einsatz findet. Weil Fehler und Unfälle schwerwiegende Folgen nach sich ziehen, untersteht die Entwicklung dieser Software strengen Normen wie der EN 50128, die den Einsatz sicherer Praktiken, Tools und Techniken beim Programmieren sehr genau definiert.

Weiterlesen
Die Software für medizinische Geräte muss besonderen Anforderungen entsprechen.
#experte
IEC 62304 Norm verlangt sicherheitskritische Software

Software in medizinischen Geräten

Der IEC 62304 Standard definiert einen Risiko- und Qualitäts-bewußten Software-Entwicklungsprozess. Er entstand aus der Erkenntnis, dass Software in medizinischen Geräten eine tragende Rolle spielt, und dass die SW-Qualität und Schadensverhütung bei der SW-Entwicklung entscheidend sind. Von der Medizintechnik erwartet man, dass sie auf breiter Entwicklungspraxis basiert (unter dem Schirm eines Good Manufacturing Process). Software-Entwicklungstools und speziell statische Analysetools sind Teil einer guten Softwareentwicklungspraxis und unterstützen Medizingerätehersteller, um sichere und zuverlässige Software zu erzielen.

Weiterlesen
Security-First Design Philosophie: GrammaTech empfiehlt einen 4-stufigen  Sicherheitsansatz bei der SW-Programmierung
#experte
Security-First Design-Philosophie

Statische Analyse für IIot-Geräte

Im Industrial Internet of Things (IIoT) sind Geräte, die industrielle Steuerungssysteme bilden, oft wegen Einschränkungen bei Design und Kapazität nicht sicher. Das gilt auch für die eingesetzten Protokolle, so dass das blinde Vertrauen in die physische Sicherheit ziemlich gewagt ist (z.B. Anschuss von Geräten an einem lokalen Netzwerk). Abhilfe schafft die Implementierung von Sicherheit auf Systemlevel, als Teil des sicheren Softwaredesigns und –entwicklung. Hier bieten statische Analysetools Hilfestellung bei der Verbesserung der Softwaresicherheit – auch für IIoT-Geräte.

Weiterlesen
So lassen sich C++-Templates separat kompilieren.
#experte
Warum kann ich meine Methodenrümpfe nicht in eine cpp-Datei packen?

Separate Kompilierung von C++-Templates

Sie haben es also geschafft, Ihren C/C++-Code in gut organisierte Kompilierungseinheiten aufzuteilen, halten Ihre Header und Implementierungen fein säuberlich getrennt und modularisiert, und Ihr Build-System ist schlank und rundum gelungen. Trotzdem müssen Sie eines Tages C++-Templates intensiv nutzen, und plötzlich ist es mit der schönen Ordnung vorbei. Bei meinem Ausflug in die Template-Programmierung fragte ich mich sehr bald: Warum kann ich meine Methodenrümpfe nicht in eine cpp-Datei packen?

Weiterlesen
Wie funktioniert die Portierung eines bereits multithreading-fähigen Projekts von Einzelprozessorplattformen auf Mehrprozessorplattformen?
#experte
Mehrkern-Prozessoren sind ein Problem für Multithread-Code

Mehrkern-Prozessoren sind ein Problem für Multithread-Code

Bedingt durch den Siegeszug der Mehrkern-Technologie im Verlauf der letzten zehn Jahre sehen sich immer mehr Entwickler mit der Herausforderung konfrontiert, parallele Software zu programmieren.
Multithreading ist eine der gängigsten Architekturen für die Entwicklung paralleler Software. Stabile Anwendungen mit Multithreading-Fähigkeiten zu entwickeln, ist jedoch alles andere als trivial.

Weiterlesen
Wie funktioniert die Portierung eines bereits multithreading-fähigen Projekts von Einzelprozessorplattformen auf Mehrprozessorplattformen?
#experte
Mehrkern-Prozessoren sind ein Problem für Multithread-Code

Mehrkern-Prozessoren sind ein Problem für Multithread-Code

Bedingt durch den Siegeszug der Mehrkern-Technologie im Verlauf der letzten zehn Jahre sehen sich immer mehr Entwickler mit der Herausforderung konfrontiert, parallele Software zu programmieren.
Multithreading ist eine der gängigsten Architekturen für die Entwicklung paralleler Software. Stabile Anwendungen mit Multithreading-Fähigkeiten zu entwickeln, ist jedoch alles andere als trivial.

Weiterlesen
Security ist immer noch einer der bestimmenden Faktoren für das IoT.
#experte
Statische Analyse und Railway Software

Sicherheitskritische Software und die EN 50128 Norm

Verkehrssysteme und insbesondere Eisenbahnsysteme sind Wachstumsmärkte, in denen Software zur Befehlsgabe, Kommunikation und Steuerung immer stärkeren Einsatz findet. Weil Fehler und Unfälle schwerwiegende Folgen nach sich ziehen, untersteht die Entwicklung dieser Software strengen Normen wie der EN 50128, die den Einsatz sicherer Praktiken, Tools und Techniken beim Programmieren sehr genau definiert.

Weiterlesen
So lassen sich C++-Templates separat kompilieren.
#experte
Warum kann ich meine Methodenrümpfe nicht in eine cpp-Datei packen?

Separate Kompilierung von C++-Templates

Sie haben es also geschafft, Ihren C/C++-Code in gut organisierte Kompilierungseinheiten aufzuteilen, halten Ihre Header und Implementierungen fein säuberlich getrennt und modularisiert, und Ihr Build-System ist schlank und rundum gelungen. Trotzdem müssen Sie eines Tages C++-Templates intensiv nutzen, und plötzlich ist es mit der schönen Ordnung vorbei. Bei meinem Ausflug in die Template-Programmierung fragte ich mich sehr bald: Warum kann ich meine Methodenrümpfe nicht in eine cpp-Datei packen?

Weiterlesen
Codeinspektionen sollten ein fester Bestandteil einer jeden guten Entwicklungsarbeit sein.
#experte
Codeinspektionen

Code Reviews profitieren von statischer Analyse

Code Reviews (oder Inspektionen) sind eine effektive Möglichkeit, die Zahl der der Defekte in Softwareprojekten zu reduzieren. Tatsächlich ist eine Defektentfernungsrate von bis zu 75% möglich, was nichts anderes bedeutet, als dass zwei Drittel aller Bugs während der Entwicklungsphase eines Projekts entfernt werden. Führt man sich die Kosten der Fehlerbehandlung an bereits ausgelieferten Produkten vor Augen, wird deutlich, dass Codeinspektionen fester Bestandteil einer jeden guten Entwicklungsarbeit sein sollten.

Weiterlesen