22 Software-Wartung 22.1 Begriff und Taxonomie der Software-Wartung 22.2 Inhalt und Ablauf der Wartung 22.3 Risiken, Probleme und Grundsätze der Wartung.

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

Prüfung objektorientierter Programme -1
Integrations- und Funktionstests im Rahmen des V-Modelles
Vorgehensmodell & Wasserfallmodell in der Programmierung
Phasen und ihre Workflows
Vorgehensmodell - Wasserfallmodell
Von David Keß, Heinrich Wölk, Daniel Hauck
HACCP Schulentwicklungsprojekt
Objektorientierter Entwurf (OOD) Teil 3: Qualitätsmodell
Erschließen von semantischen Referenzen mit Ontology-Reasoning-Werkzeugen Das Ziel dieser Masterarbeit war die Erweiterung des ORBI Systems um ein Inferenz-System.
Lizenzmodelle Miete der Software ASP Nutzungslizenz.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme I nstitut für K ernenergetik und E nergiesysteme Rational Unified Process (RUP) - Definitionen.
Erfahrungen aus Tests komplexer Systeme
Risiken und Chancen Risiko Beurteilung: Dazu gehört die Identifikationen von Risiken, ihre Analyse und das Ordnen nach Prioritäten. Risiko Kontrolle: Dazu.
Was ist Qualität ? Qualität von Produkten oder Dienstleistungen ist das Gesamtergebnis aller Aktivitäten in jeder Phase des gesamten Leistungsprozesses.
ISO - Normen Inhalt Qualität im SE Der ISO 9000-Ansatz
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Aufgaben des Testens Vergleich des Verhaltens einer Software mit den an sie gestellten.
es gibt (fast) nichts, was nicht anders gemacht werden könnte
Capability Maturity Model
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Vortrag im Rahmen des Seminars
Dokumentationsanforderungen
Vorlesung: 1 Betriebssysteme 2007 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebssysteme Hochverfügbarkeit (Einführung) 3. Quartal.
Vorlesung: 1 Betriebssysteme 2008 Prof. Dr. G. Hellberg Studiengang Mechatronik FHDW Vorlesung: Betriebssysteme Hochverfügbarkeit (Einführung) 2. Quartal.
Rational Unified Process (RUP) - Definitionen
Fehlerabdeckung/ Regressionstest1 Testen und Analysieren von Software Fehlerbehebung und Re-Engineering Fehlerabdeckung/ Regressionstest Vortragende:
Vortrag 11: Reengineering - Refactoring
eXtreme Programming (XP)
HERA und Changemanagement Scenario. HERA und Changemanagement2 Ausgangssituation Bob erstellt während der Anforderungserhebung mit HERA ein Use Case Projekt.
Die Bank von morgen - eine neue Welt für IT und Kunden? 23. Oktober 2001.
Grundschutztools
Kontrollfragen zu Kapitel 1
04 b Ressourcenschichtplan. © beas group 2011 / Page 2 This documentation and training is provided to you by beas group AG. The documents are neither.
Vorgehensmodelle: Schwergewichtige Modelle
Software Engineering WS 2009
Das Wasserfallmodell - Überblick
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering WS 2006 / 2007Folie 1 Agile Vorgehensweisen Hintergrund –in den letzten Jahren hat.
Synergieeffekte durch softwaregestützte Prozessmodelle
4 Software-Nutzen und Software-Kosten
1 Fachtagung am Seniorenorientiertes Design und Marketing ThyssenKrupp Immobilien Design for all - Anpassungen im Wohnungsbestand 1.Demographie.
Einführung eines integrierten prozessorientierten Verwaltungsmanagements im Luftfahrt-Bundesamt - Beitrag zum 10. eGovernment-Wettbewerb in der Kategorie.
Theorien, Methoden, Modelle und Praxis
REQUIREMENTS ENGINEERING
Ergebnisse und Wirkungen der Politik: Ein Überblick
Testaktivitäten Komponenten- / Integrationstest
Definitionen der SWT (1)
Wahrscheinlichkeitsrechnung
Wasserfallmodell und Einzelbegriffe
5 Software-Qualität 5.1 Qualität 5.2 Taxonomie der Software-Qualitäten.
IKP Uni Bonn Medienpraxis EDV II Internet-Projekt
BBS-Schulung 2014: Harmonisierte Regelungen und Formulare
Projektmanagement Ziel und Umfang eines Softwareprojektes definieren
Content Management System
Juristische Software als Open Source Adieu Wartungsvertrag !? Thiemo Sammern IRIS Universität Salzburg.
Rational Unified Process
Management, Führung & Kommunikation
Das Unternehmen.
Die Management-Tools von Z&H COACH beinhalten zentrale Hilfsmittel für ein Management-System. Sorgfältig angewendet führen diese Tools Ihr Unternehmen.
Level 4Level 5Level 6Level 7Level 8Level 9 Ist dem Veränderungsprozess positiv gegenüber eingestellt Ist offen für neue und außergewöhnliche Ideen und.
BBS-Schulung 2014: Harmonisierte Regelungen und Formulare
Positionspapier Arbeitsgruppe Software-Wartung Diane König.
Requirements Engineering Universität zu Köln Medienkulturwissenschaften/Medieninformatik Kurzreferat in Planung von Softwareprojekten bei Herrn Christoph.
4) Kaufmännische Realisierung
Projektentstehung und Projektumfeld
Der Taskmanager ist Bestandteil des Betriebssystems, der als Prozessmanager Prozessmanager unter anderem die aktuell laufenden Programme und Prozesse.
Programmiersprachen II Vorbesprechung Klausur Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 2 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Projektmanagement und Softwarequalität
 Präsentation transkript:

