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

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

Post on 05-Apr-2015

110 views

Category:

Documents

3 download

Embed Size (px)

TRANSCRIPT

<ul><li> Folie 1 </li> <li> Reverse Engineering 1 Reverse Engineering WS 04 / 05 A. Zndorf </li> <li> Folie 2 </li> <li> Reverse Engineering 2 Organisatorisches Termine: Montags 14:00 -... (Beginn 25.10.2004) Raum: CIP Pool unter der Mensa 15 Minuten Vorlesung, 75+ Minuten bung am Rechner Klausur: Computerklausur am ? </li> <li> Folie 3 </li> <li> Reverse Engineering 3 Motivation Neuentwicklung von Software ist die Ausnahme =&gt; Weiterentwicklung von Legacy-Systemen Designdokumentation veraltet Aufgabenstellung: Ah prima, dass sie da sind, wir wollen fr unser System (2 Millionen LOC) XML Support, bauen sie das doch mal ein </li> <li> Folie 4 </li> <li> Reverse Engineering 4 Motivation Aufgaben: Wiedergewinnung von Design (Klassendiagramme,...) Finden von Funktionalitt Finden von Fehlerursachen... </li> <li> Folie 5 </li> <li> 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,...) </li> <li> Folie 6 </li> <li> Reverse Engineering 6 1. Volltextsuche Low-Tech Anstze: Compiler-Anstze versagen oft: unterschiedliche (alte) Sprachversionen Mix aus vielen Sprachen zustzliche Textdateien Sprachunabhngige Mechanismen Suchen mit regulren Ausdrcken Diff ... </li> <li> Folie 7 </li> <li> Reverse Engineering 7 Suchen mit regulren Ausdrcken Suchen in einer Datei/ im Texteditor: grep nH 'System.out.println' FujabaApp.java </li> <li> Folie 8 </li> <li> Reverse Engineering 8 Suchen mit regulren Ausdrcken Suchen in vielen Dateien: grep nH 'Welcome' *.java Suchen in Dateibumen: find name "*. java" | xargs grep nHi "welcome" </li> <li> Folie 9 </li> <li> Reverse Engineering 9 Suchen in IDEs (Eclipse) Edit -&gt; Find (Ctrl-F) suchen in aktueller Datei </li> <li> Folie 10 </li> <li> Reverse Engineering 10 Suchen in IDEs (Eclipse) suchen in allen Dateien des Projekts </li> <li> Folie 11 </li> <li> Reverse Engineering 11 Aufgaben zur Volltextsuche: 1.Studentpackage1 runterladen von: http://www.se.eecs.uni-kassel.de/se/index.php?re0405 http://www.se.eecs.uni-kassel.de/se/index.php?re0405 2.In Eigene Dateien entpacken 3.Eclipse starten 1.Doppelclick auf Eclipse.exe 2.Welcome schlieen 3.File -&gt; New -&gt; Project: Java Project 4.Project name: Fujaba 5.o Create Project at external location Browse (Fujaba Tool suite) 6.Compilieren lassen 7.Window -&gt; Preferences: Java -&gt; Compiler: Tab Advanced: Usage of deprecated API: Ignore 8.Alles sollte fehlerfrei durchcompilieren </li> <li> Folie 12 </li> <li> Reverse Engineering 12 Regulre Suchausdrcke in Eclipse Normaler Text: Hallo Wort...... Wort: This.* to </li> <li> Folie 13 </li> <li> 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 -&gt; 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 fr Klassen in der Codegenerierung erzeugt </li> </ul>