1 / 26

Software Reengineering Werkzeuge und Prozesse

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

karif
Download Presentation

Software Reengineering Werkzeuge und Prozesse

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Software ReengineeringWerkzeuge und Prozesse Andreas Winter AG Wartung

  2. Ü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

  3. Ziel-setzung Software Reengineering • Reengineering Kategorien • Wartung • Erhaltung • Erweiterung • Migration • Integration • Sanierung • Re-Dokumentation • Ablösung Software-system Software-system Reengineering AG Wartung

  4. 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

  5. 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

  6. Werkzeuge GUPRO Generische Umgebung zum Programmverstehen AG Wartung

  7. 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

  8. Conceptual Model (Schema) Visualization Source Code abstract ex- tract view Repository GUPRO Architektur AG Wartung

  9. Graphen in GUPRO • TGraphen: • typisierte, attributierte, angeordnete, gerichtete Graphen AG Wartung

  10. EER - Graph Schemas AG Wartung

  11. Multi Language Conceptual Model AG Wartung

  12. 14 C Conceptual Model AG Wartung

  13. 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

  14. 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

  15. GUPRO Code View AG Wartung

  16. 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

  17. Interoperabilität von Reengineering Werkzeugen GXL Graph eXchange Language (www.gupro.de/GXL) AG Wartung

  18. Visualization Source Code abstract ex- tract view Repository Reengineering Tools • Gesucht: Standard Austauschformat für Reengineering Werkzeuge AG Wartung

  19. 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

  20. GXL Partners AG Wartung

  21. <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

  22. 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

  23. 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

  24. Beispiel • Visualisierung von Bauhaus-Architekturen mit UML AG Wartung

  25. Beispiel • Visualisierung von Bauhaus-Architekturen mit UML AG Wartung

  26. 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

More Related