22 Software-Wartung 22.1 Begriff und Taxonomie der Software-Wartung 22.2 Inhalt und Ablauf der Wartung 22.3 Risiken, Probleme und Grundsätze der Wartung 22.4 Die Wartungsorganisation

Einleitung Wartung beansprucht von allen Tätigkeiten das größte Budget. kennzeichnet den Normalzustand einer Software. ist die dominierende Tätigkeit der Software-Leute. ist extrem wichtig und kostspielig. Aber leider gilt auch: Wartung ist terra incognita, ein Gebiet, über das wir wenig wissen. Das fundamentale Problem: Wartung muss von beliebigen Situationen ausgehen.

22.1 Begriff und Taxonomie der Software-Wartung

Verschleiß und Wartung Für Maschinen usw. gilt: Abnutzung ist modellierbar und prognostizierbar; Wartung zur Kompensation der Abnutzung ist darum gut planbar. Unfälle finden mit einer gewissen statistischen Wahrscheinlichkeit statt, sind aber nicht planbar, sondern passieren überraschend. Umstellungen (Anpassungen) können meist nicht geplant werden, weil die Gründe kurzfristig entstehen. Sie können aber evtl. verschoben werden. In der Software gibt es keine Abnutzung. Auftretende Fehler können als Unfälle interpretiert werden. Anpassungen erfordern den größten Teil des Wartungsaufwands.

Definitionen des Wartungsbegriffs - 1 operation and maintenance phase — The period of time in the software life cycle during which a software product is employed in its operational environment, monitored for satisfactory performance, and modified as necessary to correct problems or to respond to changing requirements. maintenance — The process of modifying a software system or component after delivery to correct faults, improve performance or other attributes, or adapt to a changed environment. Syn: software maintenance. See also: adaptive maintenance; corrective maintenance; perfective maintenance. IEEE Std 610.12 (1990) Aber: die Definition der Wartung als Phase verschleiert, dass es schon vor Auslieferung Wartung, noch nach Auslieferung Entwicklung gibt.

Definitionen des Wartungsbegriffs - 2 Software-Wartung ist jede Arbeit an einem bestehenden Software-System, die nicht von Beginn der Entwicklung an geplant war oder hätte geplant werden können und die unmittelbare Auswirkungen auf den Benutzer der Software hat. Ludewig, Opferkuch (2004) Die Frage der Planbarkeit spielt eine wichtige Rolle. Die unmittelbaren Auswirkungen auf den Benutzer der Software unterscheiden die Wartung vom Reengineering. Komposition bestehender Komponenten ist Entwicklung, keine Wartung! Die Komponenten sind ja für diesen Zweck entwickelt worden.

Arten der Wartung - 1 adaptive maintenance — Software maintenance performed to make a computer program usable in a changed environment. corrective maintenance — Maintenance performed to correct faults in software. perfective maintenance — Software maintenance performed to improve the performance, maintainability, or other attributes of a computer program. preventive maintenance — Maintenance performed for the purpose of preventing problems before they occur. IEEE Std 610.12 (1990) Darin sind nur die Begriffe korrektive Wartung (= Korrektur) und adaptive Wartung (= Anpassung) klar.

