Reverse Engineering 1 Reverse Engineering WS 04 / 05 A. Zündorf.

Slides:



Advertisements
Ähnliche Präsentationen
M a r c – o l i v e r p a h l Informatik I – Kapitel 7 Klassen und höhere Datentypen Zusammenfassung des Kapitel 7 Küchlin, Weber, Einführung in die Informatik,
Advertisements

Software Engineering 2 Übung – Konstruktion interaktiver (CASE) Tools SS 2007 Leif Geiger, Carsten Reckord, Software Engineering.
Modellgetriebene Softwareentwicklung
Windows Vista für Entwickler
Zusammenfassung des Kapitels 8
Verteilte Software - Java - Prozedurale Programmierung 1
Werkzeuge und Softwareumgebung von Christian Michele.
Dipl. Inf. (FH) Paul Mizel Compilerbau.NET Compiler / Codegeneratoren / Skriptsprachen.
Benötigte Applets Startseite: in HTML-Format Applet auf der Startseite Das Applet, das auf der Startseite geladen wird, wird die vier Buttons und die eine.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 9 IO – Streams in Java Sommersemester 2003 Lars Bernard.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 6 Model-View-Controler als Grundlage für Nutzerschnittstellen Sommersemester 2003 Lars Bernard.
Objektorientierte Programmierung JDK-Klassenbibliothek
Werkzeuge und Softwareumgebung von Christian Michele.
Programmiermethodik SS 07 Prof. Albert Zündorf
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Seminar Web-Engineering Nina Aschenbrenner / Ruben Jubeh 1 FG Software Engineering Software Engineering Seminar Web Engineering Seminar des Fachgebiet.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 GUI Konstruktion: 1. Entwurf mit Papier und Bleistift / Post Ist 2. Eventuell.
4. Design Gliederung: Einführung Anforderungsdefinition Analyse Design
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Compilerbau und Reverse Engineering m Vorlesung im Wintersemester.
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.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur 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.
Reverse Engineering Neuentwicklung von Software ist die Ausnahme => Weiterentwicklung von Legacy-Systemen Designdokumentation veraltet Aufgabenstellung:
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.
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.
Model Driven Engineering SS 10 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee Kassel (Raum 1339)
Model Driven Engineering SS 10 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee Kassel (Raum 1339)
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Compilerbau und Reverse Engineering m Vorlesung im Wintersemester.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Compilerbau und Reverse Engineering m Vorlesung im Wintersemester.
Model Driven Engineering SS 10 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee Kassel (Raum 1339)
Model Driven Engineering SS 10 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee Kassel (Raum 1339)
Programmiermethodik SS2010 © 2010 Albert Zündorf, University of Kassel 1 Gesamtvorgehen 1. Textuelle Szenarios 2. Objektdiagramme 3. Klassendiagramm 4.
Seminar SE: MDE 1 FG Software Engineering Software Engineering Seminar Model Driven Engineering Seminar des Fachgebiet Software Engineering Ruben Jubeh,
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Baustein- vs. funktionsorientierte Organisation.
Proxy Pattern Vorlesung Design Patterns Sieglinde Heinrich
F açade P attern By Nicolas Lanquetin. Façade Pattern Structural Pattern Bietet ein gemeinsames Interface, anstatt vieler Interfaces eines Subsystems.
DVG Einführung in Java1 Einführung in JAVA.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
Informatikunterricht mit Java
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.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Compilerbau und Reverse Engineering m Vorlesung im Wintersemester.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Model Driven Engineering SS 10 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee Kassel (Raum 1339)
USE2ANT Die Umstellung von Use Makefiles zu Ant & Junit Von Isaac, Maleen und Marc.
Herzlich Willkommen zu „Einführung in die Programmierung mit Java“
University of Applied Sciences Übung Objektorientierte Programmierung II Dipl.-Inf. (FH) Markus Vogler.
Servlet III Java Webanwendung Webcontainer Web.xml
1 Workshop Service Grundlagen Saia Service an PCD's Grundlagen I. Workshop Einführung Service an Saia PCD Grundlagen.
Softwareentwicklung für WebOS
Java und Eclipse.
The free XML Editor for Windows COOKTOP Semistrukturierte Daten 1 Vortrag Semistrukturierte Daten 1 COOKTOP The free XML-Editor for Windows
Gameplay Systems I Softwaretechnologie II (Teil 2): Simulation und 3D Programmierung SS 2012 Prof. Dr. phil. Manfred Thaller Referent: Christian Weitz.
Quelle: Standish Group, 2006 Fourth Quarter Research Report, CHAOS Research Results.
Abteilung für Telekooperation Übung Softwareentwicklung 2 für Wirtschaftsinformatik Dr. Wieland Schwinger
Exception Handling in Java
Einführung in das Wissenschaftliche Arbeiten Andreas Hechenblaickner Programmiersprache Eiffel
Common Language Runtime Seminar Softwareentwicklung Wintersemester 2003 Gertraud Orthofer
Torque in Turbine Team 3 Alexander Mittermair Michael Wesinger.
CuP - Java Vierte Vorlesung Entspricht ungefähr Kapitel 2.1 des Skriptums Montag, 14. Oktober 2002.
CuP - Java Zwölfte Vorlesung Klassen – Komposition und Vererbung Freitag, 15. November 2002.
Robuste Programme durch Ausnahmebehandlung
Java-Kurs Übung Benutzeroberflächen und Graphik Frames (Fenster)
 Präsentation transkript:

