Institut für Informatik Betriebliche Informationssysteme Graph-basiertes Reengineering

Ähnliche Dokumente
Graphbasiertes Reengineering. Seminar Model-Driven Software Development (MDSD) Stefan Sosnicki

Poseidon for UML. Einführung. Andreas Blunk

Model-Driven Software Engineering (HS 2011)

Unified Modeling Language 2

Motivation Grundlagen Technologien Manipulation Ecore Genmodell Demo Persistenz Notification Ausblick GMF Fazit / Quellen

Software-Engineering 2. Software-Engineering 2. Entwicklungsumgebungen (IDE) IT works. Klaus Mairon

Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme. Tillmann Schall, anaptecs GmbH

Web Engineering-Seminar Methoden zur Web Modellierung: Object-oriented Hypermedia Method (OO-H)

Eclipse Modeling Framework Modellgetriebene Softwareentwicklung Prof. Andreas Schmidt

MDRE die nächste Generation des Requirements Engineerings

Einführung zu den Übungen aus Softwareentwicklung 1

Software Engineering II

Generierung von Steuerungsprogrammcode für SPS und μc aus Petri-Netz-Modellen

Vorlesung Programmieren

UML (Unified Modelling Language) von Christian Bartl

Java: Kapitel 1. Überblick. Programmentwicklung WS 2008/2009. Holger Röder Holger Röder

Software Engineering II

Ein Erfahrungsbericht beim Einsatz von generierenden Ansätzen im Vergleich zu generischen Lösungen

Model Driven Architecture Praxisbeispiel

IBM Software Demos Rational Systems Developer Introduction

Kick-off: Projekt-Praktikum. Model-Driven Engineering von eingebetteten Systemen

Oracle JDeveloper 10 g

UML / Fujaba. Generierung von Java-Quellcode aus UML-Diagrammen. Marcel Friedrich

INSPIRE - Modellierung

Modellgetriebene Entwicklung eingebetteter Systeme mit Eclipse

Eclipse und EclipseLink

Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML)

Vorlesung Programmieren

Feature Diagramme und Variabilität. Requirements Engineering Seminar 2006 Stefan Marr

MOF Meta Object Facility. Veranstaltungsvortrag im Rahmen der Projektgruppe ComponentTools

Werkzeuge für Datenbank Handwerker: IBM Data Studio und IBM Optim QWT

MDSD in der Praxis. Dr. Shota Okujava.

Comelio GmbH - Goethestr Berlin. Kurskatalog

Agile Modellierung mit UML Lab

Übersicht Eclipse Modeling Project EMP. Zoltan Horvath

StuPro Visualisierung der Ergebnisse von Programmanalysen

Spring IDE. Christian Dupuis - Spring 2.0 Release Party

Definition von domänenspezifischen Sprachen mit Xtext: Einführung

Java für C++ Programmierer

WhiteStarUML Tutorial

Installationsanleitung

Eclipse Modeling Framework

Open Source IDE - eclipse ETIS SS04

UML Modellierung und Model Driven Architecture (MDA) für Java mittels Rational Software Architect (RSA)

Model Driven Architecture

Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme. Tillmann Schall, anaptecs GmbH

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0

Integration von Model-Driven Development und formaler Verfikation in den Softwareentwicklungsprozess

Specifying Patterns for Dynamic Pattern Instance Recognition with UML 2.0 Sequence Diagrams. Lothar Wendehals. Universität Paderborn

Einführung in das Eclipse Modeling Framework (EMF)

Einführung zu den Übungen aus Softwareentwicklung 1

Einführung in das Eclipse Modeling Framework (EMF)

SEW Übung EMFText. 1 Aufgabe. 2 Domänenbeschreibung. 3 Installation von Eclipse/EMFText. 4 Schritt-für-Schritt Anleitung. 4.

eclipse - Entwicklungsumgebung und mehr ETIS SS05

Programmverstehen 1: Der erste Kontakt mit dem System. Dr. Thorsten Arendt Marburg, 19. November 2015

Model Driven Development im Überblick

Behutsame Modernisierung

Modellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick. 7. Februar 2013

Erstellen von PDF-Dokumenten für Business-Anwendungen mit XSL-FO

Potentiale modellgetriebener Softwareentwicklung

Inhalt. 1 Einführungsveranstaltung. 2 Pflichtenheft ANFORDERUNGSSPEZIFIKATION - GROBPLANUNG ANFORDERUNGSSPEZIFIKATION - SOLLKONZEPT

