Software-Archäologie

Software-Archäologie

SWS 4
ECTS 5
Sprache(n) Deutsch (Standard)
Englisch
Lehrform SU mit Praktikum
Angebot im Wechsel mit anderen Fächern der gleichen Fachgruppe
Aufwand

60 Präsenzstunden, 90 Stunden Eigenarbeit zur Vor-/Nachbereitung und Prüfungsvorbereitung

Voraussetzungen

Gute Fähigkeiten zur Softwareentwicklung in einer objektorientierten Programmiersprache, Grundlagen des Software Engineering, Grundlagen Datenbanken, sicherer Umgang mit einer Entwicklungsumgebung

Ziele

Die Studierenden ...

  • definieren das Gebiet der Software-Archäologie
  • beschreiben die Tätigkeiten zur Analyse von existierendem (Legacy) Code mit eigenen Worten
  • analysieren existierenden Quelltext, um ihn zu verstehen und um
  • Rückschlüsse auf die Intention der ursprünglichen Entwickler*innen zu ziehen
  • Requirements zu Identifizieren, sodass diese als Grundlage für Refactorings oder eine Re-Implementierung dienen können
  • dokumentieren die gewonnen Erkenntnisse mit geeigneten Mitteln.
  • wenden Techniken des Reverse Engineering systematisch und gezielt an
  • wenden Techniken des Refactoring systematisch und gezielt an
  • analysieren Kontrollfluss theoretisch oder anhand existierender Ausgangsdaten
  • entwerfen und implementieren Testinfrastruktur für Legacy Code und führen diese aus
  • diskutieren Vorgehensweisen und Arbeitsergebnisse in Ihrer Praktikumsgruppe und im Plenum.
Inhalt
  • Erosionsprozesse in Softwareprojekten und Technische Schulden
  • Techniken des Reverse Engineering:
    • Debugging
    • Tracing-Instrumentierung
    • File browsing (mit oder ohne geeignete IDE)
    • Visualisierungswerkzeuge für Software
    • Codeanalyse basiert auf statistischen Analysen
  • Techniken für Refactoring von Quelltext
  • Dokumentationstechniken
Medien und Methoden

Je nach Dozierendem: Forschendes Lernen, Projektspezifische Arbeitsleistung, Fallstudien, Beamer, Tafel und Folien

Literatur

Jonathan Boccara: The Legacy Code Programmer's Toolbox: Practical Skills for Software Professionals Working with Legacy Code, Independently published 2019, ISBN: 978-1691064137

Michael C. Feathers: Working Effectively with Legacy Code, Addison-Wesley, 14. Auflage, 2013, ISBN: 978-0131177055

Martin Fowler: Refactoring: Improving the Design of Existing Code, Addison-Wesley, 2.Auflage, 2018, ISBN: 978-0134757599

Zuordnungen Curricula
SPO Fachgruppe Code ab Semester Prüfungsleistungen

IF Version 2019

FWP

6

Modularbeit
mündliche Prüfung

IF Version 2023

FWP

6

Modularbeit
mündliche Prüfung