26
© 1 Institut für Softwaretechnik Universität Koblenz- Landau 15. Oktober 2004 AG Wartung Software Reengineering Software Reengineering Werkzeuge und Prozesse Werkzeuge und Prozesse Andreas Winter Andreas Winter

Software Reengineering Werkzeuge und Prozesse

  • Upload
    karif

  • View
    84

  • Download
    0

Embed Size (px)

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

Page 1: Software Reengineering Werkzeuge und Prozesse

©

1

Institut für SoftwaretechnikUniversität Koblenz-Landau 15. Oktober 2004

AG Wartung

Software ReengineeringSoftware ReengineeringWerkzeuge und ProzesseWerkzeuge und Prozesse

Andreas WinterAndreas Winter

Page 2: Software Reengineering Werkzeuge und Prozesse

©

2

Institut für SoftwaretechnikUniversität Koblenz-Landau 15. Oktober 2004

AG Wartung

ÜberblickÜberblickSoftware ReengineeringSoftware Reengineering

º (unser) Reengineering Begriff(unser) Reengineering Begriffº Reengineering Maßnahmen und ProzesseReengineering Maßnahmen und Prozesse

Reengineering WerkzeugeReengineering Werkzeugeº GUPRO (Generische Umgebung GUPRO (Generische Umgebung

zum Programmverstehen)zum Programmverstehen)

Interoperabilität von Interoperabilität von Reengineering WerkzeugenReengineering Werkzeugenº GXL GXL

(Graph eXchange Language)(Graph eXchange Language)

ZusammenfassungZusammenfassung

Page 3: Software Reengineering Werkzeuge und Prozesse

©

4

Institut für SoftwaretechnikUniversität Koblenz-Landau 15. Oktober 2004

AG Wartung

Software ReengineeringSoftware Reengineering

Software-Software-systemsystem

Software-Software-systemsystem

Software-Software-systemsystem

Software-Software-systemsystemReengineeringReengineeringReengineeringReengineering

Ziel-Ziel-setzungsetzungZiel-Ziel-

setzungsetzung

Reengineering KategorienReengineering Kategorien• WartungWartung• ErhaltungErhaltung• ErweiterungErweiterung• MigrationMigration• IntegrationIntegration• SanierungSanierung• Re-DokumentationRe-Dokumentation• AblösungAblösung

Reengineering KategorienReengineering Kategorien• WartungWartung• ErhaltungErhaltung• ErweiterungErweiterung• MigrationMigration• IntegrationIntegration• SanierungSanierung• Re-DokumentationRe-Dokumentation• AblösungAblösung

Page 4: Software Reengineering Werkzeuge und Prozesse

©

5

Institut für SoftwaretechnikUniversität Koblenz-Landau 15. Oktober 2004

AG Wartung

Reengineering MaßnahmenReengineering Maßnahmenkorrektive Wartung:korrektive Wartung:

unverzügliche Beseitigung unverzügliche Beseitigung von Fehlern,von Fehlern,

(Release-getriebe) korrektive (Release-getriebe) korrektive Systemerhaltung:Systemerhaltung:

Behebung von Fehlern in der Behebung von Fehlern in der nächsten ausgelieferten nächsten ausgelieferten VersionVersion

Erweiterung/Adaption:Erweiterung/Adaption:Anpassung an geänderte Anpassung an geänderte AnforderungenAnforderungen

Migration:Migration:Überführung von Überführung von Softwaresystemen in andere Softwaresystemen in andere ZielumgebungenZielumgebungen

Integration:Integration:Kombination verschiedener Kombination verschiedener

SoftwaresystemeSoftwaresysteme

Sanierung:Sanierung:Verbesserung der Verbesserung der

Softwarequalität (ohne Softwarequalität (ohne Änderung der Änderung der Funktionalität)Funktionalität)

Re-Dokumentation:Re-Dokumentation:nachträgliche Erstellung von nachträgliche Erstellung von

DokumentationenDokumentationen

Ablösung:Ablösung:Vorbereitung der Vorbereitung der

Außerdienststellung eines Außerdienststellung eines Softwaresystems Softwaresystems

vgl. [Sneed+2004]vgl. [Sneed+2004]

Page 5: Software Reengineering Werkzeuge und Prozesse

©

6

Institut für SoftwaretechnikUniversität Koblenz-Landau 15. Oktober 2004

AG Wartung

Reengineering ProzesseReengineering ProzesseBehauptungenBehauptungen

º Unterschiedliche Reengineering Unterschiedliche Reengineering Maßnahmen erfordern Maßnahmen erfordern unterschiedliche unterschiedliche VorgehensweisenVorgehensweisen

