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-/Kontrollflussanalysen

  • Software-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