A. Zündorf, SE Group Reverse Engineering K2 1 Reverse Engineering: Ziele Heute Compileransatz, die Zweite Findet UMLClass getName() Vorkommen Completion.

Slides:



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

der Universität Oldenburg
Frame-Logik Eine Einführung Andreas Glausch.
Einführung in die Programmierung Ausführbare Klassen
Seminar Internetdienste Web 2.0 und Rich Internet Applications (RIA) JavaFX Rainer Scholz.
(kleine!) Java Einführung Mittwoch, Heute Ziel: erstes Java-Programm erstellen Von der Aufgabenstellung bis zur Lösung Grundlagen Einfache.
Die ganzen Zahlen an der Zahlengeraden
Seminar Software-Engineering für softwareintensive Systeme
Parser generieren Yet Another Compiler – Compiler YACC.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Was ist Refactoring? Bevor man die Integration angeht, mag es angebracht sein, den.
HTML - Einführung Richard Göbel.
Java: Objektorientierte Programmierung
Java: Grundlagen der Objektorientierung
Navigieren / Suchen 12.Oktober Kann ein Browser das? 12.Oktober Bei findet man für das Wort browsehttp://dict.leo.org.
Dateien. Eine Datei wird in C++ als ein Stream, also als ein Objekt einer bestimmten Klasse dargestellt.
Polymorphie (Vielgestaltigkeit)
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
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 Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
Grundlegende Analysen & Zwischendarstellungen
NPGrammar NPGrammar. Nominalphrasenextraktion.
3. Klassendiagramme in Java implementieren
3. Analyse Gliederung: Einführung Anforderungsdefinition
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 6. Story Driven Modeling Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Programmiermethodik SS2006 © 2005 Albert Zündorf, University of Kassel 1 6. Tipps, Tricks, Idiome Gliederung: 1. Einführung 2. Anforderungsdefinition 3.
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 Projektplan:
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 Ü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 Ü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.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Test Summary: m ein Fehler pro Tag m Test First m Funktionstests.
Model Driven Engineering SS 10 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee Kassel (Raum 1339)
© 2005 Pohlig - Taulien Datenströme GK Informatik 1 Datenströme.
FH-Hof HTML - Einführung Richard Göbel. FH-Hof Komponenten des World Wide Webs WWW Browser HyperText Transfer Protocol (HTTP) via Internet WWW Server.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Client Architecture Data Model GUI KI Socket Connection.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Test Summary: m ein Fehler pro Tag m Test First m Funktionstests.
YouTube5 .0 Projektpräsentation
Programmiersprachen II Integration verschiedener Datenstrukturen
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
IT2 – WS 2005/20061Oct 10, 2005 Externes Verhalten – Quelltext (source code) Durch Aufrufe der Konstruktoren und Methoden kann das externe Verhalten (=die.
Entwurfs- und Implementationsdiagramme
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
EPROG Tutorium Einheit 4 Klassen und Objekte. Wiederholung Schleifen do... while while for break/continue Strings String char Methoden für Strings Arrays.
Schriftlicher Ausdruck
Programmbereich, zu dem eine Deklaration gehört Arten von Gültigkeitsbereichen -Namespace : Deklarationen von Klassen, Interfaces, Structs, Enums, Delegates.
Purga - Scriptengine Ein Einblick.
Algorithmen und Datenstrukturen Übungsmodul 8
EPROG Tutorium #3 Philipp Effenberger
Algorithmen und Datenstrukturen Übungsmodul 3
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
Formulare Vanessa Kogelbauer.
Lernlandkarte OOP (ObjektOrientiertes Programmieren)
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
Test 1 Test 2 Test 3. Test 4 Test 5 Test 6 Test 7 Test 8 Test 9.
Verhältnisformeln 2014 ZPG III-Wy Stille_Post_M100_Ue1_Verhaeltnisformel.
Java Programme nur ein bisschen objektorientiert.
13.Dezember 2006–1Elektronisches Publizieren: Schemasprachen — Relax NG Schemasprachen für XML — Relax NG — Anne Brüggemann-Klein TU München.
verkettete Strukturen
Test.
Die ganzen Zahlen an der Zahlengeraden
PGdP Tutorstunde 2 Gerald Mahlknecht Technische Universität München Informatik.
Test Summary: ein Fehler pro Tag Test First
 Präsentation transkript:

A. Zündorf, SE Group Reverse Engineering K2 1 Reverse Engineering: Ziele Heute Compileransatz, die Zweite Findet UMLClass getName() Vorkommen Completion anbieten

A. Zündorf, SE Group Reverse Engineering K2 2 Erweiterte Symboltabelle

A. Zündorf, SE Group Reverse Engineering K2 3 Analyse der Methodenrümpfe genaue Syntaktische Struktur wird nicht benötigt (if, while, for,... können gleich behandelt / ignoriert werden Klammerung parsen ist wichtig Sondersymbole ignorieren methodBody ::= bracketExpr bracketExpr ::= ( "(" | "[" | "{" ) (token * ( nameExpr | bracketExpr ))* ( ")" | "]" | "}" ) nameExpr ::= name [ bracketExpr ] [. nameExpr ]

A. Zündorf, SE Group Reverse Engineering K2 4 Tipps zur Aufgabenstellung gebt als erstes zu jedem nameExpr das Element aus der Symboltabelle aus Dann einfach nur noch getName der Klasse UMLClass ausgeben Eventuell zwei Compilerläufe: –erster Lauf baut Symboltabelle –zweiter Lauf analysiert die nameExpr's Methodensignaturen ignorieren (getName hat keine Parameter) Lokale Variablen einfach wie Attribute in die Symboltabelle eintragen (eventuell Parameter auch) (eventuell merken und am Ende der Methode wieder löschen)

A. Zündorf, SE Group Reverse Engineering K2 5 Tipps zur Completion Methode proposeCompletions ließt Attribut toBeCompleted schreibt Vorschläge in possibleCompletions CompletionSnipIt.txt von der Web Seite holen Testen mit FWT GUI