Flow Graph Manipulator (FGM) 3.0 – Reverse-Engineering-Werkzeug für komplexe Softwaresysteme Anja Beier pro et con Innovative Informatikanwendungen GmbH 11. Workshop Software-Reengineering 04.-06. Mai 2009, Bad Honnef Agenda ¾ Ausgangssituation ¾ Spezifikation der Erweiterungen ¾ Programmanalyse ¾ Architekturanalyse ¾ Demonstration ausgewählter Funktionalitäten ¾ Fazit und Ausblick 04.05.2009 Anja Beier, pro et con GmbH 2 Ausgangssituation (1) ¾ FGM - Flow Graph Manipulator Bereits seit 10 Jahren kommerzielles Produkt Erfolgreich in verschiedenen Migrationsprojekten eingesetzt • • eCom Logistik (HPNonStop-COBOL-Anwendung) Amadeus Germany (BS2000-Migration, SPL nach C++) ¾ Eigenschaften Verschiedene Frontends (COBOL, PL/I, SPL, ...) Analyse von eingebetteten Systemen (SQL, DL/I, CICS) Detaillierte Analyse einzelner Quellprogramme Feingranulare Informationen • • • Datenfluss Steuerfluss Metriken und Statistikdaten 04.05.2009 Anja Beier, pro et con GmbH 3 Ausgangssituation (2) ¾ Motivation für Erweiterung Veraltete Benutzeroberfläche Æ Ablösung durch modernes Oberflächenkonzept Bisherige Funktionalität unvollständig für die Analyse komplexer Softwareprojekte Problem: Gewinnung programmübergreifender Informationen • Programmaufrufe • Aussage verschiedener Metriken bezogen auf das Gesamtprojekt Sicht auf die Gesamtapplikation ist wesentlicher Aspekt für Reverse Engineering und Redokumentation Æ Neue Funktionalität "Applikationswissen" 04.05.2009 Anja Beier, pro et con GmbH 4 Spezifikation der Erweiterungen Applikationswissen Architektur Programme Metriken Daten Datenbanken Quellen Dateien Programmdateien Statistik Interface grobgranulare Sicht feingranulare Sicht Interface Dateien 04.05.2009 Graphen Anja Beier, pro et con GmbH Datenbank 5 Programmanalyse (1) ¾ Ermittlung detaillierter Informationen eines Programms ¾ Repository – interne Programmrepräsentation Objekte (Variablen, Strukturen, Dateien, ...) Beziehungen (Anweisungen, Includes, ...) 04.05.2009 Anja Beier, pro et con GmbH 6 Programmanalyse (2) ¾ Repository-Graph: Individueller Aufbau für jede Programmiersprache • ca. 20 Objekttypen, ca. 60 Beziehungstypen Durchschnittliches COBOL-Programm: • ca. 10.000 Objekte, ca. 15.000 Beziehungen ¾ Beispiel: move 10 MOVE 10 TO CNT-VALUE. CNT-VALUE (cobol_data 6417 CNT-VALUE (loc 2 497 9) …) (cobol_constant 6420 “10” (loc 2 721 23)) (cobol_move 4024 (loc 2 721 18) (6417) (6420)) ¾ Abfragesprache FGM-LANguage 04.05.2009 Anja Beier, pro et con GmbH 7 Architekturanalyse grobgranulare Sicht Architekturanalyse 04.05.2009 Anja Beier, pro et con GmbH 8 Architekturanalyse - Repository ¾ Abstraktion von der feingranularen zur grobgranularen Sicht Abstraktionsprozess Repositories der Quellprogramme Architekturanalyse ArchitekturRepository Datenbank ¾ Architektur-Repository Programmübergreifend Sprachübergreifend Æ Entwurf eines Architekturgraph-Modells 04.05.2009 Anja Beier, pro et con GmbH 9 Architekturanalyse - Graphmodell call program describes metrics consists of code_object belongs to access datafile_object data_record 04.05.2009 access source_object program_file belongs to belongs to belongs to database_object sql_table include consists of repository sql_column Anja Beier, pro et con GmbH 10 include call consists of 'PROG1' PROG1 cobol_copy 'DATA1C' cobol_file consists of 'UPRO1' UPRO1 is part of cobol_call 'PROG1' cobol_file PROG1 cobol_prog 'UPRO1' cobol_const cobol_copy PROGNAME cobol_move PROGRAM-ID. PROG1. ... COPY DATA1C. ... MOVE 'UPRO1' TO PROG-NAME. CALL PROG-NAME. cobol_data 'DATA1C' 'UPRO1' cobol_file cobol_file is part of PROGRAM-ID. UPRO1. ... COPY DATA1C. Datei "UPRO1" UPRO1 Datenflussgraph (Repositories) 'DATA1C' cobol_prog Quellprogramme include Architekturgraph (SQL-Datenbank) Architekturanalyse - Abstraktion Datei "PROG1" 04.05.2009 Anja Beier, pro et con GmbH 11 Systemarchitektur Architekturanalyse ArchitekturRepository Repositories ArchitekturDatenbank FGM-LANguage-Interface JDBC-Interface XMLKonfigurationsfiles Applikationswissen Eclipse Rich Client 04.05.2009 Anja Beier, pro et con GmbH 12 Demonstration 04.05.2009 Anja Beier, pro et con GmbH 13 Fazit und Ausblick ¾ Realisierung der Funktionalität "Applikationswissen" als zentrale Komponente des FGM 3.0 ¾ Übernahme und Integration bewährter Module und Werkzeuge Frontends Repository-Modell FGM-LANguage-Interface ¾ Erweiterungen vorgesehen 04.05.2009 Anja Beier, pro et con GmbH 14 Vielen Dank pro et con Innovative Informatikanwendungen GmbH Analyse · Reengineering · Migration Anja Beier [email protected] www.proetcon.de Tel.: 0371/5347-324 Fax: 0371/5347-345 04.05.2009 Anja Beier, pro et con GmbH 15