Software Engineering 11. Einführung und Wartung
Gliederung Vorlesung Einführung V-Modell XT Analyse und Anforderungsmanagement Benutzungsoberflächen Architektur Entwurf Entwurfsmuster Persistenz Testen Konfigurationsmanagement Abnahme, Einführung, Wartung und Pflege
Abnahme und -Einführungsphase Abnahme der Software durch den Auftraggeber Externer oder interner Kunde für Individualsoftware Standardsoftware: Produktmanagement / Vertrieb Einführung Inbetriebnahme beim Anwender Standardsoftware: Markteinführung Inbetriebnahme erfolgt durch Anwender selbst oder Berater Hierzu benötigt: o o o Installationsroutinen, Tools zur Unterstützung der Einführung Einführungsleitfaden Schulungsunterlagen Anschließend Beginn der Wartungs- und Pflegephase
Inbetriebsetzung: Planung Hardware, Datenbank, Integration mit anderen Systemen Verantwortliche für HW-Bereitstellung, Installation, Konfiguration Vorgehen für die Abnahme, technisch und inhaltlich Integrationstests Bereitstellung Betriebshandbücher Beginn des Betriebs
Integration der Anwender Anwenderdokumentation Einarbeitung der Mitarbeiter im Rahmen eines Probebetriebs Schulungen
Anwenderdokumentation Dokumentationen Benutzerdokumentation Zweck: Einführung in die Anwendung, später Nachschlagen Nicht an Komponenten, sondern an Bearbeitung von Aufgaben orientieren Anteil von Beispielen mindestens 30%, Screenshots Technische Dokumentation (z. B. für Administratoren) Anpassung der Dokumentation an Änderungen im Rahmen der Wartung
Schulungen Berücksichtigung unterschiedlicher Benutzergruppen und Berechtigungen Schulungskonzept für jede Benutzergruppe Schulungsmaterial an Ggf. modularer Aufbau der Schulungen Grundlagen und Basisfunktionen für alle Spezielle Funktionen nur für diejenigen, die sie benötigen Möglichst durch professionelle Trainer Müssen vorher selbst eingearbeitet werden Kleine Gruppen Möglichst praxisnah Interaktive Übungen
Inbetriebnahme: Abnahme Übergabe an Auftraggeber Produkt und gesamte Dokumentation Aufwände für Abnahme müssen im Projekt geplant werden Abnahme muss nachvollziehbar durchgeführt und dokumentiert werden Abnahmeprotokoll Durchgeführte Tests und Ergebnisse Formale Abnahme durch Auftraggeber: Bestätigung des Kunden, dass Anforderungen erfüllt sind
Inbetriebnahme: Abnahme Abnahmetest Durch Auftraggeber: Sind die Anforderungen umgesetzt? Vollständige Überprüfung bei komplexen Systemen schwierig Ggf. mehrstufige Abnahme für verschiedene Teile der SW Ebenen Beteiligung verschiedener Stakeholder Technisch: Funktionstests etc. Inhaltlich: Benutzer-Akzeptanz-Tests Umgebung: Integrationstest mit den realen Systemen des Kunden Belastungstest, Stresstest mit Echtdaten
Inbetriebnahme: Überwachung und Optimierung Überwachung Ist das System erreichbar? Entspricht das Verhalten den Erwartungen? Antwortzeiten? Backups? Werden die erforderlichen Administrationsaufgaben durchgeführt?... Optimierung, z. B. Z. B. bessere Verwendung ungenutzter Hardware-Kapazitäten Performance-Verbesserung Erhöhung der Stabilität Erhöhung Ausfallsicherheit
Migration Ziel: Existierendes System aktualisieren Auf den Stand der Technik bringen, Peformance, Durchsatz, Flexibilität,... Arten der Migration Softwaremigration: Umstieg (eines Teils) einer eingesetzten Software Datenmigration: Transfer von Daten in ein anderes System Hardwaremigration: Umstellung auf andere Hardware Herausforderung: Laufenden Betrieb aufrechterhalten!
Datenmigration Bei Einführung einer neuen Software ist meist eine Datenübernahme aus existierenden Systemen erforderlich Hierzu erforderlich: Export- und Importfunktionen Transformationsprogramme Müssen z. T. erst geschrieben werden Insbesondere die Umstellung von ständig genutzten Systemen mit laufend geänderten Daten ist schwierig Umstellung zu einem oder mehreren definierten Zeitpunkten Testen, ob Daten richtig übertragen wurden
Migrationsstrategien Chicken Little Inkrementelle Vorgehensweise Es werden immer nur einzelne Komponenten ersetzt Schnittstellen zwischen alten und neuen Komponenten erforderlich Cold Turkey Parallele Komplettentwicklung des neuen Systems Gesamtes System wird auf einmal umgestellt
Freigabe Abschluss der Produktentwicklung Übertragung des Produktes in Wartungs- und Produktarchiv
Lehmans Gesetze Quelle: Sommerville
Kosten für Wartung und Pflege Quelle: Sommerville Kosten für Wartung und Pflege bis zu viermal höher als Entwicklungskosten
Wartung Umfasst sämtliche Änderungen zur Fehlerbehebung, Performance-Verbesserung oder Anpassung an eine geänderte Umgebung Keine funktionale Veränderung Nur technische Realisierung angepasst Auslöser Gefundene Fehler Entdeckte Sicherheitsprobleme Neue Versionen von verwendeten Frameworks oder Drittkomponenten Performance Probleme durch gestiegene Nutzerzahlen...
Wartung vs. Pflege Wartung Ausgangsbasis: fehlerhaftes bzw. inkonsistentes Produkt Probleme sind zu beheben und zu lokalisieren Korrektur einzelner Fehler mit begrenzter Auswirkung auf Gesamtprodukt Konzentration auf Implementierung Ereignisgesteuert, d. h. nicht vorhersehbar und daher schwer planbar Pflege Ausgangsbasis: Konsistentes Produkt, in das gezielt Änderungen und Erweiterungen einzubringen sind Bandbreite von kleinen bis sehr umfangreichen Änderungen Änderungen und Erweiterungen in allen Teilprodukten (Produkt-Definition, - Entwurf, Implementierung) Planbar
Wartungstypen Korrektive Wartung Bei Fehlern oder Nichteinhalten von Anforderungen Präventive Wartung Bei erkannten Risiken: Fehler von vornherein verhindern Z. B. Jahr 2000-Problem Adaptive Wartung Anpassung Z. B. bei geänderter Hardware oder Drittsystemen Perfektionierende Wartung Verbesserung der Anwendung Z. B. hinsichtlich Speicherbedarf, Wartbarkeit,...
Wartungsprozesse Quelle: Grechenig et al: Softwaretechnik
Wartungsprozesse Prozesseinführung Vorgehen d. Wartung bestimmen, Wartungsplan erstellen Problem- und Änderungsanalyse I. d. R. bei Änderungsanträgen Problem analysieren, Änderungsmöglichkeiten entwickeln und auswählen Änderungsumsetzung Wartungsbewertung und Abnahme Überprüfung der durchgeführten Änderung (Test) Übernahme in das Produktivsystem Migration Außerbetriebnahme Betrieb einer Anwendung einstellen
Maßnahmen während der Wartung Refaktorisierung Auch während der Wartungsphase Verbesserungen ohne funktionale Veränderungen Ziel: Beibehaltung der Wartbarkeit Software Reengineering Komplette oder teilweise Neuentwicklung bei gleichbleibender Funktionalität Umfassender als Refaktorisierung Ziel: Qualität der Software erhöhen Reverse Engineering Gewinnung von Code oder Modellen aus laufenden Systemen Wenn der Code oder die Dokumentation nicht mehr zur Verfügung steht, aber für Änderungen benötigt wird