#Tools

AU – Application Understanding

Home 9 Tools 9 AU – Application Understanding

Dieses Verfahren verhilft Ihnen die Funktionen Ihrer Systeme zu identifizieren.

Das Application Understanding (AU) ist ein Tool, mit der sich die Businesslogik und weitere relevante Informationen aus dem Quellcode extrahieren lassen. Es ist aber auch das Verfahren, mit dem wir Ihre Systeme analysieren.

Das Application Understanding Verfahren kann unabhängig von der Business Flow Suite, unserem Modernisierungstool,  eingesetzt werden. Dieses Verfahren verhilft Ihnen die Funktionen Ihrer Systeme zu identifizieren.

The source code is the truth!

Was immer Sie mit Ihrem Quellcode tun wollen – nach dem Brownfield Verfahren weiterentwickeln, den Code neu schreiben oder in einem anderen Verfahren modernisieren – Sie müssen die Businesslogik Ihrer Anwendung kennen. Selbst wenn ein Quellcode genau dokumentiert ist, kann man sich nie sicher sein welche zusammenhänge im Code bestehen, die Risiken bedeuten.

Aus diesem Grund arbeiten wir nach dem Konzept: “The source code is the truth”.

Die Application Understanding Methode scannt Ihre Anwendung und extrahiert die Businesslogik, ohne andere, nicht relevante Teile, wie z.B. das Logging oder Managementteile, in Betracht zu ziehen.

Codeanalyse ist klassisch ein Top-down-Verfahren. Hierbei ist das Risiko, dass die Komplexität in diese Richtung wächst.

Das Application Understanding erkennt die Output Endpunkte im Code.

Unsere Application Understanding Methode hat den umgekehrten Ansatz: Es erkennt die Output Endpunkte im Code. Ab hier geht es zurück und es werden alle Codefragmente gesammelt, die zu diesem Datenpunkt führen.

Die Application Understanding Methode kann für verschiedene Sprachen eingesetzt werden. Gerne können Sie uns bei Interesse kontaktieren.

AU4J – Application Understanding for JAVA.

Oftmals sind transformierte Anwendungen nicht optimal für Architekturen ausgelegt

Aufgrund der stetig wachsenden Anzahl an Cloud-Architekturen und den dadurch einhergehenden Transformationen, ändern sich auch die Anwendungsanforderungen und Programmstrukturen. Oftmals sind transformierte Anwendungen nicht optimal für diese Architekturen ausgelegt. Davon sind auch viele aktuell bestehende Java-Anwendungen nicht ausgenommen. Daher haben wir es zum Ziel gemacht unsere bestehende Application Understanding perfekt an Java anzupassen.

Dieses Tool analysiert und verbessert die Cloud-Fähigkeit Ihres bestehenden Java Codes

Hierdurch entstand unser webbasiertes AU4J (Application Understanding for Java). Dieses Tool analysiert und verbessert die Cloud-Fähigkeit Ihres bestehenden Java Codes, damit Sie für die Zukunft gewappnet sind.

Unser AU4J lässt sich ganz leicht in IDE integrieren (ein JetBrains IntelliJ IDEA plugin steht ebenfalls zur Verfügung). Zudem bietet es neben der Geschäftslogik-Extrahierung noch einige weitere Funktionen, um Ihre Anwendungswartungen und Brownfield-Entwicklungen zu unterstützen.

Scan & Analysis

Scan, vergleichende Untersuchung und Analyse der Applikation auf Basis des Programm- / Quellcodes.

Modules

Nach der Analyse wird die Hierarchie der Anwendungsmodule angezeigt.

Dead-Code Analysis

Nicht genutzte Teile des Programmcodes in der Applikation werden identifiziert. Mit dem rekursiven Algorithmus werden ebenfalls nicht aufgerufene Code Elemente erkannt.

Entities

Eine Liste von Applikation Entitäten wird angezeigt. Die Struktur dieser Einheiten kann in eine Liste nebeneinander geordnet werden.

Queries

Alle benannten und in-line Abfragen der Anwendung werden aufgezählt. JPQL- und SQL-Generierungen werden angezeigt.

SQL Finder

Aus verschiedenen Gründen muss oft die Quelle einer SQL-Abfrage gefunden werden. Basierend auf einer spezifischen SQL-Abfrage identifiziert diese Funktion den Befehl im Code und gibt diesen wieder. Mit einem Klick wird damit der komplette Code der Abfrage angezeigt.

Paint

Eine auf neue Verfahren basierende, innovative „Business rule extraction“ Technologie.

Diese Funktion bekam ihren Namen aus dem medizinischen Bereich, der Angiography. Sie zeigt mit Endpunkten die verbundenen Quellcode-Teile an. Wird ein Output Endpunkt gefunden und angezeigt, färbt die Funktion, in einer gewählten Farbe, den Teil des Codes ein, der zu diesem Endpunkt geführt hat. Ebenso passiert dies mit den Input Endpunkten. Hier werden die Quellcode-Abschnitte gefärbt, die aus diesem Punkt herausführen und diesen verarbeiten.

Impact analysis

Das Application Understanding (AU) ist an das Versionsverwaltungssystem angebunden, in dem sich der Quellcode befindet. Gibt es Änderungen im Quellcode, zeigt die Software mit dem Commit Identifier an, welche Funktionen (User cases) getestet werden müssen. So wird ein kompletter, zeitaufwendiger Regressionstest vermieden. Diese Funktion spart enorme operative und Entwicklungsaufwände ein.

Security Analysis

Das AU liefert wichtige Antworten bei sicherheitsrelevanten Fragen. Sicherheitsexperten und Hacker suchen und nutzen die Schwachstellen in Systemen.

Sie bewerten diese nach ihrem finanziellen Wert. Häufig sieht man aber den Wert eines Systems nicht, bevor Informationen extrahiert werden. Hier ist der Schaden oft höher als der eigentliche Wert. Diese Funktion bekam ihren Namen aus dem medizinischen Bereich, der Angiography. Sie zeigt mit Endpunkten die verbundenen Quellcode-Teile an. Wird ein Output Endpunkt gefunden und angezeigt, färbt die Funktion, in einer gewählten Farbe, den Teil des Codes ein, der zu diesem Endpunkt geführt hat. Ebenso passiert dies mit den Input Endpunkten. Hier werden die Quellcode-Abschnitte gefärbt, die aus diesem Punkt herausführen und diesen verarbeiten.

Vocabulary

Sammelt alle Begriffe als Namen, die in der Applikation genutzt werden. Führt den Benutzer durch den Kontext in dem verschiedene Ausdrücke und Wörter genutzt werden. Dies hilft beim Standardisieren des Systems und bei der Entwicklung einer gemeinsamen Sprachbasis für die Benutzer und Entwickler. Erlaubt es dem Entwickler außerdem Ausdrücke zu vermischen, sollte das System nicht nur in einer Programmiersprache entwickelt sein.

Cyclomatic Complexity

Zeigt die durchschnittliche Komplexität der Elemente in der Modul – Klasse – Methoden – Hierarchie an. Damit können Testaufwände geschätzt werden und es zeigt Methoden an, die im Quellcode nur aufwendig gepflegt werden können.

Sie haben Fragen?

Unsere Experten aus allen Bereichen unterstützen Sie und stehen Ihnen bei allen Fragen mit Rat und Tat zur Seite.

Oder werfen Sie einen Blick auf unsere Referenzen.