8
Das Tool für Code-Analyse und Software-Re-Engineering.

Das Tool für Code-Analyse und Software-Re-Engineering

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Das Tool für Code-Analyse und Software-Re-Engineering

Das Tool für Code-Analyse und Software-Re-Engineering.

Page 2: Das Tool für Code-Analyse und Software-Re-Engineering

Ihre Vorteile

Sie identifizieren und eliminieren nicht mehr benötigten Code.

Sie dokumentieren die Realität – jederzeit wiederholbar.

Sie ermöglichen bessere Kommunikation zwischen Fachbereich und Entwicklung.

Sie finden leichter Nachwuchs – und dieser wird doppelt so schnell produktiv.

eXplain deckt insbesondere folgende Funktionalitäten ab:

1. Code-Analysen unterschiedlicher Sourcecode-Quellen

2. Schnittstellenanalysen durch Clustering

3. Komplexitätsvermessung anhand von Regeln und Metriken

4. Kundenindividuelle und erweiterbare technische Dokumentation, die vollautomatisch generiert und jederzeit wiederholt werden kann

Gewachsene Software-Monolithen sind

komplex funktional überladen technologisch veraltet

Page 3: Das Tool für Code-Analyse und Software-Re-Engineering

Sourcen

statische Info

eXplainAnalyse

eXplainClustering

Integriert in Eclipse. Flexibel in der Handhabung. Präzise im Ergebnis.

eXplainQA

dynamische Info externe Info

Parser Individualinfo

Repository

Module Statements und Subroutinen Data Elements (Felder, Attribute, Variablen, Parameter)

Das Repository besteht aus nur 20 Tabellen zur Verwaltung der einzelnen Entitäten und deren Beziehungen zueinander. Dadurch ist es überschaubar und gut strukturiert.

Es kann leicht für eigene SQL-Abfragen genutzt werden.Die Zugriffe und damit auch die Visualisierung sind sehr performant!

Auf einen Blick

Das Repository ist die Grundlage für die Visualisierung und basiert auf drei Ebenen

PROGRAM PGM_A....SUBROUTINE SUB1VAR A, B, C A = B B = B * DEND

SUBROUTINE SUB2 (PARAM1)VAR A A = PARAM1 + 2 RETURN AEND

MAIN VAR X, Y CALL SUB1 Y = CALL SUB2 (X)END

Mit eXplain werden beliebige Sourcecode-Quellen über ausgereifte Parser, die auch kundenindividuell angepasst werden können, gescannt und sowohl statische wie auch dynamische Informationen ausgewertet.

Dabei werden vorrangig verwendete Technologien wie z.B. Cobol, PL I, JCL, RPGLE, DDS, CL etc. abgedeckt.

Alle Informationen aus den Parsing-Vorgängen zuzüglich kundenindividueller Aspekte (z.B. im Sourcecode mit speziellen Tags versehene Kommentare) werden in einem Db2-Repository abgespeichert. Für jegliche Analysen, Auswertungen und Dokumentationen kann das Repository direkt über SQL-Abfragen ausgewertet werden.

Page 4: Das Tool für Code-Analyse und Software-Re-Engineering

Funktional ausgereifte Parser scannen den Sourcecode und legen alle relevanten Meta-Informationen im eXplain Repository ab. Datenbankstrukturen (Db2, DDS, Adabas) werden dem Repository über extern bereitgestellte Metadaten hinzugefügt.

Informationen aus exportierten JCLs z.B. über DD Statements, EXEC Aufrufe usw. können die Parser ebenfalls im Repository ablegen und damit die Verknüpfung zu den Programmen herstellen.

Ein Import z.B. aus Tivoli exportierten, Jobketteninformationen ist in eXplain möglich und bildet die Abhängigkeiten zwischen Jobs und darin referenzierten Programmen und Ressourcen ab. Mit eXplain können über die Analyse- und Visualisierungsengines sowie durch die Nutzung des Clustering-Features die folgenden Ergebnistypen erzeugt werden:

1. Code-Analyse und Dokumentation mit dem eXplain Code-Analyzer

Objekt-Strukturen

(über Code-Quellen hinweg)

Verwendungsnachweise

Diese können entweder direkt über die Informationen im Repository, über in eXplain verfügbare Assistenten oder interaktiv durch die Visualisierungsengines erzeugt werden.

Datenflüsse

(über Code-Quellen, Objekte und Anwendungssysteme hinweg)Die Feldverfolgung ist an dieser Stelle sowohl „Top-Down“ als auch „Bottom-up“ möglich.

Page 5: Das Tool für Code-Analyse und Software-Re-Engineering

Ressourcenverwendung

Welche Programme verwenden eine bestimmte Datenbanktabelle:

Schnittstellen

(Anwendungssystem-übergreifende Verwendungen)Nachfolgendes Beispiel zeigt, wie in eXplain Schnittstellen zwischen Anwendungsclustern detailliert dargestellt werden können. Dabei kann interaktiv (über rechte Maus-Taste > „open source“) jeweils genau an die Stelle im Sourcecode navigiert werden, wo der Call stattfindet:

