Software-Reengineering (2V + 2Ü)
Wintersemester 2006/2007
Gunther Vogel
Inhalt
Software-Reengineering beschäftigt sich mit Wiedergewinnung
verlorener Informationen über existierende Software-Systeme
(Reverse Engineering), Restrukturierung der Beschreibung des
Systems (Restructuring) und der nachfolgenden Implementierung der
Änderungen (Alteration). Reengineering hat es dabei nicht nur
mit alter Software zu tun; gerade neuere objekt-orientierte Systeme
erfordern oft schon bald eine Restrukturierung. Auch im Kontext
neuerer Ansätze des Software Engineerings zur Entwicklung
ähnlicher Produkte als Produktlinie findet häufig Reengineering
Einsatz.
Folien zur Vorlesung:
Komplettes Skript (mit weißem Hintergrund):
-
reengineering-komplett.pdf
Übungen
Die Übungen finden wöchentlich statt. Neben
der Wiederholung und praktischen Vertiefung des Vorlesungsinhalts
werden auch existierende Reengineering-Werkzeuge vorgestellt.
Die praktischen Übungen finden im studentischen Pool-Raum der Abteilung Programmiersprachen und Compilerbau statt: Raum 1.020
-
Übungen:
- Die Übungen finden in zwei Gruppen statt:
Gruppe 1 : Do 9:00 Raum: 38.03
Gruppe 2 : Mi 11:30 Raum: 0.453
Der erste Termin der beiden Gruppen findet auf Grund
eines Feiertages am 2.11.2006 gemeinsam statt.
- Übung 1 (2.11.) - Reengineering, Zwischendarstellungen
[pdf],
- Übung 2 (8./9.11.) - Zwischendarstellungen, Kontrollfluss
[pdf],
- Übung 3 (15./16.11.) - Kontrollabhängigkeit, Präprozessor, Kontextsensitivität
[pdf],
- Übung 4 (praktisch) (22/23.11) - Lexikalische Analyse,
Statistik [pdf], Quelltexte [tgz]
- Übung 5 (praktisch) (29/30.11) - Syntaktische Analyse [pdf], Quelltexte [tgz]
- Übung 6 (20/21.12) - Datenfluss-Analyse und Slicing [pdf]
- Übung 7 (11.1.) - Slicing, Klone, Metriken [pdf]
- Übung 8 (praktisch) (18.1.) - Slicing [pdf], Quelltexte [tgz]
- Übung 9 (praktisch) (25.1.) - Architektur [pdf], Quelltexte [tgz]
- Übung 10 (praktisch) (1. 2) - Erkennung von Klonen [pdf], Quelltexte Cook
Voraussetzungen
Die Vorlesung richtet sich an
Informatikstudentinnen und -studenten im Hauptstudium sowie an
Studierende anderer Fachrichtungen, die über
Informatikgrundkenntnisse verfügen. Kenntnisse im Compilerbau und
Software Engineering wären hilfreich, sind aber keine notwendige
Voraussetzung.
Termine
Die geplanten Termine der Vorlesung und der Übung sind wie
folgt (Kleinere Terminänderungen sind aber noch möglich.):
- Vorlesung: Montag, 9:45 - 11:15 Uhr, Raum 38.03
- Übung: Donnerstag 8:00-9:30 Uhr oder Mittwoch 11:30-13:00 Uhr
Prüfung
Die Vorlesung Software-Reengineering kann als Teil der
Vertiefungslinie zusammen mit den Grundlagen Compilerbau, den
Konzepten der Programmiersprachen oder Realtime Programming geprüft
werden. Eine Kombination mit den anderen Vorlesungen des Lehrstuhls
ist also möglich.
Als Ausnahme kann Software-Reengineering wegen inhaltlichen
Überschneidungen nicht zusammen mit der Vorlesung Programmanalysen
geprüft werden.
Eine Prüfung im Wahlbereich ist jedoch problemlos möglich.
Weiterführende Informationen
Weitere Informationen zu Reengineering sind in der Reengineering-Bibliographie
erhältlich.
Literatur
Gunther Vogel
Last modified: Wed Feb 7 11:32:24 CET 2007