Soccer team in a huddle

Der Code als Haus

Feature | 7. Oktober 2014 von Johannes Bohnet 0

In einem Projekt des SAP Innovation Center mit dem Hasso Plattner Institut und Software Diagnostics werden Instrumente für die Analyse und Visualisierung von Code weiter entwickelt. Grundlage ist die Effectiveness Platform von Software Diagnostics, die mit Softwarekarten und anderen Visualisierungstools anzeigt, an welchen Stellen sich unnötige Komplexitäten, Abhängigkeiten oder Leistungsprobleme befinden – in Echtzeit.

Was passiert in meiner Software? Für Administratoren von SAP HANA, ABAP-Programmierer und Systemarchitekten ist es oft schwierig, bei großen Projekten immer auf dem aktuellen Stand zu sein. Jahrelange Entwicklung, Millionen Zeilen Quellcode und tausende Datenbanktabellen machen es schwer, den Überblick zu behalten: Software in dieser Größenordnung ist wie eine Black Box. Nicht nur die Entwicklung, sondern auch die spätere Wartung gestaltet sich daher oft kompliziert. Um das Funktionieren der Anwendungslandschaft sicherzustellen, müssen alle Beteiligten das System möglichst genau kennen.

Dazu gehören Informationen über den Zustand der Software, die sie im besten Fall mit einem Blick erfassen können und die die Abhängigkeiten innerhalb des Codes zuverlässig anzeigen. Mit Werkzeugen wie dem SAP Code Inspector lassen sich SAP-Entwicklungsobjekte überprüfen und auf Performance, Sicherheit, Syntax und Einhaltung von Namenskonventionen untersuchen. Der Qualitätsmanager oder der Projektleiter erhält eine Liste mit zum Teil mehreren tausend Einträgen. Das Problem: Er weiß nicht, in welchem Bereich der Gesamtarchitektur die jeweilige Regelverletzung auftritt.

Um diese besser einordnen zu können, hilft es zu wissen, ob sich Verletzungen dort häufen. Diese Information ist aus der Liste allerdings nur schwer abrufbar. Hinzu kommt: Es besteht insbesondere dort erhöhter Handlungsbedarf, wo viele Änderungen gemacht werden. Informationen darüber sind im Prinzip im SAP Change & Transport System vorhanden. Diese Informationsquelle ist jedoch von den anderen Quellen isoliert.

Um mehr aus den vorhandenen Informationsquellen herauszuholen, setzen Unternehmen wie EDEKA auf die Effectiveness Platform der Software Diagnostics GmbH, einem Spezialisten für Big Data und Visual Analytics. Sie fasst alle Daten aus dem Quellcode, der Laufzeitanalyse und den vorhandenen Repositorien in einem ersten Schritt zu einer aussagekräftigen Datenbasis zusammen. Anschließend analysiert sie die Daten mithilfe von Data Mining und macht sie mit innovativen Visualisierungstechniken sichtbar.

Prüfung verschiedener Quellen

Eine der Datenquellen ist dabei der Quellcode. Dieser wird – zusätzlich zu der Vermessung durch den SAP Code Inspector – auf seine interne Qualität (z.B. Komplexität, Anpassbarkeit und Verständlichkeit) und damit auf seine Zukunftsfähigkeit geprüft. Eine weitere Quelle ist das SAP Change & Transport System, in dem alle Aktivitäten der Entwickler über die letzten Jahre abgelegt sind. Diese Informationen zeigen, wer an welchen Codeteilen gearbeitet hat und wo sich Entwicklungs-Hotspots befinden. Mit ihnen lassen sich auch die Code-Stellen lokalisieren, an denen ungewöhnlich oft Fehler korrigiert werden mussten.

Wiederum eine andere Quelle ist der SAP Coverage Analyzer. Er liefert Daten, die Stellen anzeigen, an denen das Sicherheitsnetz durch Tests löchrig ist. Und die SAP Runtime Analysis macht Performance-kritische Codebereiche sichtbar. Die gesammelten Daten aus dem Quellcode, der Laufzeitanalyse und den vorhandenen Repositorien werden mit der Effectiveness Platform zu einer aussagekräftigen Datenbasis zusammengeführt. So ergibt etwa die Verknüpfung von Komplexitätskennzahlen und Änderungshäufigkeiten wertvolle Einsichten, aus denen sich direkt konkrete Handlungsempfehlungen ableiten lassen.

Sieht ein Verantwortlicher zum Beispiel, dass hochkomplexe Codestellen, die kürzlich starker Änderung unterlagen, kaum abgetestet sind, weiß er, dass an diesen Stellen das Sicherheitsnetz durch die Tests dichter geknüpft werden muss. So erhalten Software-Verantwortliche Antworten auf nahezu alle Fragen, die sie an ihre Software-Entwicklung stellen: Wo befinden sich Fehlerrisiken im Code? Wann muss ich Gegenmaßnahmen einplanen? Wo werden Entwickler besonders ausgebremst?

Komplette und interaktive 3D-Übersicht

Die Ergebnisse werden Anwendern nicht mehr in Listenform dargestellt, sondern unter anderem als Software-Karte, die in Form eines interaktiven 3D-Stadtplans eine komplette Übersicht über das System ermöglicht. Dabei repräsentiert jedes Gebäude eine Code-Einheit. Gebäude, die zum gleichen fachlichen Modul gehören, werden in Stadtbezirken zusammengefasst. Blaue Einfamilienhäuser repräsentieren auf der Karte unproblematische Programmteile. Rote Hochhäuser mit großer Grundfläche machen Problemstellen auf einen Blick sichtbar. Dabei handelt es sich zum Beispiel um Teile, die große, monolithische Strukturen aufweisen und zudem häufig geändert werden. Durch die Möglichkeit, den aktuellen Zustand mit einem früheren zu vergleichen und grafisch sichtbar zu machen, lassen sich Risiken und Entwicklungshindernisse frühzeitig erkennen. Nach diesem Prinzip lassen sich vielseitige Karten erzeugen, die den Beteiligten genau die Informationen liefern, die sie benötigen.

Software Map 5 (2)

Ein Software-Architekt kann so sehen, wie gut eine bestehende oder neue Architektur den Anforderungen entspricht. Kennen Qualitätsverantwortliche alle Hotspots, können sie die Tester auf die kritischen Stellen aufmerksam machen. Der Projektleiter sieht auf einen Blick, wo potenzielle Probleme stecken und ob die Wissensträger an den richtigen Stellen eingebunden sind. Und auch der Leiter einer IT-Abteilung profitiert: Er kann den internen Auftraggebern zum Beispiel veranschaulichen, wenn die Entwicklung einer Applikation aufgrund von unklaren Anforderungen mehr Zeit benötigt.

Übertragung auf SAP HANA

Seit Anfang letzten Jahres wird im Rahmen eines Kooperationsprojektes zwischen dem SAP Innovation Center in Potsdam, Software Diagnostics und dem Hasso-Plattner-Institut auch untersucht, wie sich dieser Ansatz der Software-Analyse und -Visualisierung auf SAP HANA übertragen lässt. Ziel ist es, ein Tool zur Verfügung zu stellen, mit dem Administratoren und Architekten auf einen Blick erkennen können, wie sich zum Beispiel der Arbeitsspeicherbedarf von SAP HANA während der Testphase und des Betriebs verhält. So lässt sich die Performance auf einen Blick und in Echtzeit richtig einschätzen und Anomalien auf den Grund gehen.

Die Effectiveness Platform im Videoporträt:

Video: YouTube

 

 

Bildquelle: Software Diagnostics

Tags: ,

Leave a Reply