Arten der Wartung - 2 Auch hier halten wir teilweise andere Begriffe und Kategorien für sinnvoll. Wartung Die Software wird so verändert, dass … adaptiv sie neue oder geänderte Anforderungen erfüllt; diese können funktional oder nichtfunktional sein. korrektiv ein beobachteter Fehler nicht mehr auftritt oder entschärft ist (z.B. durch Anzeige einer Warnung) verbessernd bestimmte Qualitätsmerkmale (z.B. die Verarbeitungsgeschwindigkeit oder die Benutzbarkeit) der Software verbessert werden. ?? präventiv bestimmte Fehler gar nicht erst auftreten. ?? Problem: Verbesserung und Prävention lassen sich nicht von Anpassung und Korrektur unterscheiden! War die Spezifikation verletzt? Ja: → Korrektur Nein: → Anpassung

Arten der Wartung - 3 Die Erfüllung geänderter Anforderungen ist keine „Verbesserung“, sondern eine Anpassung. Die Beseitigung eines Mangels, der noch nicht wirksam geworden ist, ist keine Prävention, sondern eine Korrektur. Das beliebteste Beispiel für präventive Wartung ist das sogenannte Y2K-Problem, die mangelnde Vorbereitung vieler Software-Systeme für Jahreszahlen ab 2000. Es handelt sich aber durchgängig um Korrektur oder Anpassung. Wir folgern daraus, dass der Begriff der präventiven Wartung überflüssig und irreführend ist. Von verbessernder Wartung sprechen wir dann und nur dann, wenn es um weiche Anforderungen geht, die nach der Bearbeitung in höherem Maße erfüllt werden.

Die Kosten der Wartung Studie Aufwand für Wartung Zelkowitz, Shaw, Gannon (1979) 67% Lientz, Swanson (1980) 48% Abran, Nguyenkim (1991) 55% Nosek und Palvia (1990): Keine großen Veränderungen gegen Lientz, Swanson. Das ist nach unserem Eindruck weiterhin gültig. Je größer die Bedeutung der Informatik in einem Unternehmen ist, umso höher ist der Wartungsanteil bei den Kosten. Im (durchaus üblichen) Extremfall gibt es praktisch nur noch Wartungskosten, weil keine Neuentwicklungen, sondern nur noch Verbesserungen, Anpassungen und Korrekturen stattfinden.

Verteilung über die Arten der Wartung Wartungsart Lientz, Swanson (1980) Sneed (1987) van Vliet (2000) Korrektur 17  % 25  % 21  % Anpassung / Erweiterung 18  % 20  % 40  % Verbesserung / Prävention 65  % 15  % 50  % 4  % Achtung, sehr unterschiedliches Verständnis von „Verbesserung“! Folgerung: Anpassung und Erweiterung schlucken den Löwenanteil der Wartungskosten. An zweiter Stelle steht die Korrektur.

22.2 Inhalt und Ablauf der Wartung

Ein Modell der Wartung - 1 Wenn die Implementierung auf Grund eines Implementierungsfehlers nicht der Spezifikation entspricht (1), ist eine Korrektur (2) nötig. Damit sind Spezifikation und Implementierung konsistent (3). Ändern sich die Anforderungen (4), ist also eine Anpassung oder Erweiterung notwendig, so muss durch eine Änderung der Implementierung (5) die Konsistenz (6) wieder hergestellt werden. Wünscht der Kunde eine Verbesserung (7), so entspricht das (in den meisten Fällen) einer Änderung oder Präzisierung der Spezifikation. Entsprechend findet der gleiche Ablauf wie oben statt. Natürlich können die Korrekturen die Konsistenz immer nur lokal herstellen; wir müssen grundsätzlich davon ausgehen, dass jedes Software-System Fehler enthält.

Ein Modell der Wartung - 1 Korrektur, Anpassung, Verbesserung

Schritte der Wartung - 1 Wartung sollte nicht auf Zuruf stattfinden, sondern geplant werden. Um sie planen zu können, muss ein Änderungswesen etabliert sein. Alle eingehenden Fehlermeldungen und Änderungswünsche fließen in Form von Problemmeldungen in die Planung der Wartung ein. Der Änderungsausschuss (Change Control Board, CCB) entscheidet, welche Meldungen zur Wartung führen.

