Software Reengineering Werkzeuge und Prozesse

Preview:

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

©

1

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

AG Wartung

Software ReengineeringSoftware ReengineeringWerkzeuge und ProzesseWerkzeuge und Prozesse

Andreas WinterAndreas Winter

©

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

©

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

©

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]

©

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

©

7

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

AG Wartung

WerkzeugeWerkzeugeGUPROGUPRO

Generische Umgebung zum Generische Umgebung zum ProgrammverstehenProgrammverstehen

©

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)

©

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

©

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

©

11

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

AG Wartung

EER - Graph SchemasEER - Graph Schemas

©

12

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

AG Wartung

Multi Language Conceptual ModelMulti Language Conceptual Model

©

14

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

AG Wartung

C Conceptual ModelC Conceptual Model

14

©

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

©

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

©

21

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

AG Wartung

GUPRO Code ViewGUPRO Code View

©

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

©

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)

©

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

©

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)

©

26

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

AG Wartung

GXL PartnersGXL Partners

©

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

©

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

©

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)

©

34

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

AG Wartung

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

©

35

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

AG Wartung

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

©

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

Recommended