Thesis:
Unter Legacy Code wird (neben anderen Definitionen) Code verstanden, der sich durch unerwünschte (jedoch in Praxis häufig anzutreffende) Eigenschaften auszeichnet: wenige bis keine Tests, kaum dokumentiert, nicht nachvollziehbar strukturiert, hohe Komplexität, schwer verständlich.
Legacy Code in diesem Verständnis ist dabei nicht auf Altsysteme (Legacy Systeme) beschränkt, sondern kann dabei in allen Bereichen des Software-Engineerings auftreten, z.B. in alten Anwendungen des Finanzsektors, in modernen ERP Systemen oder auch in allen Formen von Open Source Software.
Trotz dieses relativ bekannten Phänomens wird die Softwarepflege und Änderung/Erweiterung von Legacy Code allerdings recht selten betrachtet. Viele Werkzeuge und Analysetechniken zielen eher auf lehrbuchartigen (Non-Legacy) Code ab und offenbaren bei der Arbeit mit Legacy Code schnell Grenzen ihrer Praktikabilität.
Ziel vorliegender Bachelorarbeit ist es, bestehende Analyseansätze und Softwaremetriken kritisch zu beleuchten, um Grenzen der Praktikabilität bei Legacy Code an praktischen Fallbeispielen aufzuzeigen. Dabei soll die Analyse besonderes Augenmerk darauf legen, wie sich Entwickler auch in Legacy Code Basen hoher Komplexität deutlich besser zurecht finden bzw. Problemstellen schnell identifizieren könnten. Die Arbeit soll sich dabei auf frei verfügbare Open Source Software und eine Programmiersprache freier Wahl beschränken. Die Wahl der Programmiersprache ist zu einem frühen Zeitpunkt der Arbeit geeignet zu begründen. Kommerzielle Produkte können ggf. in der Analyse berücksichtigt werden, sollen jedoch nicht für die Lösung herangezogen werden.
Hierzu sind im Detail folgende Teilaufgaben zu bearbeiten und zu dokumentieren: