Ein Blick. Mehr benötigt Stefan Küsters nicht, um auf Anhieb zu erkennen, ob sich im Code der Anwendung eine mögliche Schwachstelle befindet. Küsters ist Associate Director Software bei Qiagen - und damit ist er unter anderem für die Qualitätssicherung von Software zuständig, die die Instrumente zur automatisierten Vorbereitung und Analyse biologischer Proben des internationalen Unternehmens mit Hauptsitz in den Niederlanden steuern. "Unsere Produkte müssen höchsten Anforderungen im medizinischen Einsatz genügen. Ausfälle aufgrund von Softwarefehlern können wir uns nicht erlauben", sagt Küsters.
Um anfälligem Code auf die Spur zu kommen, setzt der Softwarearchitekt auf die vorgeschriebenen automatisierten Tests sowie auf Code Reviews und lückenlose Architekturdokumentationen.
Doch für den Anbieter von Probenvorbereitungs- und Testtechnologien in der molekularen Diagnostik, akademischen Forschung, Pharmaindustrie und sogenannten angewandten Testverfahren wie Forensik oder Veterinärmedizin reichte das noch nicht aus. "Wir wollten die gängigen Verfahren um eine zusätzliche Kontrollinstanz ergänzen, die uns eine schnelle und noch zuverlässigere Kontrolle ermöglicht."
Seit gut einem Jahr setzt Küsters deshalb die "Effectiveness Platform" von Software Diagnostics ein, mit deren Hilfe sich die Anwendungsentwicklungen analysieren und visualisieren lassen. In einer Softwarekarte, die wie ein Stadtplan aufgebaut ist, kann er sofort erkennen, ob definierte Metriken im Soll sind - oder ob der Code Schwachstellen aufweist: Blaue Einfamilienhäuser bedeuten "alles in Ordnung"; bei orangefarbenen Gebäuden sind regelmäßige Kontrollen ratsam. Und Hochhäuser in der Signalfarbe Rot zeigen akuten Handlungsbedarf an. Etwa 20 Metriken und Key-Performance-Indikatoren (KPIs) überwacht Küsters mit Hilfe der Plattform.
"Software ist aber eine Black Box"
"Bisherige Testmethoden bieten eine hohe Sicherheit; Software ist aber eine Black Box, in die man nicht reinschauen kann. So wie in der Medizin Röntgenbilder zu Diagnosezwecken eingesetzt werden, können wir nun auch in der Software-Entwicklung ein bildgebendes Verfahren verwenden", so Küsters. Die Informationen dazu holt sich die Effectiveness Platform aus den Tools und Repositorien, die im Laufe einer Entwicklung angelegt und genutzt worden sind. Zu ihnen gehört beispielsweise das Versionierungssystem, in dem jede Codeänderung der Entwickler abgelegt ist.
Diese Informationen ermöglichen es, Risiken frühzeitig zu erkennen und deren Trends über die Zeit zu verfolgen. Weitere ausgewertete Informationen kommen aus Testfall-Management-Systemen oder von bereits verwendeten Code-Checkern; aber auch der eigentliche Sourcecode wird durch die Effectiveness Platform vermessen. Wie ein Business-Intelligence System sammelt die Plattform alle Rohdaten ein, wertet sie mit Hilfe von BI-Methoden aus und stellt die Ergebnisse anschließend in übersichtlichen Softwarekarten dar.
Überblick in Echtszeit statt Excel-Listen
Statt meterlangen Excel-Ergebnislisten, die im Rahmen von zeitaufwändigen manuellen Code-Reviews erstellt werden, liefert das Instrument in Echtzeit einen ganzheitlichen Überblick über den Zustand der Anwendungssoftware - eine unverzichtbare Voraussetzung für das Risikomanagement im Rahmen komplexer Entwicklungen. So lassen sich beispielsweise Risiken viel früher erkennen, Ursachen, Gefahren und Folgen schneller definieren oder Aktionen gezielter treffen.
"Wir erkennen sofort, an welchen Stellen sich Entwicklungsbrennpunkte befinden und können entsprechende Gegenmaßnahmen einleiten - etwa indem wir die Komplexität der Funktionen oder die Zahl der Parameter reduzieren, so dass die Funktion nicht unübersichtlich wird", erklärt Küsters.
Wartung und Programmieren fallen leichter
Auch grundsätzliche Fragen - etwa ob bestimmte Anforderungen überhaupt testbar sind beziehungsweise wie hoch der entsprechende Aufwand ist - beantwortet die Effectiveness Platform. Zudem verringert die grafische Aufbereitung den Messaufwand.
Damit ergeben sich für Entwickler und IT-Management neue Möglichkeiten, an der grundsätzlichen Verbesserung des Quellcodes zu arbeiten: "Nicht nur die Wartung, auch das Programmieren von Modulen fällt leichter, wenn der Code sichtbar ist", so Küsters.
Qiagen - Visualisierung von Software
Branche |
Biotechnologie |
Firmenprodukte |
Instrumente zur automatisierten Vorbereitung und Analyse biologischer Proben |
Zeitrahmen |
Einsatz bei unterschiedlichen Entwicklungsprojekten mit Laufzeiten von ca. zwei Jahren |
Mitarbeiter |
Je nach Projekt sind 10 bis 30 Mitarbeiter mit Entwicklung, Test und den anderen Aufgaben rund um die Software-Entwicklung betraut, teilweise erheblich mehr |
Aufwand |
keine Angabe |
Dienstleister |
Software Diagnostics |
Produkt |
Effectiveness Platform |
Einsatzort |
Entwickelt wird in Deutschland und anderen Teilen der Welt |
Internet |