Software Reengineering Werkzeuge und Prozesse

Slides:



Advertisements
Ähnliche Präsentationen
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Advertisements

Submodell Softwareentwicklung (SE)
Kick-off: Projekt-Praktikum Model-Driven Engineering von eingebetteten Systemen Christian Fuß und Christof Mosler Lehrstuhl Informatik III,
Prof. Dr. Holger Schlingloff
SG Web – weitere Schritte Benutzerversammlung des CMS K. Lányi.
Daten fließen lassen XML in Microsoft Office 2003 Lorenz Goebel Frank Fischer
WS 04/05 wiss. Übung: Systemanalyse und Softwaredesign
Seminar Software-Engineering für softwareintensive Systeme
Fehler und ihre Kosten Inhalt Software und ihre Fehler
Prozessqualität und Produktqualität
Zusammenfassung Risiken sind Bestandteil jeder Projektarbeit
ISO - Normen Inhalt Qualität im SE Der ISO 9000-Ansatz
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Links Links sind im Text angegeben. Weitere Links werden kontinuierlich eingefügt.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Agile Software Entwicklung mit dem RUP Agile Softwareentwicklung Best Practice bei.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Links Links sind im Text angegeben. Weitere Links werden kontinuierlich eingefügt.
Capability Maturity Model
K-Modeler Engineering
Christian Kästner Modellgetriebene Softwareentwicklung Eclipse Modelling Framework.
Rational Unified Process (RUP) - Definitionen
Webbasiertes qualitatives Wissensmanagement Aktuelle Tendenzen
Rigi und Web2Rsf vorgestellt von Tobias Weigand. Inhalt Ziel von Web2Rsf und Rigi Vorstellung des Parsers Web2Rsf Vorstellung des Werkzeugs Rigi Analyse.
Vortrag 11: Reengineering - Refactoring
Software Risk Evaluation Method (SRE)
Explizite und editierbare Metainformationen für Software Muster.
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Erweiterung von Eclipse als Entwicklungs-Plattform aus Sicht des Eclipse-Boardmitgliedes TogetherSoft Together auf Basis von Eclipse.
Diplomarbeit: Design und prototypische Implementierung eines archetypbasierten EHR Systems Anton Brass Helmholtz Zentrum München IBMI München,
Die Bank von morgen - eine neue Welt für IT und Kunden? 23. Oktober 2001.
UML Begleitdokumentation des Projekts
Folie 1 Reengineering-Werkzeugen für Webseiten Johannes Martin, University of Victoria Ludger Martin, Technische Universität Darmstadt WSR 2001 Bad Honnef,
GXL – Eine XML-Anwendung Martin Sievers
1 Dienstbeschreibung mit DAML Ein graphischer Editor für DAML - Ting Zheng Betreuer: Michael Klein, Philipp Obreiter.
Spatial Decision Support Systems (SDSS)
Chat System – Gruppe B Tim Braun, Andre Ester, Florian Müller und
Anpassung des RUP an ein konkretes Projekt - 1
Spezifikation von Anforderungen
Aichinger Christian, Strasser Jürgen
Erweiterung von EMF Refactor um Update Funktionalität in grafischen Editoren Thorsten Arendt, AG Taentzer, SWT FoPra-Vorstellung, 19. April 2012.
Masterthesis Antrittsvortrag
Zusammenfassung der Vorlesung
TWS/Graph HORIZONT Produkt-Präsentation Software für Rechenzentren
Zentralübung Automotive Software Engineering – Übungsblatt 8
Architekturen und Techniken für computergestützte Engineering Workbenches.
Volumenorientierte Modellierung als Grundlage einer vernetzt- kooperativen Planung im konstruktiven Ingenieurbau Antragsteller: Prof. E. Rank, Prof. H.-J.
Testaktivitäten Komponenten- / Integrationstest
Seminar: Entwicklung verteilter eingebetteter Systeme WS05/06 Betreuer: Info:
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Innovator Die Komponenten.
Enterprise Achitect (Sparx Systems) Marius Rudolf
23 Reengineering 23.1 Software-Evolution 23.2 Reengineering 23.3 Refactoring 24.4 Erblasten, Legacy Software.
Knowledge Management-Portal XML Topic Maps Von der Information zum Wissen Ronald Melster Gefördert vom.
Untersuchungen zur Erstellung eines
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Peer-to-Peer- Netzwerke Christian Schindelhauer Sommersemester.
Eike Schallehn, Martin Endig
Eike Schallehn, Martin Endig
Technische Universität München Zentralübung Automotive Software Engineering – Übungsblatt 6.
Institut Experimentelles Software Engineering Fraunhofer IESE Vorstellung des neuen GI Arbeitskreis: Produktlinientools Isabel John, Fraunhofer IESE
„Wenn du den Fluss Halys überschreitest, wirst du
Vergleichende Analyse verbreiteter und neuester Software-Projekt-Management-Werkzeuge unter besonderer Berücksichtigung studentischer Software-Projekte.
WebComposition & WCML Ein Vortrag von Michael Capper & Lars Völker.
OOSE nach Jacobson Sebastian Pohl/ST7 Betreuer: Prof. Dr. Kahlbrandt.
1 Konica Minolta IT Solutions Prinzip Partnerschaft MANAGED MONITORING ÜBERWACHJUNG DER SERVERINFRASTRUKTUR UND ANWENDUNGEN DIREKT AUS DER CLOUD.
Seminararbeit Release Management von Web-Systemen Minh Tran Lehrstuhl für Software Engineering RWTH Aachen
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: Entwurf Dr. Wolfgang Wörndl
Modellgetriebene Architekturentwicklung für Car-2-Car Kommunikation Jerome Pfeiffer Seminar am Lehrstuhl für Software Engineering RWTH Aachen Quelle: Spiegel.de.
Brainstorming model hierarchy? [ich glaube nicht, dass wir eine Hierarchie definieren können; Gruppen ja] Core Model, technology specific models, purpose.
Gewachsene Architektur Das kann nicht funktionieren!
eSciDoc als Plattform für die Wissenschaft Anwendungen und Szenarien
Integrating Knowledge Discovery into Knowledge Management
Devops David Jaroš
 Präsentation transkript:

