270 likes | 491 Views
Software Reengineering Werkzeuge und Prozesse. Andreas Winter. Überblick. Software Reengineering (unser) Reengineering Begriff Reengineering Maßnahmen und Prozesse Reengineering Werkzeuge GUPRO (Generische Umgebung zum Programmverstehen) Interoperabilität von Reengineering Werkzeugen
E N D
Software ReengineeringWerkzeuge und Prozesse Andreas Winter AG Wartung
Überblick • Software Reengineering • (unser) Reengineering Begriff • Reengineering Maßnahmen und Prozesse • Reengineering Werkzeuge • GUPRO (Generische Umgebung zum Programmverstehen) • Interoperabilität von Reengineering Werkzeugen • GXL (Graph eXchange Language) • Zusammenfassung AG Wartung
Ziel-setzung Software Reengineering • Reengineering Kategorien • Wartung • Erhaltung • Erweiterung • Migration • Integration • Sanierung • Re-Dokumentation • Ablösung Software-system Software-system Reengineering AG Wartung
korrektive Wartung: unverzügliche Beseitigung von Fehlern, (Release-getriebe) korrektive Systemerhaltung: Behebung von Fehlern in der nächsten ausgelieferten Version Erweiterung/Adaption: Anpassung an geänderte Anforderungen Migration: Überführung von Softwaresystemen in andere Zielumgebungen Integration: Kombination verschiedener Softwaresysteme Sanierung: Verbesserung der Softwarequalität (ohne Änderung der Funktionalität) Re-Dokumentation: nachträgliche Erstellung von Dokumentationen Ablösung: Vorbereitung der Außerdienststellung eines Softwaresystems Reengineering Maßnahmen vgl. [Sneed+2004] AG Wartung
Reengineering Prozesse • Behauptungen • Unterschiedliche Reengineering Maßnahmen erfordern unterschiedliche Vorgehensweisen • Vorgehensweisen für einzelne ReengineeringMaßnahmen lassen sich als Varianten eines Referenz-Prozess-Modells auffassen • konkrete Reengineering Projekte folgen problem-bezogenen Anpassungendieser Varianten AG Wartung
Werkzeuge GUPRO Generische Umgebung zum Programmverstehen AG Wartung
GUPRO Idee • Anpassbares Werkzeug zur Progammanalyse • unterstützt verschiedene Analysetechniken • anpassbar an die meisten Analyseprobleme • Verwendung von Graphentechnologie • Graph-basierte, konzeptionelle Modellierung des Analyse-Problems • Überführung des Softwaresystems in ein Graphen-Repository • Analyse des Repositoryinhalts durch Graphanfragen und Graphenalgorithmik • Verwendung extern entwickelter Komponenten • Austausch von Reengineering-Daten mit GXL (Graph eXchange Language) AG Wartung
Conceptual Model (Schema) Visualization Source Code abstract ex- tract view Repository GUPRO Architektur AG Wartung
Graphen in GUPRO • TGraphen: • typisierte, attributierte, angeordnete, gerichtete Graphen AG Wartung
EER - Graph Schemas AG Wartung
Multi Language Conceptual Model AG Wartung
14 C Conceptual Model AG Wartung
Analyse durch Graph-Anfragen • GReQL (Graph Query Language): • Graph-Anfragesprache mit • regulären Pfadausdrücken • Hüllenbildung • erweiterbare Funktions- und Relationsbibliothek • eingeschränkte Prädikatenlogik erster Stufe FROMdeclarationWITHpredicateREPORTresult descriptionEND Syntax: AG Wartung
Beispiel Caller/Callee-Paare FROM f, g: V{Function} WITH f --> {isCaller} <-- {isCallee} g REPORT f.name, g.nameEND [[ (main, max), (main, min) ]] AG Wartung
GUPRO Code View AG Wartung
GUPRO-Projekte • GUPRO • Analyse mehrsprachiger Softwaresysteme auf Architekturebene (Cobol, PL/1, CSP, JCL, IMS-DB, SQL) • gefördert durch BMFT • ReSec • feingranulare Analyse zur Software- zertifizierung (C, Ada) • GEOS • Analyse eines mehrsprachigen Software-systems zum Aktienhandel (Java, C, C++, RDBMS) • LISA • feingranulare Analyse zur Sicherheits-überprüfung von LINUX • ReJob • Repository-Struktur für JCL AG Wartung
Interoperabilität von Reengineering Werkzeugen GXL Graph eXchange Language (www.gupro.de/GXL) AG Wartung
Visualization Source Code abstract ex- tract view Repository Reengineering Tools • Gesucht: Standard Austauschformat für Reengineering Werkzeuge AG Wartung
Zielsetzung • ausgetauschte Daten • Instanzen (Graphen) • Schemas (Graphklassen) • Mathematischesl Model • typisierte, attributierte, gerichtete, angeordnete Graphen • erweitert um • Hypergraphen und hierarchische Graphen • Notation • eXtensible Markup Language (XML) • Unified Modeling Language (UML) AG Wartung
GXL Partners AG Wartung
<node id = "v1"> <type xlink:href =s.gxl #Function" /> <attr name = "name"> <string>main</string> </attr> </node> <node id = "v2"> <type xlink:href ="s.gxl #FunctionCall" /> </node> <node id = "v7"> <type xlink:href ="s.gxl# Variable" /> <attr name = "name"> <string>b</string> </attr> </node> <node id = "v1"> <type xlink:href =s.gxl #Function" /> <attr name = "name"> <string>main</string> </attr> </node> <node id = "v2"> <type xlink:href ="s.gxl #FunctionCall" /> </node> <node id = "v7"> <type xlink:href ="s.gxl# Variable" /> <attr name = "name"> <string>b</string> </attr> </node> <edge id = "e1" from = "v1" to = "v2"> <type xlink:href =s.gxl #isCaller" /> <attr name = "line"> <int>8</int> </attr> </edge> <edge id = "e6 from = "v7" to = "v2"> <type xlink:href =s.gxl #isInput" /> </edge> <edge id = "e1" from = "v1" to = "v2"> <type xlink:href =s.gxl #isCaller" /> <attr name = "line"> <int>8</int> </attr> </edge> <edge id = "e6 from = "v7" to = "v2" toorder = "2"> <type xlink:href =s.gxl #isInput" /> </edge> typisierte, attributierte, gerichtete, angeordnete Graphen AG Wartung
Filter/Converter Bauhaus Resource Graphs (Univ. Stuttgart) DOT (AT&T) FAMIX (Nokia) GraLab (Univ. Koblenz) Progres (RWTH Aachen) RPA (Philips, Eindhoven) RSF (Univ. Victoria) TA (Univ. Waterloo) XMI (Univ. BW München) Reverse Engineering Tools Bauhaus (Univ. Stuttgart) Columbus (Univ. Szeged) CPPX (Univ. Kingston, Univ. Waterloo) GUPRO (Univ. Koblenz) Missing Link (Merlin, Karlsruhe) Rigi (Univ. Victoria) PBS/Swagkit (Univ. Waterloo) TKSee/SN (Univ. Ottawa) Venice (Univ. Helsinki, Nokia) GXL Werkzeuge AG Wartung
Graph Transformation Systems AGG (TU Berlin) Fujaba (Univ. Paderborn) Genset (Univ. Oregon) Progres (RWTH Aachen) Software Engineering Tools Chi-Bel (Univ. Toronto) DiaGen (Univ. Erlangen) Edinbourgh Concurrency Workbench (Univ. Edinbourgh) MetaEdit (Jyväskylä) Upgrade (RWTH Aachen) Graph Visualizer Graph Tool (Univ. Durham) GraphViz (AT&T) Shrimp (Univ. Victoria) TouchGraph (Alex Shapiro) yFiles (Univ. Tübingen) JGraph (Zürich) Graph Databases Gras (RWTH Aachen) GXL Werkzeuge AG Wartung
Beispiel • Visualisierung von Bauhaus-Architekturen mit UML AG Wartung
Beispiel • Visualisierung von Bauhaus-Architekturen mit UML AG Wartung
Zusammenfassung • Reengineering • Reengineering Maßnahmen • GI Fachgruppe Reengineering (in Gründung) • Workshop Software Reengineering • www.uni-koblenz.de/ist/wsr • Reengineering Werkzeug • GUPRO – Generische Umgebung zum Programmverstehen • www.gupro.de • Interoperabilität von Reenginneering Werkzeugen • GXL – Graph eXchange Language • www.gupro.de/gxl FachgruppeReengineering AG Wartung