Kundenbetreuung bei der Statischen Codeanalyse
(Interview mit Dipl.-Ing. Royd Lüdtke, Leiter Pre-Sales Static Analysis Tools bei der Verifysoft Technology GmbH)Dipl.-Ing. Royd Lüdtke: "Meine Aufgabe als Leiter des Pre-Sales- und Support-Bereichs für Static Analysis Tools ist es, dem Kunden die technischen Hürden bei der Einführung von Softwaretools zu nehmen und die Einarbeitungsphase in ein Produkt möglichst kurz zu halten."
Herr Lüdtke, was ist Statische Codeanalyse und warum spart ein gutes Analysetool Kosten ein?
Die Statische Codeanalyse überprüft den Code auf Syntax, Semantik, Kontrollfluss- und Datenflussanomalien, Nebenläufigkeitsprobleme und Einhaltung von Codier-Richtlinien/Standards. Statische Analysetools decken eine Vielzahl von Bugs auf, erheben Metriken und weisen auf sicherheitsgefährdende Schwachstellen hin. Da hierbei der Code nicht ausgeführt wird, können statische Überprüfungen schon sehr früh im Entwicklungsprozess durchgeführt werden. Die Fehlerbeseitigung ist zu diesem Zeitpunkt noch relativ günstig. Deshalb ergeben sich durch den Einsatz der statischen Codeanalyse neben der Steigerung der Softwarequalität auch hohe Kosteneinsparungspotentiale.
Wenn man sieht, wie schnell potenzielle Fehler durch ein statisches Analysewerkzeug gefunden werden und wie lange man benötigt, solche Bugs (wenn überhaupt möglich) durch Debugging-Sessions zur Laufzeit auf Systemebene zu identifizieren, ist man schnell vom Einsatz statischer Codeanalysewerkzeuge überzeugt.
Ist im fortgeschrittenen Projektstadium die Software dann ablauffähig, ist es sinnvoll, die statische Analyse durch dynamische Tests zu ergänzen. Insofern kann man dann sicher sein, dass sozusagen alles getan wurde was möglich ist, um eine gute Software-Qualität zu erreichen.
Welche Werkzeuge bieten Sie für die Statische Codeanalyse an?
Für die Programmiersprachen C und C++ haben wir CodeSonar von CodeSecure im Programm. CodeSonar ist eines der führenden statischen Analysewerkzeuge für C und C++. Neben der Analyse des Quellcodes bietet CodeSonar die Besonderheit, auch Programmteile zu analysieren, die nur im Binärcode vorliegen. Dies ist vor allem für sicherheitskritische Anwendungen unverzichtbar, wenn eingebundene Programmteile von Drittanbietern nicht im Quellcode vorliegen und deren Qualität somit potentiell unbekannt ist.Die Vernetzung im Internet of Things bringt es mit sich, dass nicht nur – die in der Regel in C oder C++ geschriebene – embedded Software als sicherheitskritisch einzustufen ist, sondern auch verbundene Software, die beispielsweise in Java oder C# implementiert wurde.
Um auch diese Software auf ihre Qualität prüfen zu können, sind wir eine Partnerschaft mit JuliaSoft eingegangen. JuliaSoft bietet mit dem Julia Static Analyzer ein Werkzeug insbesondere für die semantische statische Analyse von Enterprise-Software in Java und C# an. Durch die Integration des Julia Static Analyzers in CodeSonar werden die bisher unterschiedlichen Software-Welten "embedded Software" mit ihrer hardwarenahen Programmierung und die Enterprise-Programmierung aus Sicht der Software-Analyse zusammengebracht.
Imagix 4D ist ein Tool um unbekannten C, C++ und Java Code durch aussagekräftige Visualisierung schneller zu verstehen. Es erleichtert die Beurteilung der Code-Qualität durch diverse statische Prüfungen und Erhebung von Metriken. Imagix 4D unterstützt Sie durch teilautomatisierte Prüfungen und Erstellung von Reports bei Code-Reviews. Es visualisiert und dokumentiert Unterschiede zwischen verschiedenen Softwareversionen. Das Werkzeug wird unter anderem auch beim Reverse-Engineering und Refactoring eingesetzt.
Was ist Ihre Aufgabe bei Verifysoft?
Meine Aufgabe als Leiter des Pre-Sales- und Support-Bereichs für Static Analysis Tools ist es, dem Kunden die technischen Hürden bei der Einführung von Softwaretools zu nehmen und somit auch die Einarbeitungsphase in so ein Produkt möglichst kurz zu halten.Verifysoft hat sich da eine große Kompetenz aufgebaut und gibt dieses Wissen natürlich gerne weiter.
In diesem Rahmen bietet Verifysoft sowohl allgemeine als auch produktspezifische Schulungen, Seminare und Trainings an. Ich selbst führe Produkttrainings beim Kunden durch. Innerhalb von zwei Tagen schulen wir unsere Kunden intensiv auf ein spezielles Produkt.
Wie kann man sich den Prozess der Produkteinführung beim Kunden vorstellen?
Zunächst ist es unsere Aufgabe, die angebotenen Testwerkzeuge bekannt zu machen. Dies geschieht unter anderem durch Vorträge auf Konferenzen. Wenn der Kundenkontakt hergestellt ist, gibt es meist zunächst intensive Gespräche um zu eruieren, welches Werkzeug am besten die Kundenanforderungen abdeckt. Es wird abgeklärt welche Schritte notwendig sind um die Qualität der Software beim Kunden zu erhöhen bzw. eine geforderte Zertifizierung zu erreichen. Wir beraten inwieweit sich die jeweiligen Werkzeuge in eine bestehende Toolchain einfügen.Im nächsten Schritt wünscht der Kunde meist eine Evaluierung des Produkts. Oftmals sind wir beim Interessenten vor Ort und unterstützen ihn bei der Installation. Natürlich klären wir auch geschäftliche Dinge ab – Lizenzpreise und Lizensierungsarten spielen neben der Qualität des Werkzeugs auch eine wichtige Rolle.
Im Rahmen der Evaluierung kann das Werkzeug bereits vor Ort eingeführt werden. Es ist wichtig, dass das Tool Akzeptanz bei den Entwicklern und Projektmanagern findet. Hier unterstützen wir den Kunden bei seinen Fragen und der Lösung eventueller Probleme bis das Ganze dann "rund läuft".
Welche Vorteile bieten Schulungen bei der Einführung eines Statischen Codeanalysetools?
Die Statischen Analysetools sind meist sehr komplex. Man kann sie zwar sehr leicht installieren und auch erste Schritte durchführen, aber wenn eine wirklich tiefgehende Analyse der eigenen Softwareprojekte durchgeführt werden soll, sollten für optimale Ergebnisse, die Funktionalitäten des Analysewerkzeuges optimal genutzt werden.Je nach Projekt differiert der Schwerpunkt der Analyse. Dies kann zum Beispiel das Aufdecken von Nebenläufigkeitsproblemen sein. Deshalb gibt es bestimmte Modelle, die entwickelt werden damit die Analyse möglichst scharf ist. Das ist Spezialwissen, was den Kunden normalerweise in Handbüchern nicht vermittelt wird.
Wir kommen deshalb zum Kunden ins Haus. Dort schulen wir zunächst die Administratoren, die die Installation betreuen müssen. Für die Entwickler haben wir einen ganzen Tag vorgesehen. Diese erhalten die Möglichkeit vorbereitete Übungen unter Realbedingungen durchzuführen und zuvor erlernte Lösungsansätze direkt anzuwenden
Können die Kunden dann auch individuelle Fragen mit Ihnen besprechen?
Eine gute Kundenbetreuung ist Voraussetzung für eine effiziente Produktevaluation. Fragestellungen lassen sich vor Ort immer einfacher lösen. Darüber hinaus können die Kunden natürlich auch später jederzeit auf meine Kollegen und mich zukommen. Die Beantwortung von Fragen ist ohnehin auch nach Inbetriebnahme im Rahmen des Supportauftrags gegeben. Wir stehen per Mail oder per Telefon zur Verfügung. Dem Kunden wird dann weitergeholfen. Wir sind erst zufrieden wenn unsere Kunden es sind.Diplom-Ingenieur Royd Lüdtke leitet bei Verifysoft Technology den Bereich Pre-Sales und Support für Statische Codeanalysetools im deutschsprachigen Raum. Royd Lüdtke hat umfangreiche Berufserfahrung als Applikationsingenieur und Berater bei einer Vielzahl von Firmen und Institutionen wie New Era Of Networks, Sybase, Rogue Wave Software und dem Fraunhofer Institut. Lüdtke studierte in Dortmund Elektrotechnik und Energietechnik, hält mehrere Patente und ist Autor von Veröffentlichungen im IT-Bereich.
Kontakt: +49 781 127 8118-8
Kontakt: +49 781 127 8118-8