º Vorgehensweisen für Vorgehensweisen für einzelne Reengineeringeinzelne ReengineeringMaßnahmen lassen sich Maßnahmen lassen sich als Varianten eines als Varianten eines Referenz-Prozess-Referenz-Prozess-ModellsModells auffassen auffassen

º konkrete Reengineering konkrete Reengineering Projekte folgen Projekte folgen problem-problem-bezogenen Anpassungenbezogenen Anpassungen dieser Variantendieser Varianten

Page 6: Software Reengineering Werkzeuge und Prozesse

©

7

Institut für SoftwaretechnikUniversität Koblenz-Landau 15. Oktober 2004

AG Wartung

WerkzeugeWerkzeugeGUPROGUPRO

Generische Umgebung zum Generische Umgebung zum ProgrammverstehenProgrammverstehen

Page 7: Software Reengineering Werkzeuge und Prozesse

©

8

Institut für SoftwaretechnikUniversität Koblenz-Landau 15. Oktober 2004

AG Wartung

GUPRO IdeeGUPRO IdeeAnpassbares Werkzeug zur ProgammanalyseAnpassbares Werkzeug zur Progammanalyse

º unterstützt verschiedene Analysetechnikenunterstützt verschiedene Analysetechnikenº anpassbar an die meisten Analyseproblemeanpassbar an die meisten Analyseprobleme

Verwendung von GraphentechnologieVerwendung von Graphentechnologieº Graph-basierte, konzeptionelle Modellierung Graph-basierte, konzeptionelle Modellierung

des Analyse-Problemsdes Analyse-Problemsº Überführung des Softwaresystems in ein Überführung des Softwaresystems in ein

Graphen-RepositoryGraphen-Repositoryº Analyse des Repositoryinhalts durch Graphanfragen Analyse des Repositoryinhalts durch Graphanfragen

und Graphenalgorithmik und Graphenalgorithmik

Verwendung extern entwickelter KomponentenVerwendung extern entwickelter Komponentenº Austausch von Reengineering-Daten mit GXL Austausch von Reengineering-Daten mit GXL

(Graph eXchange Language)(Graph eXchange Language)

Page 8: Software Reengineering Werkzeuge und Prozesse

©

9

Institut für SoftwaretechnikUniversität Koblenz-Landau 15. Oktober 2004

AG Wartung

GUPRO ArchitekturGUPRO Architektur

Conceptual Conceptual Model Model (Schema)(Schema)

Source CodeSource Code

RepositoryRepository

ex-ex-tracttract viewview

VisualizationVisualizationabstractabstract

Page 9: Software Reengineering Werkzeuge und Prozesse

©

10

Institut für SoftwaretechnikUniversität Koblenz-Landau 15. Oktober 2004

AG Wartung

Graphen in GUPROGraphen in GUPRO

TGraphen: TGraphen: º typisierte, attributierte, angeordnete, typisierte, attributierte, angeordnete,

gerichtete Graphengerichtete Graphen

Page 10: Software Reengineering Werkzeuge und Prozesse

©

11

Institut für SoftwaretechnikUniversität Koblenz-Landau 15. Oktober 2004

AG Wartung

EER - Graph SchemasEER - Graph Schemas

Page 11: Software Reengineering Werkzeuge und Prozesse

©

12

Institut für SoftwaretechnikUniversität Koblenz-Landau 15. Oktober 2004

AG Wartung

Multi Language Conceptual ModelMulti Language Conceptual Model

Page 12: Software Reengineering Werkzeuge und Prozesse

©

14

Institut für SoftwaretechnikUniversität Koblenz-Landau 15. Oktober 2004

AG Wartung

C Conceptual ModelC Conceptual Model

14

Page 13: Software Reengineering Werkzeuge und Prozesse

©

15

Institut für SoftwaretechnikUniversität Koblenz-Landau 15. Oktober 2004

AG Wartung

FROM declarationWITH predicateREPORT result descriptionEND

Syntax:Syntax:

Analyse durch Graph-AnfragenAnalyse durch Graph-Anfragen

GReQL (Graph Query Language):GReQL (Graph Query Language):º Graph-Anfragesprache mit Graph-Anfragesprache mit

º regulären Pfadausdrückenregulären Pfadausdrückenº HüllenbildungHüllenbildung

º erweiterbare Funktions- und erweiterbare Funktions- und RelationsbibliothekRelationsbibliothek

º eingeschränkte Prädikatenlogik erster Stufeeingeschränkte Prädikatenlogik erster Stufe

Page 14: Software Reengineering Werkzeuge und Prozesse

©

16

Institut für SoftwaretechnikUniversität Koblenz-Landau 15. Oktober 2004

AG Wartung

