Software-Wartung und Evolution
Die Schülerinnen und Schüler verstehen die Herausforderungen und Strategien der Software-Wartung.
Über dieses Thema
Die Software-Wartung und Evolution behandelt die Pflege und Weiterentwicklung von Software über ihren gesamten Lebenszyklus. Ihre Schülerinnen und Schüler lernen die zentralen Arten kennen: korrektive Wartung behebt Fehler in der bestehenden Codebasis, adaptive Wartung passt die Software an veränderte Hardware, Betriebssysteme oder gesetzliche Anforderungen an, perfektionierende Wartung optimiert Leistung, Benutzeroberflächen oder Funktionalitäten. Diese Prozesse machen typischerweise 60 bis 80 Prozent der Gesamtkosten aus und erfordern sorgfältige Planung, um Risiken wie neue Fehler oder Ausfälle zu minimieren.
Im Rahmen der KMK-Standards zu Modellieren und Implementieren sowie Strukturieren und Vernetzen analysieren Lernende Kosten- und Risikokurven über den Lebenszyklus. Sie erkunden Strategien zur Steigerung der Wartbarkeit, etwa durch modulare Architekturen, umfassende Dokumentation, automatisierte Tests und Refactoring-Techniken. Solche Ansätze verbinden theoretische Grundlagen mit praxisnahen Anwendungen in Projekten.
Aktives Lernen ist hier besonders wirksam, weil Schülerinnen und Schüler reale Code-Repositories bearbeiten, Wartungsszenarien simulieren und eigene Strategien entwickeln können. Dadurch werden abstrakte Konzepte konkret, Teamfähigkeiten gestärkt und das Verständnis für langfristige Software-Qualität vertieft.
Leitfragen
- Erklären Sie die verschiedenen Arten der Software-Wartung (korrektive, adaptive, perfektionierende).
- Analysieren Sie die Kosten und Risiken der Software-Wartung über den Lebenszyklus.
- Designen Sie Strategien zur Verbesserung der Wartbarkeit von Software.
Lernziele
- Klassifizieren Sie die drei Hauptarten der Software-Wartung (korrektive, adaptive, perfektionierende) anhand von gegebenen Szenarien.
- Analysieren Sie die finanziellen Auswirkungen und potenziellen Risiken verschiedener Wartungsstrategien über den gesamten Software-Lebenszyklus.
- Entwerfen Sie eine Strategie zur Verbesserung der Wartbarkeit eines gegebenen Software-Code-Beispiels unter Berücksichtigung von Modularität und Dokumentation.
- Bewerten Sie die Effektivität von automatisierten Testsuiten zur Reduzierung von Fehlern während der Software-Evolution.
Bevor es losgeht
Warum: Schüler müssen grundlegende Konzepte wie Code, Funktionen und Programme verstehen, um über deren Wartung sprechen zu können.
Warum: Ein Verständnis der verschiedenen Phasen eines Softwareprojekts ist notwendig, um die zeitlichen und finanziellen Aspekte der Wartung einordnen zu können.
Warum: Grundlegende Kenntnisse im Auffinden und Beheben von Fehlern sind eine Voraussetzung für das Verständnis der korrektiven Wartung.
Schlüsselvokabular
| Korrektive Wartung | Behebt Fehler und Defekte, die nach der Auslieferung der Software entdeckt werden. Ziel ist die Wiederherstellung der korrekten Funktionalität. |
| Adaptive Wartung | Passt die Software an veränderte Umgebungen an, wie z.B. neue Betriebssysteme, Hardware oder gesetzliche Vorschriften. Die Funktionalität bleibt dabei oft erhalten. |
| Perfektionierende Wartung | Verbessert die Leistung, Wartbarkeit oder Benutzerfreundlichkeit der Software, ohne neue Fehler einzuführen oder die Funktionalität grundlegend zu ändern. Dies beinhaltet Optimierungen. |
| Refactoring | Die Umstrukturierung von bestehendem Computercode, ohne das externe Verhalten zu ändern. Ziel ist die Verbesserung der Lesbarkeit, Reduzierung der Komplexität und Erhöhung der Wartbarkeit. |
Vorsicht vor diesen Fehlvorstellungen
Häufige FehlvorstellungSoftware-Wartung beschränkt sich nur auf Fehlerbehebung.
Was Sie stattdessen lehren sollten
Viele Schülerinnen und Schüler unterschätzen adaptive und perfektionierende Wartung. Aktive Rollenspiele zeigen die Vielfalt, indem Gruppen Szenarien durchspielen und erkennen, dass Wartung den Großteil der Kosten ausmacht. Peer-Diskussionen klären dies nachhaltig.
Häufige FehlvorstellungWartungskosten sinken nach der Initialentwicklung.
Was Sie stattdessen lehren sollten
Tatsächlich steigen sie oft an. Simulationsübungen mit Kostenmodellen visualisieren den Lebenszyklus und helfen Lernenden, Risiken wie Legacy-Code-Probleme zu verstehen. Praktische Analysen fördern kritisches Denken.
Häufige FehlvorstellungWartbarkeit ist kein Design-Ziel.
Was Sie stattdessen lehren sollten
Gute Strukturen müssen von Anfang an geplant werden. Design-Challenges in Gruppen demonstrieren, wie Modularität zukünftige Wartung erleichtert. Hands-on-Implementierungen machen den Zusammenhang greifbar.
Ideen für aktives Lernen
Alle Aktivitäten ansehenGruppenanalyse: Wartbarkeits-Check
Teilen Sie Open-Source-Code in kleine Gruppen auf. Schülerinnen und Schüler bewerten die Wartbarkeit anhand von Kriterien wie Modularität und Dokumentation, identifizieren Schwachstellen und schlagen Verbesserungen vor. Abschließend präsentieren sie ihre Ergebnisse.
Rollenspiel: Lebenszyklus-Simulation
Gruppen übernehmen Rollen als Entwickler, Wartungsteam und Stakeholder. Sie simulieren einen Software-Lebenszyklus mit Ereignissen wie Bug-Reports oder Umweltänderungen, kalkulieren Kosten und Risiken schrittweise. Diskussion schließt mit Strategien ab.
Design-Challenge: Wartbarkeits-Strategien
In Paaren entwerfen Lernende Verbesserungspläne für ein gegebenes Code-Beispiel, inklusive Refactoring und Test-Integration. Sie implementieren eine Änderung und testen auf Regressionen. Peer-Feedback rundet die Runde ab.
Fallstudienanalyse: Reales Projekt
Ganze Klasse analysiert ein echtes Wartungsprojekt, z. B. aus GitHub. Sammeln Daten zu Kosten und Typen, modellieren den Lebenszyklus grafisch und diskutieren Lessons Learned gemeinsam.
Bezüge zur Lebenswelt
- Softwareentwickler bei großen Banken wie der Deutschen Bank investieren erhebliche Ressourcen in die adaptive Wartung, um ihre Kernbanksysteme an neue regulatorische Anforderungen (z.B. PSD2) anzupassen und die Sicherheit zu gewährleisten.
- Betriebssystem-Updates für Smartphones (z.B. von Apple für iOS oder Google für Android) beinhalten regelmäßig perfektionierende Wartung, um die Leistung zu optimieren, die Akkulaufzeit zu verbessern und neue Benutzeroberflächenelemente einzuführen.
- Automobilhersteller wie Volkswagen nutzen korrektive Wartung, um Fehler in der Software von Infotainmentsystemen oder Fahrerassistenzsystemen zu beheben, die nach dem Verkauf des Fahrzeugs entdeckt werden.
Ideen zur Lernstandserhebung
Geben Sie jedem Schüler ein kurzes Szenario (z.B. 'Ein Nutzer meldet, dass die Anwendung nach dem letzten Windows-Update abstürzt' oder 'Die Anwendung wird langsamer, obwohl keine neuen Funktionen hinzugefügt wurden'). Die Schüler sollen die Art der Wartung identifizieren und kurz begründen.
Stellen Sie die Frage: 'Welche drei Maßnahmen können Softwareentwickler bereits während der initialen Entwicklung ergreifen, um die spätere Wartung zu erleichtern?' Sammeln Sie die Antworten und diskutieren Sie die Vor- und Nachteile jeder Maßnahme im Hinblick auf Kosten und Aufwand.
Präsentieren Sie eine Liste von Wartungsaufgaben. Die Schüler sollen jede Aufgabe der entsprechenden Wartungsart (korrektive, adaptive, perfektionierende) zuordnen. Überprüfen Sie die Zuordnungen im Plenum.
Häufig gestellte Fragen
Was sind die Arten der Software-Wartung?
Wie kann man die Wartbarkeit von Software verbessern?
Wie fördert aktives Lernen das Verständnis von Software-Wartung?
Welche Risiken birgt Software-Wartung?
Planungsvorlagen für Informatik
Mehr in Software-Engineering und Abschlussprojekt
Einführung in Software-Engineering
Die Schülerinnen und Schüler lernen die Phasen des Softwareentwicklungsprozesses und die Bedeutung von Software-Engineering kennen.
2 methodologies
Anforderungsanalyse und -management
Die Schülerinnen und Schüler lernen, Softwareanforderungen zu erheben, zu dokumentieren und zu verwalten.
2 methodologies
Software-Design und Architektur
Die Schülerinnen und Schüler entwerfen Softwarearchitekturen und wenden Designprinzipien an.
2 methodologies
Agile Softwareentwicklung (Scrum)
Projektmanagement und iterative Entwicklungsprozesse.
3 methodologies
Versionskontrolle mit Git
Die Schülerinnen und Schüler lernen den Umgang mit Versionskontrollsystemen zur Teamarbeit und Code-Verwaltung.
2 methodologies
Qualitätssicherung und Testing
Verfahren zur Sicherstellung der Softwarequalität durch Unit-Tests und Code-Reviews.
3 methodologies