Reinventing Quality

ERROR: Content Element with uid "4376" and type "dce_dceuid16" has no rendering definition!

Die Globalisierung führt heute dazu, dass in vielen Industriezweigen weltweit entwickelt wird. Das gilt natürlich auch in der Automobilindustrie und bei deren Zulieferern. Im Vergleich zu manch anderen Industrien ist aber der Sicherheitstandard hier - ähnlich wie in der Flugzeugindustrie oder bei medizinischen Geräten - sehr hoch. Dem gegenüber steht, dass mit C häufig eine Programmiersprache gewählt wird bzw. gewählt werden muss, die nicht gerade für ihre Robustheit bekannt ist. Dieser Mangel wird durch die Globalisierung noch verstärkt. Würden schon Entwickler mit den gleichen Voraussetzungen eine Aufgabe unterschiedlich lösen, so fächern sich die Möglichkeiten global noch weiter auf - unterschiedliche Ausbildungen sowie unterschiedliche kulturelle Hintergründe führen dazu, dass ein Problem weltweit auf unendlich viele Weisen gelöst wird. Der Compiler sagt nur, dass ein Programm syntaktisch korrekt ist, und ein Funktionstest, dass es in den ausgewählten Testfällen funktioniert. C bietet aber ausreichend Möglichkeiten, korrekte und funktionale Programme zu schreiben, die trotzdem unendlich viele Sicherheitslücken lassen und die mit dem konservativen Ansatz nicht entdeckt werden. Bei weltweiten Entwicklungsstandorten ist es in der Regel schwierig, durch Guidelines die schon erwähnten unterschiedlichen Voraussetzungen komplett abzudecken. Daher wird ein anderer Weg gegangen und über zusätzliche Regeln wird die Programmiersprache C so reduziert, dass bei weitgehendem Erhalt der Funktionalität die möglichen sicherheitskritischen Konstrukte verboten werden. Zusätzliche Regeln definieren zum Beispiel MISRA und CERT. Tools zur statischen Code-Analyse prüfen diese zusätzlichen Regeln und stellen damit sicher, dass aus der Sprache C eine sichere Programmiersprache wird. Positiver Nebeneffekt solcher statischer Code-Analysen ist, dass eine konstante Code-Qualität gewährleistet werden und kann dieses weltweit. Eine "neutrale" Instanz, die direkt an der Programmiersprache ansetzt, ist dabei gegenüber "lokalen" Richtlinien in jedem Fall zu bevorzugen. Idealerweise trägt eine regelmäßig angewandte statische Code-Analyse dazu bei, die Code-Qualität eines jeden einzelnen Entwicklers weltweit zu verbessern, so dass am Ende ein Gewinn für den Entwickler, aber auch für das Unternehmen herausspringt.

Andreas Osterhold, Hella KGaA Hueck & Co.

1988 Einstieg als Softwareentwickler bei der Nixdorf Computer AG in Paderborn. Von 1990 bis 1994 wissenschaftlicher Mitarbeiter an der Uni-GH Paderborn im Bereich Betriebssysteme und Rechnernetze - Schwerpunkt Datenbanken in Rechnernetzen. Mitarbeit im DIN Normenausschuss Informationsverarbeitungssysteme. 1994 bis 1999 wieder Softwareentwickler bei der GMS Software & Consulting in Paderborn im Bereich Client-Server-Anwendungen. Ab 1999 bei der ORGA Kartensysteme und den Nachfolgern Böwe Cardtec und Atlantic Zeiser als Softwareentwickler und Product Manager. Seit 2012 als Softwareentwickler, Projekt-Manager und Prozessdesigner bei der Hella KGaA Hueck & Co. im Bereich PMT (Processes, Methods and Tools) für einen Build Server, Code-Analyse-Tools und den Software Construction Process zuständig.