BeispielBeispielCaller/Callee-PaareCaller/Callee-Paare

[[ (main, max), (main, min) ]]

FROM f, g: V{Function}WITH f --> {isCaller} <-- {isCallee} gREPORT f.name, g.nameEND

Page 15: Software Reengineering Werkzeuge und Prozesse

©

21

Institut für SoftwaretechnikUniversität Koblenz-Landau 15. Oktober 2004

AG Wartung

GUPRO Code ViewGUPRO Code View

Page 16: Software Reengineering Werkzeuge und Prozesse

©

22

Institut für SoftwaretechnikUniversität Koblenz-Landau 15. Oktober 2004

AG Wartung

GUPRO-ProjekteGUPRO-ProjekteGUPROGUPRO

º Analyse mehrsprachiger Softwaresysteme auf Analyse mehrsprachiger Softwaresysteme auf Architekturebene (Cobol, PL/1, CSP, JCL, Architekturebene (Cobol, PL/1, CSP, JCL, IMS-DB, SQL)IMS-DB, SQL)

º gefördert durch BMFT gefördert durch BMFT

ReSecReSecº feingranulare Analyse zur Software- feingranulare Analyse zur Software-

zertifizierung (C, Ada) zertifizierung (C, Ada)

GEOS GEOS º Analyse eines mehrsprachigen Software-Analyse eines mehrsprachigen Software-

systems zum Aktienhandel systems zum Aktienhandel (Java, C, C++, RDBMS)(Java, C, C++, RDBMS)

LISA LISA º feingranulare Analyse zur Sicherheits-feingranulare Analyse zur Sicherheits-

überprüfung von LINUXüberprüfung von LINUX

ReJobReJobº Repository-Struktur für JCL Repository-Struktur für JCL

Page 17: Software Reengineering Werkzeuge und Prozesse

©

23

Institut für SoftwaretechnikUniversität Koblenz-Landau 15. Oktober 2004

AG Wartung

Interoperabilität von Interoperabilität von Reengineering WerkzeugenReengineering Werkzeugen

GXL Graph eXchange LanguageGXL Graph eXchange Language

(www.gupro.de/GXL)(www.gupro.de/GXL)

Page 18: Software Reengineering Werkzeuge und Prozesse

©

24

Institut für SoftwaretechnikUniversität Koblenz-Landau 15. Oktober 2004

AG Wartung

Reengineering ToolsReengineering Tools

Source CodeSource Code

RepositoryRepository

ex-ex-tracttract viewview

VisualizationVisualizationabstractabstract

Gesucht:Gesucht: Standard Austauschformat für Standard Austauschformat für

Reengineering WerkzeugeReengineering Werkzeuge

Page 19: Software Reengineering Werkzeuge und Prozesse

©

25

Institut für SoftwaretechnikUniversität Koblenz-Landau 15. Oktober 2004

AG Wartung

ZielsetzungZielsetzungausgetauschte Datenausgetauschte Daten

º Instanzen (Graphen)Instanzen (Graphen)º Schemas (Graphklassen)Schemas (Graphklassen)

Mathematischesl ModelMathematischesl Modelº typisierte, attributierte, gerichtete, typisierte, attributierte, gerichtete,

angeordnete Graphenangeordnete Graphenº erweitert umerweitert um

º Hypergraphen und hierarchische GraphenHypergraphen und hierarchische Graphen

NotationNotationº eXtensible Markup Language (XML)eXtensible Markup Language (XML)º Unified Modeling Language (UML)Unified Modeling Language (UML)

Page 20: Software Reengineering Werkzeuge und Prozesse

©

26

Institut für SoftwaretechnikUniversität Koblenz-Landau 15. Oktober 2004

AG Wartung

GXL PartnersGXL Partners

Page 21: Software Reengineering Werkzeuge und Prozesse

©

31

Institut für SoftwaretechnikUniversität Koblenz-Landau 15. Oktober 2004

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>

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

<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" toorder = "2"> <type xlink:href =s.gxl #isInput" /></edge>

typisierte, attributierte, typisierte, attributierte, gerichtete, angeordnete Graphengerichtete, angeordnete Graphen

Page 22: Software Reengineering Werkzeuge und Prozesse

©

32

Institut für SoftwaretechnikUniversität Koblenz-Landau 15. Oktober 2004

AG Wartung

GXL WerkzeugeGXL WerkzeugeFilter/ConverterFilter/Converter

º Bauhaus Resource Bauhaus Resource Graphs (Univ. Stuttgart)Graphs (Univ. Stuttgart)

