keynote for sci/isas 99 on automated modification of legacy assets chris verhoef university of...
TRANSCRIPT
Keynote for SCI/ISAS 99 on
Automated Modification of Legacy Assets
Chris VerhoefUniversity of Amsterdam
Deutsche 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.
Verteilung des Personals
Jahr NeueProjekte
Erweiterung Reparatur Gesamt
1950 90 3 7 100
1960 8.500 500 1.000 10.00
1970 65.000 15.000 20.000 100.000
1980 1.200.000 600.000 200.000 2.000.000
1990 3.000.000 3.000.000 1.000.000 7.000.000
2000 4.000.000 4.500.000 1.500.000 10.000.000
2010 5.000.000 7.000.000 2.000.000 14.000.000
2020 7.000.000 11.000.000 3.000.000 21.000.000
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,...
Eine typische Erblast
100% Fehlerinjektion(jede Reparatur erzeugt einen Fehler an
anderer Stelle)
Evolution in die falsche Richtung
Hinzufügen widersprüchlicher Features erschwert den Gebrauch
Erblasten auflösen durch Komponentenbildung
Komponentenbildung ermöglicht Erweiterungen
Restrukturierung ermöglicht Modernisierung
Reverse Engineering ermöglicht Änderungen
Entfernen widersprüchlicher Features ermöglicht Gebrauch
User Interface Reengineering
Typische Renovation Tasks
• entferne Erblasten
• ermögliche Weiterentwicklung
• reduziere die Fehlerinjektionsrate
• reduziere Wartungskosten
• entferne widersprüchliche Features
• Restrukturierung macht sich bezahlt
• Reparaturdesign erzeugt Schwachpunkte
Das Ziel
Software Renovation heißt, Technologie von morgen zu nutzen, um Software von gestern auf den Stand
von heute zu bringen.
Wartung und Renovation ist
• erforderlich• wichtig• schwierig• Herausforderung für
die Forschung
Wartung und Renovation ist spannend:
• Patterns• Frameworks• Middleware• Components• Product-lines