Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "A. Zündorf, SE Group Reverse Engineering K2 1 Übersicht 1.Quelltextanalyse mit regulären Ausdrücken 2.Compilertechniken 3.Prozessanalyse 4.Dynamische Analyse."—  Präsentation transkript:

1 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....

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

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

4 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; }

5 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); }

6 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

7 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

8 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 4.2 UMLProject einparsen und analysieren. Mit anderen Klassen experimentieren


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

Ähnliche Präsentationen


Google-Anzeigen