270 likes | 377 Vues
This keynote presentation by Chris Verhoef from the University of Amsterdam explores the critical challenges of maintaining and renovating legacy software systems. With staggering costs associated with outdated software and the complexity of managing billions of lines of code, the need for effective automated solutions is more pressing than ever. The talk emphasizes the importance of software renovation, reverse engineering, and structured approaches to modernizing legacy systems while addressing issues like error injection and maintenance costs. Discover strategic insights for the future of software development.
E N D
Keynote for SCI/ISAS 99 onAutomatedModification of Legacy AssetsChris VerhoefUniversity of AmsterdamDeutsche Version vonMonika Schneider, sd&m
Neue Software - Kosten • $81 Mrd pro Jahr für aufgegebene Projekte • $59 Mrd pro Jahr wegen Kosten- oder Zeitüberschreitung oder Änderung des Umfanges Neue Software zu bauen ist schwer, also pflege die existierende! (Erblast)
Existierende Software - Fakten • Volumen: 7 Mrd Function Points • 750 Mrd Zeilen COBOL Code • 900 Mrd Zeilen C Code 1 Function Point = 128 Zeilen C 107 Zeilen COBOL
Existierende Software - Kosten • Y2K Problem kostet $1635 Mrd • Durschnittlich 5 Fehler pro Function Point • 35 Mrd Fehler zu beheben Das reicht! Werft den alten Kram weg und fangt neu an!
Software Neuentwicklung • Volumen: 7 Mrd Function Points • Start der Entwicklung: 1277 • Anzahl Entwickler: 46 Mio Daumenregel: Function Points hoch 0.04 = Monate Function Points geteilt durch 150 = Personal
Unsere Daten • 1. Januar 1999: weiche Euro-Einführung • 1. Januar 1999: 99 als Sonderfall • 20./21. August 1999: GPS Woche • 1. Januar 2000: 00 als Sonderfall • 29. Februar 2000: Papst Gregor XIII • 1. Januar 2001: harte Euro-Einführung • 2038: UNIX Datum • .....
Ein Migrationsprojekt... Während die 46 Mio Entwickler seit 1277 wie verrückt arbeiten, ändert jemand die Anforderungen: • Papst Gregor XIII: 04.10.1582 = 15.10.1582 • 1700 ist kein Schaltjahr (sollte aber nach julianischem Kalender) • in 1712 gibt es den 30. Februar Anforderungen wachsen um 2% pro Monat während der Entwicklung.
Lektionen • Alte Software wegzuwerfen und alles neu zu machen ist unrealistisch. • Wir sitzen auf der alten Software fest. • Programmierung führt zu Erblast. • Wir konstruieren heute die Erblast von morgen.
Sprachen / Plattformen • COBOL 30% • Assembler 10% 140-220 Mrd Zeilen • C/C++ 20% • 700 Sprachen 40% • 5-10% ist sprachlos: Sourcecode verloren
Sprachen / Plattformen • 30% US Software hat gemischte Sprachen: COBOL/CICS/SQL/Assembler • 60% geschäftskritischer Software läuft auf Mainframes • 80% der Mainframe Applikationen benutzen COBOL
Wichtige Botschaft • Wartung und Renovierung existierender Software wird immer wichtiger. • Automatische Unterstützung ist unumgänglich. • Der Wendepunkt ist erreicht: 4 von 7 Entwicklern erweitern und reparieren. • In 2020 wird nur 1/3 der Entwickler an neuen Projekten arbeiten.
Was ist Software Renovation? Erblast: • Teures System, das Veränderungen aufgrund von Größe, Alter oder fortlaufender Anpassungen zunichte macht. • Erfordert wachsende Wartungskosten Software Renovation: • Schrittweises Verständnis und Verbesserung von Erblasten. • Benutzt reverse engineering, design recovery, system restructuring,...
100% Fehlerinjektion(jede Reparatur erzeugt einen Fehler an anderer Stelle)
Hinzufügen widersprüchlicher Features erschwert den Gebrauch
Typische Renovation Tasks • entferne Erblasten • ermögliche Weiterentwicklung • reduziere die Fehlerinjektionsrate • reduziere Wartungskosten • entferne widersprüchliche Features • Restrukturierung macht sich bezahlt • Reparaturdesign erzeugt Schwachpunkte
Wartung und Renovation ist erforderlich wichtig schwierig Herausforderung für die Forschung Wartung und Renovation ist spannend: Patterns Frameworks Middleware Components Product-lines Software Renovation heißt, Technologie von morgen zu nutzen, um Software von gestern auf den Stand von heute zu bringen.