Definition: Softeareevolution
Alle Aktivitäten in der Erstentwicklung (Primärentwicklung) und
Weiterentwicklung eines Softwaresystems im Rahmen der Wartung und Pflege über lange Zeiträume.
Transition in die Einsatzumgebung
Auf die Integration (Fertigstellung) eines Softwaresystems folgt seine
Auslieferung (Übergabe aller relevanten Teile)
Projektabnahme (Acceptance)
formale Akzeptanz der Projektergebnisse durch den
Auftraggeber (Kunden).
Projektabschluss (Closure)
Durchführung eventuell notwendiger Nach- bzw.
Aufräumarbeiten, ggf. Nachkalkulation/Abrechnung des Projekts, formale Erklärung des Projektendes.
Abnahmeverfahren
Kernaufgaben bei der Abnahme
Übergang in die Wartung
Softwarealterung
Stetige Überarbeitung
Softwaresysteme unterliegen stetiger Überarbeitung!
Gründe:
* Fehler (funktional, qualitativ)
* Sich ändernde Anforderungen
Fachliche Ursachen
(z.B. Änderungen in Gesetzen, Vorschriften oder Prozessen, neue Erkenntnisse, gesteigerte Erwartungen)
Technische Ursachen
(z.B. neue oder geänderte technische Umgebungen)
Methodische Ursachen
(z.B. Einführung von Coding Standards, Refactorings)
Softwarewartung
alle Arbeiten an Programmen inklusive deren Dokumentation, die
deren Pflege und Weiterentwicklung nach der ersten Auslieferung dienen.
Die Softwarewartung dient somit vorrangig der Wahrung eines konstanten
betriebsfähigen Zustandes eines Softwaresystems.
Herausforderungen in der Wartung
Herausforderungen:
- Verstehen (“Program Comprehension”)
- Startbedingungen (oft suboptimal, z.B. fehlende Dokumentation, veraltete
Technologien, …)
- Betrieb (Systeme müssen im produktiven Einsatz bleiben)
- Zeit (oft hoher Zeitdruck, z.B. bei sicherheitskritischen Situationen)
Hauptprobleme in der Softwarewartung
Kosten der Wartung
Kategorisierung der Wartungsaufgaben
Perfektionierende Wartung:
Anpassungen an geänderte Anforderungen, Implementierung neuer Anforderungen
Adaptive Wartung:
Anpassungen aufgrund von Änderungen in der Technologie/Umgebung
Korrektive Wartung:
Fehlerbehebung
Präventive Wartung:
Vorsorgliche Maßnahmen, insbesondere zur Qualitätsverbesserung
Änderungsanträge (Change Requests)
Wesentliche Punkte dabei:
- Begründung für die (Notwendigkeit der) Änderung
- Analyse der potenziellen Folgen der Änderung
- Aufwandsschätzung und -zuordnung
- Entscheidung und Dokumentation
Architekturmanagement
Program Comprehension
Reengineering
Zwei wesentliche Anwendungsfälle:
1. Sanierung (Fokus Qualitätssteigerung)
2. Ablösung (Fokus Neu-/Weiterentwicklung)
Reverse Engineering
Refactoring
Clone Detection