Software Reengineering Werkzeuge und Prozesse Andreas Winter AG Wartung 15. Oktober 2004

Überblick Software Reengineering Reengineering Werkzeuge (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 15. Oktober 2004

Software Reengineering … Verlängerung des Software- Lebens Ziel: [Chikofsky/Cross, 1990] …"is the examination and alteration of a sub-ject system to reconstitute it in a new form … This may include modifications with respect to new requirements …" [Smith et al. 1995 (SEI)] … "is the systematic transformation of an existing system into a new form to realize quality improvements in operation, system capability, functionality, performance, or maintainability and supportability at a lower cost, schedule, or risk to the customer" AG Wartung 15. Oktober 2004

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

Reengineering Maßnahmen 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 vgl. [Sneed+2004] AG Wartung 15. Oktober 2004

Reengineering Prozesse Behauptungen Unterschiedliche Reengineering Maßnahmen erfordern unterschiedliche Vorgehensweisen Vorgehensweisen für einzelne Reengineering Maßnahmen lassen sich als Varianten eines Referenz-Prozess- Modells auffassen konkrete Reengineering Projekte folgen problem-bezogenen Anpassungen dieser Varianten AG Wartung 15. Oktober 2004

GUPRO Generische Umgebung zum Programmverstehen Werkzeuge GUPRO Generische Umgebung zum Programmverstehen AG Wartung 15. Oktober 2004

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 15. Oktober 2004

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

Graphen in GUPRO TGraphen: typisierte, attributierte, angeordnete, gerichtete Graphen AG Wartung 15. Oktober 2004

EER - Graph Schemas AG Wartung 15. Oktober 2004

Multi Language Conceptual Model AG Wartung 15. Oktober 2004

GEOS Conceptual Model AG Wartung 15. Oktober 2004

C Conceptual Model 14 AG Wartung 15. Oktober 2004

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 Syntax: FROM declaration WITH predicate REPORT result description END AG Wartung 15. Oktober 2004

Beispiel Caller/Callee-Paare FROM f, g: V{Function} WITH f --> {isCaller} <-- {isCallee} g REPORT f.name, g.name END [[ (main, max), (main, min) ]] AG Wartung 15. Oktober 2004

Beispiel Welche Programme werden durch JCL direkt gestartet? direkt oder indirekt gestartet? FROM jcl: V{JclProcedure} REPORT jcl.name, FROM called: V{Program} REPORT called.name END END WITH jcl <-- {isStepIn} <-- {isCalledIn} called (<-- {isModuleOf} --> {CallsProgram})* AG Wartung 15. Oktober 2004

Query Example Show "highest" superclass to each class is Class FROM class, super: V{Class} WITH class --> {isSubclassOf}* super AND outDegree{isSubclassOf} (super) = 0 REPORT class.name, super.name END 18 Class name is 0..* AG Wartung 15. Oktober 2004

GUPRO Workbench AG Wartung 15. Oktober 2004

Table View AG Wartung 15. Oktober 2004

GUPRO Code View AG Wartung 15. Oktober 2004

GUPRO-Projekte GUPRO ReSec GEOS LISA ReJob 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 15. Oktober 2004

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

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

Zielsetzung ausgetauschte Daten Mathematischesl Model Notation 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 15. Oktober 2004

GXL Partners AG Wartung 15. Oktober 2004

gerichtete Graphen <node id = "v1"> <edge id = "e1" from = "v1" to = "v2"> </edge> <edge id = "e6 from = "v7" AG Wartung 15. Oktober 2004

typisierte, gerichtete Graphen <node id = "v1"> <type xlink:href =s.gxl #Function" /> </attr> </node> <node id = "v2"> <type xlink:href ="s.gxl #FunctionCall" /> <node id = "v7"> <type xlink:href ="s.gxl# Variable" /> <edge id = "e1" from = "v1" to = "v2"> #isCaller" /> </edge> <edge id = "e6 from = "v7" #isInput" /> <node id = "v1"> </node> <node id = "v2"> <node id = "v7"> ... <edge id = "e1" from = "v1" to = "v2"> </edge> <edge id = "e6 from = "v7" AG Wartung 15. Oktober 2004

typisierte, attributierte, gerichtete Graphen <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 id = "v7"> <type xlink:href ="s.gxl# Variable" /> <string>b</string> <edge id = "e1" from = "v1" to = "v2"> #isCaller" /> <attr name = "line"> <int>8</int> </edge> <edge id = "e6 from = "v7" #isInput" /> <node id = "v1"> <type xlink:href =s.gxl #Function" /> </node> <node id = "v2"> <type xlink:href ="s.gxl #FunctionCall" /> <node id = "v7"> <type xlink:href ="s.gxl# Variable" /> <edge id = "e1" from = "v1" to = "v2"> #isCaller" /> </edge> <edge id = "e6 from = "v7" #isInput" /> AG Wartung 15. Oktober 2004

typisierte, attributierte, gerichtete, angeordnete Graphen <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 id = "v7"> <type xlink:href ="s.gxl# Variable" /> <string>b</string> <edge id = "e1" from = "v1" to = "v2"> #isCaller" /> <attr name = "line"> <int>8</int> </edge> <edge id = "e6 from = "v7" to = "v2" toorder = "2"> #isInput" /> <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 id = "v7"> <type xlink:href ="s.gxl# Variable" /> <string>b</string> <edge id = "e1" from = "v1" to = "v2"> #isCaller" /> <attr name = "line"> <int>8</int> </edge> <edge id = "e6 from = "v7" #isInput" /> AG Wartung 15. Oktober 2004

typisierte, attributierte, gerichtete, angeordnete Graphen <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 id = "v7"> <type xlink:href ="s.gxl# Variable" /> <string>b</string> <edge id = "e1" from = "v1" to = "v2"> #isCaller" /> <attr name = "line"> <int>8</int> </edge> <edge id = "e6 from = "v7" #isInput" /> to = "v2" toorder = "2"> AG Wartung 15. Oktober 2004

GXL Werkzeuge Filter/Converter Reverse Engineering Tools 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) AG Wartung 15. Oktober 2004

GXL Werkzeuge Graph Transformation Systems Software Engineering Tools 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) AG Wartung 15. Oktober 2004

Beispiel Visualisierung von Bauhaus-Architekturen mit UML AG Wartung 15. Oktober 2004

Beispiel Visualisierung von Bauhaus-Architekturen mit UML AG Wartung 15. Oktober 2004

Fachgruppe Reengineering 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 Fachgruppe Reengineering AG Wartung 15. Oktober 2004