Systemdenken und Gestaltungsmethodik System-Modellierung

Sonargraph in 15 Minuten. Andreas Hoyer blog.hello2morrow.com

MDA-Praktikum, Einführung

Java-Einführungskurs Informatik II (D-ITET) Vincent Becker,

Eclipse Tutorial.doc

Pendenzen Management

Programmieren ohne Programmierer Das GeneSEZ Generator Framework. Gerrit Beine

Situation-Adaptive Multimodal Dialogue Platform. Übersicht

Projektpraktikum AR Fernrohr - Jens Epe

Entwicklungswerkzeuge

Janeva:.NET meets J2EE

Inhaltsverzeichnis. 2.2 Grundlagen der UML Zusammenfassung... 53

Automatisierte Architekturanalyse mittels UML2.0 Diagrammen

Programmverstehen 1: Der erste Kontakt mit dem System. Dr. Thorsten Arendt Marburg, 27. November 2014

Modellgetriebene Softwareentwicklung. Gabriele Taentzer WS 2012/2013 Philipps-Universität Marburg

Model Querys zur Überprüfung von sicherheitsrelevanten Eigenschaften

Programmieren I. Entwicklungsumgebungen Eclipse, NetBeans und IntelliJ IDEA. Institut für Angewandte Informatik

Java.NET Web-Technologien Mobile

Regelbasierte Entwicklung betrieblicher Informationssysteme

Modellgetriebene Softwareentwicklung

SAP -Schnelleinstieg: ABAP-Entwicklung in Eclipse. Christoph Lordieck

Ziele und Tätigkeiten von Architekten

Ein Design Tool für objektorientierte portable Programmierschnittstellen

Anleitung zum Arbeiten mit Microsoft Visual Studio 2008 im Softwarepraktikum ET/IT

Vortrag von: Ilias Agorakis & Robert Roginer

AGEDIS Methode und Werkzeuge. 1. Was ist AGEDIS 2. Die AGEDIS Methode 3. Architektur / Werkzeuge 4. Fazit

Das Metamodell der UML und in FUJABA. Vortrag von Alexander Geburzi

Model Driven Architecture (MDA)

Rapid Java wie mit Forms

Christoph Kecher, Alexander Salvanos UML 2.5. Das umfassende Handbuch. Rheinwerk. Computing

Was ist EMF? Wie wird EMF eingesetzt? Was ist ecore? Das Generatormodell Fazit

Language Workbench. Aktuelle Themen der Softwaretechnologie. Vortrag von: Arthur Rehm Steven Cardoso. Betreut von: Prof. Dr.

Modellbasierte Testautomatisierung mit Fitnesse

SEA. Modellgetriebene Softwareentwicklung in der BA

Programmieren mit Edipse 3

<Insert Picture Here> MySQL Workbench für Einsteiger

Kapitel 02. Java was, wann, warum, wieso. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

Generischer Modellvergleich mit EMF Compare

Automatisierte Entwickler VMs works on my machine zählt nicht mehr ;-)

Transkript:

Graph-basiertes Reengineering Seminar Model-Driven Software Development (MDSD) Stefan Sosnicki

Agenda 1. Einleitung 2. Begriffsklärung 3. Vorstellung der Werkzeuge 1. Jumli 2. Umodel 3. Fujaba 4. Vergleich der Werkzeuge 5. Fazit 2

1. Einleitung Verbesserung und Aufbereitung von Software gewinnt immer größere Bedeutung Softwaresysteme mit der Zeit vielen Entwicklungen unterworfen Architektur Neue Technologien äußere Einflüsse (z.b. Rechtslage) Probleme bei der Wartung: Veraltete Programmiersprachen Mangelnde Dokumentation Undurchsichtige Optimierungen Übersichtsverlust durch langjährige Wartung Programm schwer zu verstehen Altsoftware jedoch nicht einfach ersetzbar: Eng mit Geschäftsprozessen verknüpft Viel unternehmensinternes Wissen Entwicklung des Reengineering 3

2. Begriffsklärung the examination and alteration of a subject system to reconstitute it in a new form and the subsequent implementation of the new form [1] 3 Phasen des Software-Reengineering: Reverse Engineering Restrukturierung Forward Engineering Graphbasiertes Reengineering: Verwendung graphischer Darstellungsformen 4

