©
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
Top Related