Suchen

Big-Data-Lösung von Seerene Heidelberger Druckmaschinen AG automatisiert Code-Analysen

Autor / Redakteur: Dr. Johannes Bohnet / Nico Litzel

Die Heidelberger Druckmaschinen AG unterstützt die Digitalisierung der Druckereiprozesse mit einem integrierten Software-Angebot. In der Softwareentwicklung setzt das Unternehmen auf Code-Analyse und -Visualisierung mit Big-Data-Technologie.

Firmen zum Thema

Die Heidelberger Druckmaschinen AG optimiert den Code von „Prinect“ – einer Software-Branchenlösung für Druckereien – mithilfe von Seerene.
Die Heidelberger Druckmaschinen AG optimiert den Code von „Prinect“ – einer Software-Branchenlösung für Druckereien – mithilfe von Seerene.
(Bild: Heidelberger Druckmaschinen AG)

Elf Millionen Zeilen Code, verteilt auf weit mehr als 100.000 einzelne Dateien: „Prinect“ – die Software-Branchenlösung für Druckereien der Heidelberger Druckmaschinen AG – ist ebenso umfangreich wie vielschichtig. Denn schon lange geht es beim Druck nicht mehr nur um mechanische Bauteile wie Anleger, Walz- und Farbwerke, sondern auch um das Aufbereiten, Organisieren und Archivieren von Daten.

„Mit unseren hochintegrierten Prinect-Lösungen liefern wir das komplette Betriebssystem für Akzidenz- und Verpackungsdruckereien“, sagt Matthias Hildebrandt, Senior Manager Quality Assurance der Heidelberger Druckmaschinen. Die Größe und Komplexität der Softwarelandschaft des Unternehmens hat vor allem historische Gründe. Viele Module sind Ergebnisse einzelner Projekte, die teilweise vor Jahrzehnten unabhängig voneinander in verschiedenen Firmen stattgefunden haben. Sie wurden zunächst als Einzelprodukte entwickelt und später durch Kooperationen mit anderen Unternehmen und die Eingliederung von Firmen wie der Linotype Hell AG in den Konzern zusammengeführt.

Heute werden einige Lösungen zwar weiterhin auch einzeln verkauft, doch bei der Entwicklung steht die Integration aller Lösungen zu einem durchgängigen Workflow-Management-System im Vordergrund.

Regelmäßige automatisierte Analysen

„Für die Software gilt dabei die gleiche Maßgabe wie für die Druckmaschinen. Innovationen, Qualität und Verlässlichkeit stehen an erster Stelle. Das Problem: Software kann man im Unterschied zur Druckpresse nicht sehen“, sagt Hildebrandt, der deshalb auf der Suche nach einem Werkzeug war, mit dessen Hilfe sich die Qualität der Software-Landschaft durch regelmäßige automatisierte Analysen überprüfen lässt. „Als wir zum ersten Mal gesehen haben, was Seerene ermöglicht, waren wir sofort begeistert.“ Denn die Lösung von Seerene analysiert nicht nur automatisch die Beschaffenheit des Codes, sondern stellt sie gleichzeitig in 3D-Stadtplänen dar.

„Auf ihnen erkennen wir zum Beispiel auf Anhieb, in welchen Bereichen unserer Software-Infrastruktur am meisten Aktivität herrscht und welche Arbeiten dort vorgenommen werden.“ Mithilfe der Analyse-Plattform können die für Software Verantwortlichen auf der Grundlage gesicherter Daten entscheiden, an welchen Stellen sie eingreifen müssen, weil ansonsten das Risiko von teuren Fehlentwicklungen steigt. Gleichzeitig sehen sie, wo sie Ressourcen abziehen können, weil beispielsweise die Komplexität eines Moduls drastisch reduziert werden konnte. „Das erhöht nicht nur die Qualität des Codes erheblich, sondern verbessert auch die Wirtschaftlichkeit der Softwareentwicklung“, so Hildebrandt.

Softwarequalität sichtbar machen

Technisch läuft die Analyse in wenigen Schritten automatisiert ab: Zunächst wird die komplette Software in einem Source-Control-Management-System erfasst. Mehr als 61.000 Java-Klassen werden bei Heidelberger Druck dazu ausgelesen. Hinzu kommen mehr als 10.000 C++-Dateien, 2.000 C-Dateien und 12.000 Header-Dateien, 3.000 Web-Items wie CSS und HTML-Dateien sowie 5.000 XML-Dateien. Dann übernimmt Seerene die Auswertung der Daten.

