
|

---------------
|
|

Home
|
Praktikum Softwareanalyse und -transformation
03-05-H-706.08
Ziel
Dieses Praktikum dient der Vertiefung des Kurses
Software-Reengineering. Hier werden wir Refactorings selbst
implementieren. Um die Vorbedingungen der Refactorings prüfen zu
können, benötigen wir Informationen zu Syntax, Namens- und Typbindung
sowie Kontroll- und Datenfluss. Als besonders herausforderndes
Refactoring werden wir uns insbesondere Extract-Method vornehmen.
Termin
In den Präsenzveranstaltungen in unregelmäßiger Folge werden wir die
notwendigen Werkzeuge und Algorithmen kennen lernen, die Ihr anwenden
bzw. implementieren sollt. Außerdem werdet Ihr Zwischenergebnisse
vorstellen, die wir gemeinsam diskutieren.
Wann wir uns treffen, werden wir bei der ersten Vorbesprechung am
9. April 2009, um 13 Uhr, im TAB 2.50 (2. Stock)
vereinbaren. Wenn Ihr nicht selbst an diesem Termin kommen könnt,
schickt bitte jemanden oder gebt mir per E-Mail an tmende@infor... Bescheid, zu welchen
Terminen Ihr nicht könnt.
Voraussetzung
Erfolgreiche Teilnahme am Kurs Software-Reengineering.
Inhalt
Im Kurs Software-Reengineering haben wir eine Reihe von Konzepten,
Methoden und Techniken zur Analyse und Änderung existierender Software
kennen gelernt.
In diesem Praktikum geht es nun um die praktische Umsetzung des
Gelernten. Dazu wollen wir ausgewählte Refactorings selbst
implementieren. Alle notwendigen Analyseschritte sollt ihr hierfür
entwickeln:
- syntaktische Analyse
- Namensbindung
- Generierung des abstrakter Syntaxbaum
- Kontrollflussanalyse
- Datenflussanalyse
- Transformation
Die zu transformierende Sprache werden wir selbst entwerfen. Sie soll
relevante Konstrukte bieten, um die ausgewählten Refactorings anwenden
zu können (z.B. Klassen, Methoden, Attribute) und einfach genug sein,
damit wir die Refactorings mit vertretbarem Aufwand implementieren
können.
| Einführung, Themenstellung |  | Beschreibung der Aufgabe und des Ablaufs |
| Syntaktische Analyse |  | Einführung in ANTLR, Grammatik unserer Programmiersprache |
| |
|
|



---------
SUBMENU
---------




|

|
|