Das nachfolgende Beispiel zeigt die Visualisierung eines kundenspezifischen Nachrichtensystems (vergleichbar zu MQ), welches über externe Beschreibungen in eXplain importiert wurde:

Der periodische Import aller aktualisierter Quellen kann unmittelbar z.B. aus Sourcecode-Management Systemen eingerichtet und in den vorhandenen Entwicklungsprozess nahtlos integriert werden. eXplain aktualisiert dadurch automatisch alle Auswertungen.Die Ergebnisse der Codeanalysen werden den Entwicklern interaktiv über eine Eclipse-Oberfläche zur Recherche zur Verfügung gestellt.

Page 6: Das Tool für Code-Analyse und Software-Re-Engineering

Eine wichtige Anforderung für ein effizientes Application Management oder einen reibungslosen Umstieg auf ein Neusystem ist neben der technischen Code-Analyse auch die Definition und Strukturierung von einzelnen Funktionsblöcke der Anwendung. Nur so können Schnittstellen zwischen Anwendungsstrukturen klar erkannt und beschrieben sowie Komplexitäten verschiedener Funktionsblöcke miteinander in Relation gesetzt werden. Hierzu bietet eXplain das sogenannte Clustering. Hierbei werden in eXplain die vom Kunden vorzugebenden fachlichen Entitäten definiert. Den Entitäten werden anschließend die jeweils zugehörigen technischen Artefakte zugewiesen. eXplain kann dann die technische Analysesicht und die Clusterzuordnung übereinander gelagert grafisch darstellen und somit ein ganzheitliches Bild auf die Anwendungen ermöglichen.

Mit dem eXplain QA-Dashboard steht ein Werkzeug zur automatisierten Komplexitätsmessung sowie fortlaufenden Qualitätskontrolle zur Verfügung. Dabei kann ein speziell optimierter und im Code messbarer Komplexitätsbegriff gemäß den Richtlinien des Kunden und Erfahrungswerten der PKS definiert und parametrisiert werden.

Basierend auf Sprachgrammatiken und definierten Regeln können unerwünschte Konstellationen im Sourcecode erkannt und vermessen werden. Zudem können diese Informationen dem eXplain-Nutzer als Warnung gemeldet werden. Problematische Situationen wie fehlende Überprüfung von Returncodes nach bestimmten Aufrufen (ESQL, CICS, MQ, …) oder performancekritische Algorithmen können dadurch automatisiert erkannt werden.

2. Fachliche Analysen (Schnittstellenanalysen) mit dem eXplain Clustering

3. Qualitäts-Analysen und Komplexitätsvermessung mit dem eXplain QA-Dashboard

Page 7: Das Tool für Code-Analyse und Software-Re-Engineering

Das Dashboard umfasst dabei verschiedene grafische Ansichten, die unterschiedliche Metriken / Daten visualisieren und vergrößern kann Standortmetriken Objektanzahl und –größe Ungenutzter Code Verschachtelungstiefe Schnittstellenanzahl

Die Ergebnisse der Komplexitätsmessung werden in einem übersichtlichen Dashboard in eXplain dargestellt.

QA Metriken Anzeige kritischer Fehlermeldungen Anzahl Meldungen je Regel-ID Wartbarkeitsindex Kommentierungsgrad Verteilung der Metrikwerte Qualität einzelner Module Wartbarkeitsindex im zeitlichen Verlauf auf Basis der Qualitäts-Snapshots

Zudem werden TOP-10 Handlungsempfehlungen zur Verbesserung der Qualität mit eXplain zur Verfügung gestellt. eXplain erlaubt es außerdem, die Messungen für definierte Cluster durchzuführen. Auch eine Historisierung der Qualitätsmerkmale durch das Erstellen von aktuellen Qualitäts-Snapshots für das ausgewählte Cluster ist möglich. Die Komplexitätsdefinition wird in eXplain implementiert und mit einer Kennzahl für Anwendungsgruppen, Anwendungen, Objekt-Gruppen oder Objekte dargestellt.

Page 8: Das Tool für Code-Analyse und Software-Re-Engineering

Mit eXplain kann eine für den Kunden optimierte technische Dokumentation generiert werden – jederzeit wiederhol- und nachvollziehbar. Dabei können z.B. dargestellt werden:

Objektliste (über alle Code-Quellen hinweg) Liste der Vorgänger/Nachfolger Liste der „Hauptobjekte“ (Job, Programm im Job, Dialog-Hauptprogramm, Schnittstellen-Modul, u.a.) Objektstruktur pro Hauptobjekt (über alle Code-Quellen hinweg) Datenfluss Bereitgestellte Schnittstellen/Ressourcen zu anderen Anwendungsclustern Genutzte Schnittstellen/Ressourcen von anderen Anwendungsclustern

In den Objekten speziell gekennzeichnete Inline-Kommentare werden in die Dokumentation der Code-Quellen integriert. Die technische Dokumentation kann pro Anwendungscluster generiert und als PDF-File exportiert werden. eXplain kann neben Auflistungen von Objektmodulen und/oder Schnittstellen auch dynamisch generierte Übersichtsdiagramme in die Dokumentation integrieren. Damit entsteht eine vollständige Dokumentation über Module und deren Abhängigkeiten.

4. Dokumentation