Mithilfe von Big-Data-Technologie analysiert sie Parameter wie die Menge des Codes, die Sauberkeit der Struktur, Häufigkeit von Änderungen, Art der Änderungen und andere Größen, die die Qualität und Sicherheit von Anwendungen beeinflussen. Die Summe der Ergebnisse wird schließlich in Form einer topografischen 3D-Übersicht angezeigt, ähnlich einem 3D-Stadtplan.

„Häuserblocks“ stellen den Code der einzelnen Module dar. Die Grundfläche des jeweiligen Blocks steht für die Anzahl der Codezeilen, die Höhe einzelner Gebäude veranschaulicht die Komplexität des verwendeten Codes. Farben zeigen die Häufigkeit von Änderungen im Code auf. „Wenn wir ein rotes Hochhaus sehen, wissen wir sofort: Hier müssen wir handeln, weil viele Softwareentwickler häufige Änderungen in hoch komplexem Code ausführen müssen. So haben wir beispielsweise gleich nach der Einführung der automatischen Code-Analyse einmal eine Java Klasse mit fast 15.000 Zeilen entdeckt.“

Hildebrandt und sein Team haben darauf sofort reagiert und sie zerlegt. Inzwischen ist sie auf 351 Zeilen geschrumpft. Das heißt, Entwickler können heute wieder viel flexibler und schneller arbeiten, wenn sie diese Klasse verwenden.

Schnellere Entwicklung

„Unter Berücksichtigung aller Folgeaufwände der früheren Komplexität, die heute wegfallen, lässt sich mit solchen Maßnahmen eine Beschleunigung der Entwicklung um den Faktor 10 erreichen. Und das bei gleichzeitig verbesserter Qualität des Codes“, so Hildebrandt. Erfolgsrezept: Viel Standard, wenig Anpassung

Das Auswertungswerkzeug Seerene nutzt Heidelberger Druckmaschinen im Standard. Anpassungen waren nur bei den Kommandozeilentools nötig, mit denen die Historie der Software aus dem Source Control Management System Clear Case von IBM Rational ausgelesen wird. Für die Zukunft plant Heidelberger Druckmaschinen die Umstellung auf Git.

Daneben haben sich Hildebrandt und sein Team die Einbindung der aktuell noch nicht erfassten Software in die Software-Analysen mit Seerene vorgenommen: „Aktuell sind 95 Prozent der Software erfasst, es fehlen also noch einige Randprodukte. Aber nach der Einführung von Git wird das auch geändert. Denn die wichtigste Voraussetzung für erfolgreiche Softwareproduktion ist das Qualitätsbewusstsein jedes einzelnen unserer weit über 100 Prinect-Entwickler. Hier hat uns die Lösung Seerene enorm voran gebracht. Man kann eben wesentlich besser über Qualität reden, wenn man sie sichtbar macht.“

Innovationstreiber Softwareentwicklung

Aufgrund der ständig zunehmenden Digitalisierung von Abläufen in der Druckerei ist die Softwareentwicklung für Heidelberger Druckmaschinen von hoher strategischer Bedeutung. Um die Zukunft des Konzerns und seiner mehr als 13.000 Mitarbeiter weltweit zu sichern, sind permanent Innovationen in Produkten und Services auf Basis von Software gefragt.

Weit über 100 Entwickler arbeiten ständig daran, den Funktionsumfang und die Benutzerfreundlichkeit der Prinect-Branchenlösung für Druckereien zu steigern. Dabei passen sie auch die Sicherheit der Produkte an neue Einsatzszenarien an, wie etwa die Steuerung von Workflows mit mobilen Endgeräten. Die Entwickler sind in kleinen, hoch effektiven Teams organisiert, die nach der Scrum-Methode arbeiten, um möglichst hochqualitative Entwicklungen schnell zur Marktreife zu führen. Den Überblick über die jeweiligen Projektstände der verschiedenen Teams und der bestehenden Software-Landschaft insgesamt behalten die Verantwortlichen ebenfalls mithilfe von Seerene.

Artikelfiles und Artikellinks

(ID:44099111)