2. Begriffsklärung Reverse Engineering Vertikale Transformation aus einer konkreteren in eine abstraktere Sprachebene Restrukturierung des Modells Mögliche Horizontale Transformationen Forward Engineering Vertikale Transformation aus einer abstrakteren in eine konkretere Sprachebene nicht zwangsläufig die gleiche Sprache wie vorher 5

3. Vorstellung der Werkzeuge Jumli (Java UML IDE): Freeware-Programm Primär zu Schulungszwecken entwickelt Unterstützt Java, C++ und C# Verwendung von UML UModel: Kommerzielles Produkt von Altova Umfangreiche Modellierungsoptionen Unterstützt nur Java Verwendung von UML Fujaba (From UML to Java and Back again): Open-Source-Programm der Universität Paderborn Als Studie zum Thema Reengineering entwickelt Unterstützt nur Java Verwendung von UML 6

3.1 Jumli Installation: Für Java und C# lediglich Installation des entsprechenden SDK erforderlich Für C++: Compiler MSYS, GNU Toolsammlung tmake, zur Erzeugung von Makefiles 7

3.1 Jumli Enthält UML Editor Integrierten Editor für Quellcode Externe Entwicklungsumgebung einstellbar Kann erstellte Programme kompilieren und ausführen Debugger ebenfalls verfügbar Bietet nicht nur einfach Import von Quellcode sondern auch Synchronisation von Model und Code Bei C++ nur Import von Klassen möglich Teilweise Erkennung von Assoziationen Umfangreiches Tutorial 8

3.1 Jumli Reverse Engineering eines C++-Projektes 9

3.1 Jumli Standardklassen können aus jeweiligem SDK importiert werden Sind dann als externe Klassen im Projekt verfügbar können aber nicht editiert werden 10

3.2 UModel Ausgereiftes kommerzielles Produkt für Modellierung von Java- Programmen mit UML Bietet viele Komfortfunktionen (grafische Funktionen, Suche nach Elementen des Modells) Gute Übersicht auch über große Projekte 11

3.2 UModel 12

3.2 UModel Erstellen von Komponenten und Deployment Diagrammen gewährt bessere Strukturierung und zusätzlichen Überblick bei großen Projekten Komponenten Diagramme 13

3.2 UModel Deployment Diagramme 14

3.2 UModel Anpassbare SPL Templates für Code-Generierung Verwendung von UML Templates für Java 5.0 Javadocs können aus Dokumentation generiert werden Import von kompletten Eclipse oder JBuilder Projekten möglich Allerdings schwache Assoziationserkennung Synchronisation von Model und Code auf verschiedenen Ebenen möglich Packages können von mehreren Projekten verwendet werden Batch-Befehle auch über Kommandozeile aufrufbar (z.b. Import eines Eclipseprojektes und erstellen von Diagrammen) 15

3.3 Fujaba Fujaba Tool Suite RE 4.2.0 zwar extra für Reengineering vorgefertigt, jedoch Versionskonflikte bei diversen Plugins Daher: Fujaba Tool Suite Standard 4.3.1 und Plugins selber installieren Benötigte Plugins: JavaAST 1.1, abstrakter Syntaxbaum für Java-Dateien JavaParser 3.1, Parser für Java-Quellcode Inference Engine 2.1, Erkennung von Design Pattern Pattern Specification 2.1, Erstellung von Diagrammen zur Spezifikation von Design Pattern Pattern Recognition Engines Generator 1.1, kompiliert Design Pattern Spezifikationen für Verwendung mit Inference Engine Association Detection 1.0, Erkennung von Assoziationen außerdem Java SDK ab Version 1.4 benötigt 16

3.3 Fujaba Ermöglicht: Generierung von Klassendiagrammen aus Java-Code Teilweise Erkennung von Assoziationen Erkennen von Design Pattern im Programm Patternerkennung setzt formale Beschreibung der Pattern voraus: auf Graphgrammatiken basierende Patternspezifikationssprache iterativer und skalierbarer Ableitungsalgorithmus Pattern Specification Plugin bietet graphischen Editor für Spezifikation von Design Pattern 17

