Software-Reengineering
Modul - Informatik: Aufbau Praktische Informatik
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 dabei nicht nur mit alter Software zu tun; gerade neuere objekt-orientierte Systeme erfordern oft schon bald eine Restrukturierung, weshalb sich ein guter Teil der Vorlesung speziell objekt-orientierter Software widmet (Restrukturierung von Klassenhierarchien, automatisches Refactoring). Auch im Kontext neuerer Ansätze des Software-Engineerings zur Entwicklung ähnlicher Produkte als Produktlinie findet Reengineering Einsatz.
Die Vorlesung "Software-Reengineering" beschäftigt sich mit der Methodik des systematischen lnformationengewinns über existierende Programme, die formale Repräsentation von Programmen sowie mit Methoden für semantikerhaltende Transformationen von Programmen. Die in der Vorlesung dargestellte formale Begriffsanalyse bildet eine mathematisch fundierte Methode zur Analyse verschiedener Relationen in Programmen, die auch in anderen Gebieten der Informatik eingesetzt werden kann.
Die Übungen dienen - neben der Wiederholung und praktischen Vertiefung des Vorlesungsinhalts - auch der Vorstellung existierender Reengineering-Werkzeuge.
Lernergebnisse
Die Studierenden verfügen über folgende Fachkompetenzen:
- auf welchen Ebenen man Code analysieren kann,
- wie man Schwachstellen des Codes auffindet,
- wie man duplizierten Code automatisch aufspürt,
- wie man Abhängigkeiten zwischen Anweisungen nachverfolgen kann
- wie man Code-Muster findet,
- wie man den Code automatisch transformieren kann,
- wie man die Stellen im Code findet, die eine bestimmte Funktionalität implementieren,
- wie man Vererbungshierarchien restrukturieren kann,
- wie man Software visualisieren kann,
- wie man Software-Architekturen rekonstruiert
- wie man Reengineering-Projekte organisiert.
Inhalte
allgemeiner Überblick über das Thema sowie Beziehung des Reengineerings zu verwandten Gebieten der Software-Wartung,
Wrapping, etc.Zwischendarstellungen für Programmanalysen (abstrakte Syntaxbäume, Program Dependency Graph, Static Single Assignment
Form), Datenfluss-/KontrollflussanalysenSoftware-Metriken
Software-Architekturrekonstruktion: Reflexionsmethode, Software-Clustering, Symphony
Program Slicing
Klonerkennung
Mustersuche
automatische Code-Transformationen und Refactoring
Begriffsanalyse
Merkmaisuche
Analyse und Restrukturierung von Vererbungshierarchien
Software Visualisierung
Planung und Durchführung von Reengineering-Projekten, Prozessmodelle des Reengineerings
In Kürze
Inhalt:
Wiedergewinnung verlorener Informationen über existierende Software-Systeme (Reverse Engineering), Restrukturierung der Beschreibung des Systems (Restructuring) und der nachfolgenden Implementierung der Änderungen (Alteration)
Niveau: Master-Modul
Veranstaltungsform:
Vorlesung und Übung
Semester: Wintersemester
Umfang: 6 CP
Modulverantwortung
Prof. Dr. R. Koschke
Zielgruppe
Fachkräfte aus den Arbeitsfeldern Informationstechnik und Medien
Zugangsvoraussetzungen
einschlägiger Bachelor-Abschluss
eine mindestens einjährige Berufspraxis
Nutzen Sie unsere Beratungsangebote und erfahren Sie mehr über die Zugangsvoraussetzungen zu den Mastermodulen.
Nachweis von fachspezifischen Grundlagenkenntnissen
Veranstaltungsdetails
Veranstaltungsform:
Vorlesung und Übung
Veranstaltungszeiten:
im Wintersemester -
Termine folgen
Prüfungen & Abschluss
Prüfung:
i.d.R. Bearbeitung von Übungsaufgaben und Fachgespräch oder mündliche Prüfung
Abschluss:
- Modulzertifikat
Umfang
Dauer: 1 Semester
Arbeitsaufwand:
56 Std. Präsenzveranstaltungen
+ 124 Std. angeleitetes Selbststudium
(entspricht 6 CP)
Teilnahmeentgelt
450 Euro (= 75 Euro pro CP)
Mitglieder des Alumni-Vereins der Universität Bremen erhalten 5 % Rabatt.
Bewerbung
Eine Bewerbung ist zum jetzigen Zeitpunkt leider nicht möglich.
Bewerbungszeitraum:
1. August - 15. September
Information & Beratung:
Sie interessieren sich für unser Angebot im Bereich "Informatik, Digitale Medien, Digitalisierung"? Wir beraten Sie gern:
Jörg Kastens
Telefon: 0421 - 218 61 617
eMail: jkastensprotect me ?!uni-bremenprotect me ?!.de