º DOT (AT&T)DOT (AT&T)º FAMIX (Nokia)FAMIX (Nokia)º GraLab (Univ. Koblenz)GraLab (Univ. Koblenz)º Progres (RWTH Aachen)Progres (RWTH Aachen)º RPA (Philips, Eindhoven)RPA (Philips, Eindhoven)º RSF (Univ. Victoria)RSF (Univ. Victoria)º TA (Univ. Waterloo)TA (Univ. Waterloo)º XMI (Univ. BW München)XMI (Univ. BW München)

Reverse Engineering ToolsReverse Engineering Toolsº Bauhaus Bauhaus

(Univ. Stuttgart) (Univ. Stuttgart) º Columbus (Univ. Szeged)Columbus (Univ. Szeged)º CPPX (Univ. Kingston, CPPX (Univ. Kingston,

Univ. Waterloo) Univ. Waterloo) º GUPRO (Univ. Koblenz)GUPRO (Univ. Koblenz)º Missing Link (Merlin, Missing Link (Merlin,

Karlsruhe)Karlsruhe)º Rigi (Univ. Victoria)Rigi (Univ. Victoria)º PBS/Swagkit (Univ. Waterloo) PBS/Swagkit (Univ. Waterloo) º TKSee/SN (Univ. Ottawa)TKSee/SN (Univ. Ottawa)º Venice (Univ. Helsinki, NoVenice (Univ. Helsinki, Nokiakia))

Page 23: Software Reengineering Werkzeuge und Prozesse

©

33

Institut für SoftwaretechnikUniversität Koblenz-Landau 15. Oktober 2004

AG Wartung

GXL WerkzeugeGXL WerkzeugeGraph Transformation SystemsGraph Transformation Systems

º AGG (TU Berlin)AGG (TU Berlin)º Fujaba (Univ. Paderborn)Fujaba (Univ. Paderborn)º Genset (Univ. Oregon)Genset (Univ. Oregon)º Progres (RWTH Aachen) Progres (RWTH Aachen)

Software Engineering ToolsSoftware Engineering Toolsº Chi-Bel (Univ. Toronto)Chi-Bel (Univ. Toronto)º DiaGen (Univ. Erlangen)DiaGen (Univ. Erlangen)º Edinbourgh Concurrency Edinbourgh Concurrency

Workbench Workbench (Univ. Edinbourgh)(Univ. Edinbourgh)

º MetaEdit (Jyväskylä)MetaEdit (Jyväskylä)º Upgrade (RWTH Aachen)Upgrade (RWTH Aachen)

Graph VisualizerGraph Visualizerº Graph Tool Graph Tool

(Univ. Durham)(Univ. Durham)º GraphViz (AT&T)GraphViz (AT&T)º Shrimp (Univ. Victoria)Shrimp (Univ. Victoria)º TouchGraph TouchGraph

(Alex Shapiro)(Alex Shapiro)º yFiles yFiles

(Univ. Tübingen)(Univ. Tübingen)º JGraph (Zürich)JGraph (Zürich)

Graph DatabasesGraph Databasesº Gras Gras

(RWTH Aachen)(RWTH Aachen)

Page 24: Software Reengineering Werkzeuge und Prozesse

©

34

Institut für SoftwaretechnikUniversität Koblenz-Landau 15. Oktober 2004

AG Wartung

BeispielBeispielVisualisierung von Bauhaus-Architekturen mit UMLVisualisierung von Bauhaus-Architekturen mit UML

Page 25: Software Reengineering Werkzeuge und Prozesse

©

35

Institut für SoftwaretechnikUniversität Koblenz-Landau 15. Oktober 2004

AG Wartung

BeispielBeispielVisualisierung von Bauhaus-Architekturen mit UMLVisualisierung von Bauhaus-Architekturen mit UML

Page 26: Software Reengineering Werkzeuge und Prozesse

©

36

Institut für SoftwaretechnikUniversität Koblenz-Landau 15. Oktober 2004

AG Wartung

ZusammenfassungZusammenfassungReengineering Reengineering

º Reengineering MaßnahmenReengineering Maßnahmenº GI Fachgruppe Reengineering (in Gründung)GI Fachgruppe Reengineering (in Gründung)º Workshop Software ReengineeringWorkshop Software Reengineering

º www.uni-koblenz.de/ist/wsrwww.uni-koblenz.de/ist/wsr

Reengineering Werkzeug Reengineering Werkzeug º GUPRO – Generische Umgebung zum GUPRO – Generische Umgebung zum

ProgrammverstehenProgrammverstehenº www.gupro.dewww.gupro.de

Interoperabilität von Reenginneering Interoperabilität von Reenginneering WerkzeugenWerkzeugenº GXL – Graph eXchange LanguageGXL – Graph eXchange Languageº www.gupro.de/gxlwww.gupro.de/gxl

FachgruppeReengineering