3.3 Fujaba Patternbeschreibung in Form von Graphtransformationsregeln Grundlage bildet der Abstract Syntax Graph (ASG) des Quellcodes Erweiterung des ASG um Annotationselemente bei Anwenden einer Regel Regel besteht aus linker und rechter Seite Linke Seite: beschreibt erforderliche Struktur des ASG für Ausführung der Regel Auch Annotationen bereits ausgeführter Regeln Komposition von Regeln Trigger für Ausführung der Regel Rechte Seite: definiert zu erzeugendes Annotationselement erzeugt Verbindungen zu einzelnen ASG Elementen Aus Sammlung von Patternregeln wird Katalog erstellt 18

3.3 Fujaba Zusammengesetzte Patternregel 19

3.3 Fujaba Trigger und Abhängigkeiten untereinander bestimmen Ausführreihenfolge der Regeln Abhängigkeiten innerhalb des gesamten Katalogs werden in einem gesonderten Graphen dargestellt Abhängigkeitsgraph 20

3.3 Fujaba Nach Parsen des Quellcodes Aufruf der Patternerkennung Regeln eines Kataloges werden basierend auf ihren Abhängigkeiten und Prioritäten ausgeführt, beginnend mit den unabhängigen Erfolgreiches Anwenden von Regeln erzeugt Annotationen im ASG Auslösen von Triggern höherer Regeln 21

3.3 Fujaba Klassendiagramm mit erkannten Design Pattern 22

3.3 Fujaba Neben gewohnten UML Diagrammen auch erweitertes Aktivitätsdiagramm Darin Spezifikation von Story Pattern, in denen Instanzen und Interaktionen zwischen diesen modelliert werden können Dadurch vollständige Definition von Funktionen möglich 23

4. Vergleich der Werkzeuge Kriterium Jumli UModel Fujaba Plattform Windows, Linux Windows Windows, Mac, alle weiteren mit Java Unterstützung Installation Einfache Installation, für C++ weitere Komponenten erforderlich Einfache Installation Fujaba Tool Suite RE 4.2.0 nicht voll lauffähig, Plugininstallation mühsam Dokumentation Umfangreiche Hilfe und Tutorials Umfangreiche Hilfe mit Tutorial Manche Funktionen nicht dokumentiert, nur Tutorials von Dritten Stabilität des Programms Kleinere Probleme mit externen Klassen, sonst stabil Keine Fehler aufgetreten Oftmals Neustart des Programms erforderlich, Plugin- Inkompatibilitäten 24

4. Vergleich der Werkzeuge Kriterium Jumli UModel Fujaba Sprachunterstützu ng Java, C++, C# Java Java Reverse Engineering Klassengenerierun g, Assoziationserken nung, Synchronisation Klassengenerierun g, Synchronisation Klassengenerierun g, Assoziationserken nung, Patternerkennung Restrukturierung/ Modellierung Standard UML Standard UML mit vielen Komfortfunktione n Standard UML und Story Pattern für Funktionsdefinition Forward Engineering Einfache Codegenerierung, Synchronisation Einfache Codegenerierung, Synchronisation, Templates Beinahe Vollständige Codegenerierung, keine Synchronisation 25

5. Fazit Jumli Unterstützung mehrerer Sprachen Vollständige Entwicklungsumgebung und Synchronisation ermöglichen komplettes Roundtrip-Engineering mit einem Programm UModel Kommerzielles Produkt nur für Windows Sehr gute Modellierungsumgebung Zusatzfunktionen, wie Komponentenverwaltung und guter Synchronisationsmechanismus erleichtern Entwicklung großer Projekte Schwache Reverse Engineering Fähigkeiten Schwerpunkt liegt auf Modellierung Eher für Gesamtentwicklung eines Projekts mit automatischer Wartung des Modells 26

5. Fazit Fujaba Innovative Funktionen Dank Pattern Erkennung sehr gute Reverse Engineering Fähigkeiten Story Pattern ermöglichen den Entwurf beinahe komplett generierbarer Programme Wegen mangelnder Synchronisationsmöglichkeit jedoch nicht für Entwicklung größerer Projekte geeignet 27

Quellen [1] The Program Transformation Wiki, http://www.program-transformation.org [2] Workshop Software Reengeneering, http://www.uni-koblenz.de/~ist/wsr2004/ [3] Udo Gleich, Thomas Kohler, Juli 1997, Tool-support for Reengeneering of object-oriented systems http://www.iam.unibe.ch/~famoos/esec97/submissions/gleich.p df [4] Fujaba Homepage, http://www.fujaba.de [5] Jumli Hompage, http://www.jumli.de [6] Altova Umodel Homepage, http://www.altova.com/umodel 28