A. Zündorf, SE Group Reverse Engineering K2 1 Übersicht 1.Quelltextanalyse mit regulären Ausdrücken 2.Compilertechniken 3.Prozessanalyse 4.Dynamische Analyse.

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

der Universität Oldenburg
der Universität Oldenburg
DES-Simulator in JAVA, objektorientiert
Klassen - Verkettete Liste -
DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
Anwendungen des OODM auf die ADB / NDB
PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.
Datenstrukturen Look-Up Tabellen, Zufallszahlen, Listen, Speichermanagement und Dateiverwaltung.
Ausnahmen HS Merseburg (FH) WS 06/07.
Sortieren mit Binären Bäumen
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Listen Richard Göbel.
Java: Grundlagen der Objektorientierung
Ein Beispiel in Java.
Konstruktoren.
Assoziationen (Beziehungen) 1 : n. Zu einem Auto gibt es mehrere Fahrer (2) und zu diesen 2 Fahrern gibt es genau dieses Auto.
Assoziationen (Beziehungen). Zwischen Objekten kann es eine Beziehung geben.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
Abstrakter Datentyp in C++ I - Klasse -
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 GUI Konstruktion: 1. Entwurf mit Papier und Bleistift / Post Ist 2. Eventuell.
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Reverse Engineering K2 1 Ziele Heute Nachlese Volltextsuche Dokumentation in Quelltext einbetten JavaDoc Vorbereitung für Compileransatz.
1 Reverse Engineering WS 07 / 08 A. Zündorf. Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University 2 Organisatorisches.
A. Zündorf, SE Group Reverse Engineering K2 1 Übersicht 1.Quelltextanalyse mit regulären Ausdrücken 2.Compilertechniken 3.Prozessanalyse 4.Dynamische Analyse.
Reverse Engineering Neuentwicklung von Software ist die Ausnahme => Weiterentwicklung von Legacy-Systemen Designdokumentation veraltet Aufgabenstellung:
A. Zündorf, SE Group Reverse Engineering K2 1 Reverse Engineering: Ziele Heute Compileransatz, die Zweite Findet UMLClass getName() Vorkommen Completion.
A. Zündorf, SE Group Reverse Engineering K2 1 Übersicht 1.Quelltextanalyse mit regulären Ausdrücken 2.Compilertechniken 3.Prozessanalyse 4.Dynamische Analyse.
A. Zündorf, SE Group Reverse Engineering K2 1 Ziele Heute Compilerbau Nachlese Ausnutzung von Laufzeittypinformation.
A. Zündorf, SE Group Reverse Engineering K2 1 Übersicht 1.Quelltextanalyse mit regulären Ausdrücken 2.Compilertechniken 3.Prozessanalyse 4.Dynamische Analyse.
A. Zündorf, SE Group Reverse Engineering K2 1 Übersicht 1.Quelltextanalyse mit regulären Ausdrücken 2.Compilertechniken 3.Prozessanalyse 4.Dynamische Analyse.
A. Zündorf, SE Group Reverse Engineering K2 1 Übersicht 1.Quelltextanalyse mit regulären Ausdrücken 2.Compilertechniken 3.Prozessanalyse 4.Dynamische Analyse.
A. Zündorf, SE Group Reverse Engineering K2 1 Ziele Heute Compilerbau Nachlese Ausnutzung von Laufzeittypinformation.
1DVG3 - anonyme Klassen Anonyme Klassen. DVG3 - anonyme Klassen 2 Syntax new BasisKlasse(Parameterliste) { Modifikationen und Erweiterungen der Basisklasse.
DVG Klassen und Objekte
DVG Einfache Klassen 1 Einfache Klassen. 2DVG Einfache KlassenStrukturen Beispiel: Personendaten bestehen aus String name String name.
Einführung in die Programmierung Datensammlung
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
FH-Hof Singleton Pattern Richard Göbel. FH-Hof Motivation Bestimmte Klassen sollen nur ein Objekt haben Nur ein Fabrikobjekt für eine Fabrikklasse Zentraler.
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Die Persistenzschicht
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
1. Verhalten der Objekte: Operationen Werden in den Klassen definiert Werden (i.d.R.) auf einem Objekt aufgerufen Wird das Empfängerobjekt genannt Weitere.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Informatik 1 Letzte Übung.
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Unterprogramme in JAVA
Einfach und doppelt verkettete Listen in JAVA by Jens Weibler
Parameterübergabemechanismen für den Methodenaufruf
EPROG Tutorium #3 Philipp Effenberger
CuP - Java Zwölfte Vorlesung Klassen – Komposition und Vererbung Freitag, 15. November 2002.
Javelin Internet-based parallel computing using Java.
Programmiervorkurs WS 2014/15 Instanzmethoden
Java-Kurs - 8. Übung Besprechung der Hausaufgabe.
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
Robuste Programme durch Ausnahmebehandlung
2 Datenabstraktion Geheimnisprinzip:
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
Objektorientierte Programmierung (OOP)
Diskrete Mathe Diskrete Mathematik I Listen Vorlesung 4.
Tutorium Software-Engineering SS14 Florian Manghofer.
Objektorientierung Gliederung von Daten und Funktionen zu Objekten
Zwei Denkansätze zur Klasse Schlange
Die Klasse Vielfrass in Java
Die Struktur einer Java-Klasse
 Präsentation transkript:

A. Zündorf, SE Group Reverse Engineering K2 1 Übersicht 1.Quelltextanalyse mit regulären Ausdrücken 2.Compilertechniken 3.Prozessanalyse 4.Dynamische Analyse 5.Datenanalyse 6.Design Pattern Erkennung 7.Analyse- und Visualisierungstechniken 1.Clustering 2.Plagiatserkennung 3.Refactoring 4.Hot Spots 5.Designmetriken 6....

A. Zündorf, SE Group Reverse Engineering K2 2 Ziele Heute Design Pattern Erkennung Zugriffsmethodenklassifizierung Assoziationserkennung Pattern Erkennung

A. Zündorf, SE Group Reverse Engineering K2 3 Design Pattern

A. Zündorf, SE Group Reverse Engineering K2 4 Identifizierung von Zugriffsfunktionen Namenskonventionen: setXY, getXY Parameter- und Rückgabetypen müssen passen Im Rumpf Zugriff auf das ensprechende Attribut void setName (String value) { this.name = value; }

A. Zündorf, SE Group Reverse Engineering K2 5 Identifizierung von (zu-n) Assocs Problem: Speicherung in Container: Vector () neighbors; Eintragstyp unklar (wird mit Java 1.5 besser) Lösung: suche add Operationen und bestimme Eintragstyp: void addToNeighbors(C2 value) { this.neighbors.add (value); }

A. Zündorf, SE Group Reverse Engineering K2 6 Identifizierung von bidirektionalen Assocs finde paarweise auftretende add Operationen:... x.addToN1 (y); y.setN2 (x);... Achtung: das kann manchmal fuzzy sein

A. Zündorf, SE Group Reverse Engineering K2 7 Design Pattern Erkennung: Singleton privates, statisches Attribut vom Typ der eigenen Klasse public static get-Operation zur Initialisierung und zum Zugriff darauf public static get () { if (theInstance == null) { theInstance = new C (); } return theInstance; } eventuell private Konstruktor

A. Zündorf, SE Group Reverse Engineering K2 8 Design Pattern Erkennung Probleme Performance: –Parserbaum für Gesamtprogramm meist zu groß, dauert ewig lazy Parsing der Methodenrümpfe Viele Implementierungsvarianten: Fuzzy Pattern Detection: –Kein 1 zu 1 Match von Code Fragmenten –Vorkommen von z.B. Attributzugriff reicht (Dis Jörg Niere) Statische Analyse allein reicht nicht: Traces analysieren (Current Work by Lothar Wendehals) Siehe Fujaba Reverse Engineering Tool Suite UMLProject einparsen und analysieren. Mit anderen Klassen experimentieren