Welche Phasen gibt es in Software Evolution Prozess? (auswendig lernen)
- Requirements and Change Management: Beziehungen zwischen Anforderungen und Software Artefakten werden oft verloren. Requirements and Change Management dient fuer Sicherstellung dieser Beziehungen. Das kann mit Traceability erreichen.
- Change Impact Analyse: man muss identifizieren, welche Teile des Systems potenziell von Aenderung betroffen sind. Auf Artefakt-Ebene hat man Traceability Analyse, und auf Code-Ebene hat man statische und dynamische Programm-Analyse
- Reengineering von Legacy Systems: Legacy Systemen sind oft schlecht Doukumentiert, die originalen Entwicklern sind schon lange weg, und oft niemand kann die Systeme verstehen. Solche Systeme werden als Black-Box betrachtet, und irgendwann kann es sehr teuer werden. Wenn man Legacy-Sytemen reengineeren soll, muss man es zuerst mit Reverse Engineering verstehen, und dann mit Forward Engineering verbessern oder neue Anforderungen umsetzen.
- Software-Modernisierung: Software an neue Umgebung anpassen, Libraries und Frameworks aktualisieren.
- Quality Assurance: Probleme im Bezug auf Wartbarkeit erkennen und beheben. Design Probleme identifizieren und preventing teuere Wartung.
- Untersuchung der Evolutions-Alternativen: Identifizierung der Tradeoffs, Vergleich von Tradeoffs und Auswahl von bester Alternative. Zum Beispiel, wenn man entscheidet, ob man Cloud-Loesung fuer Datenhaltung verwendet oder lokale Datenbank-Infrastruktur erstellt.