Schritte der Wartung - 2 Die Wartung erfordert die folgenden Schritte: Der Ausgangszustand wird (spätestens jetzt) präzise dokumentiert und archiviert. Der zu modifizierende Teil wird identifiziert; er sollte so klein wie möglich sein. Die übrige Software vor Änderungen schützen! Testfälle für die durchgeführte Änderung werden entworfen. (Prüfung der alten Testfälle, wie weit sie gültig bleiben oder zu ergänzen sind). An den Regressionstest denken (siehe Schritt 5)! Die zu ändernden Komponenten werden aus der Konfigurationsverwaltung entnommen, bearbeitet und lokal geprüft. Wenn sie OK sind, zurück in die Konfig.-verwaltung. Die veränderten Komponenten werden integriert und getestet. Dabei kommt vor allem der Regressionstest zum Zuge. Der neue Zustand wird dokumentiert und wiederum archiviert. Der benötigte Aufwand für die Wartung wird aufgezeichnet.

Die Verteilung der geänderten Software Wenn die Änderungen durchgeführt sind, bekommt der Kunde eine Lieferung (Aktualisierung, Update). Eine Aktualisierung basiert immer auf einer freigegebenen Basisversion (dem aktuellen Release). Die Installation eines Updates kann einfach sein (z.B. Expandieren einer Datei und Speichern an definierter Stelle) oder viele Schritte umfassen, die in einer bestimmten Reihenfolge ausgeführt werden müssen (z.B. bei der Aktualisierung einer auf vielen Rechnern verteilten Anwendung). Bei vielen Software-Produkten ist die Verteilung automatisiert. Die Risiken einer erheblichen Änderung müssen identifiziert und bewertet werden. Evtl. muss eine Übergangsstrategie entwickelt werden; beispielsweise mit der Möglichkeit eines Roll-Backs.

Update-Arten Je nach Umfang der Änderungen, unterscheiden wir die folgenden Update-Arten: Ein Patch ist ein Update, das bereitgestellt wird, um einen einzelnen Fehler oder einige wenige Fehler zu korrigieren. Spezialfall: Emergency Maintenance, Hot-fix. Einer solchen Feuerwehraktion muss eine systematische Wartung folgen! Ein Service Pack ist ein Update, in dem Fehlerkorrekturen und verbesserte oder neue Funktionalität enthalten sind. Neben den Service Packs auch kumulative (Combo-) Upgrades, die auch vorhergehende Upgrades enthalten.

Dokumentation von Updates Zu jedem Update werden bestimmte Informationen benötigt: Voraussetzungen für die Installation Installationsschritte behobene und nicht behobene Fehler Die Liste der in einem Update umgesetzten Problemmeldungen ist die Ausgangsbasis dieser Dokumentation.

22.3 Risiken, Probleme und Grundsätze der Wartung

Risiken und Probleme - 1 Wartung von Software ist schwierig, und wir besitzen kaum Methoden oder Werkzeuge, die uns (speziell) dabei wirklich helfen. In der Studie von Dekleva (1992) wurden 19 Problembereiche ermittelt. Die wichtigsten fünf sind: Changing priorities. Wartungstätigkeiten werden oft unterbrochen – andere Tätigkeiten sind wichtiger oder dringender – und müssen anschließend wieder aufgenommen werden. Inadequate testing methods. Der Regressionstest nach der Wartung bereitet Probleme, weil spezielles Know-how fehlt und weil die Testfälle und Testdaten nicht ausreichen.

Risiken und Probleme - 2 Performance measurement difficulties. Oft ist nicht definiert, wie Wartung durchzuführen ist, Wartung ist nicht explizit geplant, die benötigten Aufwände werden weder geschätzt noch erhoben. System documentation is incomplete. Oft ist die vorhandene Dokumentation unvollständig und nicht mehr aktuell. Rückgriff auf das Wissen von Personen: „walking documentation“ Adapting to a rapidly changing business environment. Der Anwendungskontext und die Anforderungen an viele Systeme ändern sich so schnell, dass kaum mehr Stabilität erreicht werden kann.

Risiken und Probleme - 3 Wir sehen zusätzlich die folgenden Probleme: Wartungstätigkeiten müssen meist unter Zeitdruck stattfinden. → Qualität der Architektur, der Dokumentation und des Codes sinkt. Durch die Wartung entstehen neue Fehler. Die neuen Fehler werden zu einem beträchtlichen Teil nicht entdeckt, sondern mit der neuen Version ausgeliefert. Wartung ist eine unbeliebte Tätigkeit. Wartung ist eine analytische, die Entwicklung eine konstruktive Tätigkeit. Die meisten Entwickler arbeiten lieber konstruktiv.

