Home  Sitemap  Kontakt 





 


TZI

---------------
 
 
Lehrmaterial
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, um 11 Uhr, im OAS 3000 (Linzer Str. 9a, 3. Stock) vereinbaren. Wenn Ihr nicht selbst an diesem Termin kommen könnt, schickt bitte jemanden oder gebt mir per E-Mail 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 (TXL)
  • Namensbindung (TXL)
  • Generierung des abstrakter Syntaxbaum (TXL/Java)
  • Kontrollflussanalyse (Java)
  • Datenflussanalyse (Java)
  • Transformation (TXL)
Für die mit TXL gekennzeichneten Schritte verwenden wir die Transformationssprache TXL. Alle weiteren Schritte könnt Ihr in Java implementieren. Dazu werden wir den Ableitungsbaum in TXL in einen abstrakten Syntaxbaum, dessen Knoten in Java-Datenstrukturen implementiert sind, übersetzen.

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, ThemenstellungPDFBeschreibung der Aufgabe und des Ablaufs
TXL-Tutorial (Copyright J. Cordy, Original)PDFTutorial zu TXL; weitere Dokumente zu TXL gibt es hier.
Syntaktische Analyse und abstrakte Syntax mit TXLPDFEin kleines Beispiel für syntaktische Analyse und abstrakte Syntax mit TXL.
NamensbindungPDFNamensbindung (eindeutiges Umbenennen mit TXL)
KontrollflussanalysePDFKontrollflussanalyse
 



zurück  






Abschlussarbeiten

Lehrmaterial

 

---------
BEDIENUNG
---------


SEITENINHALT DRUCKEN

LESEZEICHEN SETZEN

ENGLISH VERSION  






  SEITENANFANG
Hier geht es zur Homepage des Fachbereiches 03 der Universität Bremen Hier geht es zur Homepage der Informatik des Fachbereiches 03 der Universität Bremen Hier geht es zur Homepage der Universität Bremen