Reverse Engineering 1 Reverse Engineering WS 04 / 05 A. Zündorf

Reverse Engineering 2 Organisatorisches Termine: Montags 14: (Beginn ) Raum: CIP Pool unter der Mensa 15 Minuten Vorlesung, 75+ Minuten Übung am Rechner Klausur: Computerklausur am ?

Reverse Engineering 3 Motivation Neuentwicklung von Software ist die Ausnahme => Weiterentwicklung von Legacy-Systemen Designdokumentation veraltet Aufgabenstellung: Ah prima, dass sie da sind, wir wollen für unser System (2 Millionen LOC) XML Support, bauen sie das doch mal ein

Reverse Engineering 4 Motivation Aufgaben: Wiedergewinnung von Design (Klassendiagramme,...) Finden von Funktionalität Finden von Fehlerursachen...

Reverse Engineering 5 Inhalt 1.Volltextsuchtechniken (grep,...) 2.Compiler basierte Techniken (Cross-Referencing,...) 3.Dynamische Analysen 1.Code Instrumentierung / Tracing 2.Debugger Techniken 4.Analyse der Versionshistorie 5.JavaDoc und Google 6.Datenanalyse 7.Auswertung und Visualisierung (Clustering,...)

Reverse Engineering 6 1. Volltextsuche Low-Tech Ansätze: Compiler-Ansätze versagen oft: –unterschiedliche (alte) Sprachversionen –Mix aus vielen Sprachen –zusätzliche Textdateien Sprachunabhängige Mechanismen –Suchen mit regulären Ausdrücken –Diff –...

Reverse Engineering 7 Suchen mit regulären Ausdrücken Suchen in einer Datei/ im Texteditor: grep –nH 'System.out.println' FujabaApp.java

Reverse Engineering 8 Suchen mit regulären Ausdrücken Suchen in vielen Dateien: grep –nH 'Welcome' *.java Suchen in Dateibäumen: find –name "*. java" | xargs grep –nHi "welcome"

Reverse Engineering 9 Suchen in IDEs (Eclipse) Edit -> Find (Ctrl-F) suchen in aktueller Datei

Reverse Engineering 10 Suchen in IDEs (Eclipse) suchen in allen Dateien des Projekts

Reverse Engineering 11 Aufgaben zur Volltextsuche: 1.Studentpackage1 runterladen von: In Eigene Dateien entpacken 3.Eclipse starten 1.Doppelclick auf Eclipse.exe 2.Welcome schließen 3.File -> New -> Project: Java Project 4.Project name: Fujaba 5.o Create Project at external location Browse (Fujaba Tool suite) 6.Compilieren lassen 7.Window -> Preferences: Java -> Compiler: Tab Advanced: Usage of deprecated API: Ignore 8.Alles sollte fehlerfrei durchcompilieren

Reverse Engineering 12 Reguläre Suchausdrücke in Eclipse Normaler Text: Hallo Wort Wort: This.* to

Reverse Engineering 13 Aufgaben zur Volltextsuche: 4.Suchen: 1. TODO 2.Edit class dialog 3.File Save As Implementierung 4.Unterklassen von UMLDiagram 5.Fehlermeldung: Unnamed class diagram log4j: ERROR setFile(null,true) call failed. CFG-parse error during code generation for NewClass::m1 -> Abnormal termination in control flow java.lang.RuntimeException: Transition guards null and null are incompatible 6.Alle anwendenden Vorkommen von getName() der Klasse UMLClass 7.Wo wird "public" Flag für Klassen in der Codegenerierung erzeugt