Grundsätze der Wartung - 1 Für die Wartung gelten – prinzipiell – alle Regeln und Grundsätze der Software-Entwicklung. Diese Feststellung ist richtig, aber nutzlos! Folgende Grundsätze sollten immer beachtet werden: Änderungen nur, wenn dafür ein erheblicher, dokumentierter Bedarf besteht, auch die Folgen sorgfältig geklärt sind und die Effekte anschließend seriös geprüft werden.

Grundsätze der Wartung - 2 Jede Wartung muss geplant werden, weil: Aufwand ist hoch. Ist der Nutzen höher? Prozess-Einhaltung ist essentiell für die Qualität (Einhaltung der notwendigen Schritte bei der Wartung). Systematische Prüfung ist zwingend erforderlich. Lieber ein bekannter Fehler als ein fehlerhafter „quick fix“. Die integrierte und die separate Dokumentation müssen nachgeführt werden. Auch das muss geprüft werden! Es darf keine Grauzone zwischen den Verantwortlichkeiten für Entwicklung und Wartung entstehen.

22.4 Die Wartungsorganisation

Gründe für Änderungen Die Verwaltung der Problemmeldungen und Änderungen ist Aufgabe der Konfigurationsverwaltung (Change Management). Für die administrative und vor allem für die finanzielle Behandlung ist der Grund der Änderung wichtig. Situationen: Ein Fehler muss behoben werden. Während der Gewährleistungsfrist Sache des Herstellers. Neue / veränderte Anforderungen erfordern Erweiterung oder Änderung der Software. Kosten werden dem Kunden berechnet. Software muss reorganisiert, strukturell verbessert und nachdokumentiert werden. → Reengineering Kosten sollten aus Rücklage gedeckt werden (Zuschlag zu den Wartungskosten, eine Art „Reengineering-Steuer“)

Problemmeldung und Änderungsantrag Am Anfang jeder Änderung steht eine Problemmeldung (Software Problem Report, SPR). Change Request, CR, ist ein zu enger Begriff. Jede Problemmeldung wird als Irrtum, als Fehlermeldung oder als Änderungswunsch eingestuft: Irrtum: Klienten informieren, evtl. das Handbuch verbessern Fehler: Entscheiden, ob /wann der Fehler behoben werden soll. Alternative: Workaround. Änderungs- oder Erweiterungswunsch: Vorteile, Kosten und Risiken vergleichen, Finanzierung prüfen.

SPR - Beispiel

Bearbeitungsschritte eines SPRs Problemmeldung registrieren Problemmeldung analysieren Irrtum und Fehlbedienung ausschließen Entscheidung des CCBs vorbereiten und treffen Absender über die Entscheidung des CCBs informieren Änderung durchführen und prüfen Problemmeldung schließen

Die Wartungsingenieure Eine Wartung durch die Entwickler hat Vorteile: Der Einarbeitungsaufwand ist geringer. Die Mitarbeiter können in Abstimmung mit laufenden Projekten flexibel für die Wartungen eingesetzt werden. Diesen Vorteilen stehen als Nachteile gegenüber: Die Entwickler sind selten motiviert, die geänderten Teile nachzudokumentieren. Der Aufwand für die Wartung ist kaum zu ermitteln. Konflikte zwischen den Verantwortlichen für Entwicklung und Wartung. Die Entwickler sind mit der Software vertraut, haben aber sonst keine speziellen Voraussetzungen für eine kompetente Wartung. Wartungswissen wird nicht gesammelt und in Verbesserungen umgesetzt.

Der Änderungsausschuss configuration control board (CCB) — A group of people responsible for evaluating and approving or disapproving proposed changes to configuration items, and for ensuring implementation of approved changes. Syn: change control board. IEEE Std 610.12 (1990) Wird gebraucht, sobald das erste geprüfte Dokument der Entwicklung (d.h. Projektplan oder Spezifikation) freigegeben ist. Die Zusammensetzung des CCB (evtl. Beteiligung des Kunden) hängt von der Situation und dem Stadium der Entwicklung ab. Wartungsvertrag: Grenzfälle (gedeckt oder nicht?) können von einem Änderungsausschuss behandelt und entschieden werden. Speziell wichtige Rolle des CCB in EDV-Projekten!