Softwaretechnik (Allgemeine Informatik) Überblick 1 Einführung und Überblick 2 Abstraktion 3 Objektorientiertes Vorgehensmodell 4 Methoden der Anforderungs- und Problembereichsanalyse 5 UML-Diagramme 6 Objektorientiertes Design 7 Test 8 Refactoring 9 Dokumentation und Wartung 10 Projektmanagement und organisation 11 Source Revision Control Systems Prof. Dr. Björn Dreher Softwaretechnik (Allgemeine Informatik) 706 Softwaretechnik (Allgemeine Informatik) Überblick: 9.1 Einleitung Prof. Dr. Björn Dreher Softwaretechnik (Allgemeine Informatik) 707
9.1 Einleitung Die Nutzer eines Softwareproduktes sind i.a. andere Personen als die Entwickler Daher bedarf es einer Dokumentation des Softwaresystems, damit die mit der Entwicklung nicht vertrauten Anwender auch damit umgehen können Auch die spätere Wartung wird häufig von anderen Personen als die Entwickler durchgeführt Auch hierfür ist die sorgfältige Dokumentation äußerst wichtig Prof. Dr. Björn Dreher Softwaretechnik (Allgemeine Informatik) 708 Softwaretechnik (Allgemeine Informatik) Überblick: 9.1 Einleitung Prof. Dr. Björn Dreher Softwaretechnik (Allgemeine Informatik) 709
Während der Entwicklung: Kommunikation zwischen den an der Entwicklung beteiligten Personen und Dokumentation des Projektverlaufes (Kalkulation) Nach Abschluss der Entwicklung: Unterstützung des Einsatzes und der Wartung des Softwareproduktes Drei Gruppen von Lesern der Dokumentation: Anwender und Interessenten Entwickler und Personen, die das Produkt pflegen Manager des Softwareprojektes Prof. Dr. Björn Dreher Softwaretechnik (Allgemeine Informatik) 710 Entsprechend der Bedürfnisse dieser drei Gruppen Aufteilung der Dokumentation in drei Teile: Benutzerdokumentation Informationen für Interessenten und Anwender: Benutzerhandbuch Installationshinweise Systemdokumentation Einzelheiten, die für das Verständnis des Systemaufbaus und den Systemtest notwendig sind Projektdokumentation Einzelheiten aus organisatorischer und kalkulatorischer Sicht (Projektplan, -Organisation, -Tagebuch, Personal-, Material- und Zeitaufwände) Dient der Projektfortschrittskontrolle und der Berechnung der Projektkosten sowie dem Krisenmanagement. Prof. Dr. Björn Dreher Softwaretechnik (Allgemeine Informatik) 711
Benutzerdokumentation Besteht aus 3-4 Teilen: Allgemeine Systembeschreibung Zweck des Programms, was es kann, was nicht Benötigte Hard- und Software Form der Eingabedaten Inhalt und Form der Ergebnisdaten Implementierungsbedingte Restriktionen Hinweise auf Portabilität Schnittstellen zu anderen Programmen Prof. Dr. Björn Dreher Softwaretechnik (Allgemeine Informatik) 712 Benutzerdokumentation Besteht aus 3-4 Teilen (fortgesetzt): Installations- und Bedienungsanleitung Anleitung zur Installation des Systems (benötigte Dateien, Einbettung in das Betriebssystem, Bedienung des Installationsprogramms) Bedienungsanleitung (Benutzerhandbuch) Beschreibung der Software als Black Box, nur Benutzerschnittstelle Vollständige Beschreibung aller Funktionen und ihrer Bedienung Genaue Beschreibung der Ein- und Ausgabedaten, evtl. mit Beispielen Liste der Fehlermeldungen und ihrer Bedeutung (Ursachen, Maßnahmen) Prof. Dr. Björn Dreher Softwaretechnik (Allgemeine Informatik) 713
Benutzerdokumentation Gegebenenfalls 4. Teil: Operator-Anleitung (nur bei Server-Anwendungen) Meldungen an den Operator (Operator-Konsole) Anweisungen an den Operator Administrationshinweise Sprache für den Anwender verständlich (kein Fachchinesisch) Knapp und präzise, nicht unbedingt ohne Redundanz (nicht blättern müssen) Koexistenz: Tutorial - Referenz Evtl. auch Online-Help-System Prof. Dr. Björn Dreher Softwaretechnik (Allgemeine Informatik) 714 Systemdokumentation Beschreibung des Softwaresystems in allen Einzelheiten (Aufbau, Struktur einzelner Komponenten, Testaktivitäten) Grundlage für alle Wartungsarbeiten Gliederungsvorschlag (Pomberger): 1. Aufgabenstellung (Anforderungsdefinition) 2. Implementierung im Großen Konzeption und Grundstruktur des Softwaresystems Zerlegung in Teillösungen Algorithmen und deren Schnittstellen Hinweise auf Probleme bei Änderung Resultate erhält man durch Analyse und Design Man sollte auch den Entstehungsprozess dokumentieren Fachlich: Use Cases. Technisch: Anwendungsarchitektur (MVC,...). Eingesetztes Application Framework bzw. Klassenbibliotheken Prof. Dr. Björn Dreher Softwaretechnik (Allgemeine Informatik) 715
Systemdokumentation Gliederungsvorschlag (Pomberger) (fortgesetzt): 3. Implementierung im Kleinen Beschreibung aller Systemmodule nach einheitlichem Schema Klassen mit Schnittstellen Datenstrukturen Kommentare in Klassen Selbstdokumentierend 4. Verwendete Dateien Dateiname Inhalt Satzaufbau Dateiorganisation (maximale) Größe Zugriffsrechte und -arten Prof. Dr. Björn Dreher Softwaretechnik (Allgemeine Informatik) 716 Systemdokumentation Gliederungsvorschlag (Pomberger) (fortgesetzt): 5. Testprotokolle Testplan für jedes Modul Testumgebungen Testpläne für Integrations- und Abnahmetest verwendete Testfälle und Ergebnisse 6. Tabellen und Diagramme Alle Komponenten aus OOA und OOD: Use Cases, Klassendiagramme, Interaktionsdiagramme, ggf. weitere UML-Diagramme Daten- und Begriffsglossar Klassendokumentation, etc. 7. Programm-Listings Prof. Dr. Björn Dreher Softwaretechnik (Allgemeine Informatik) 717
Systemdokumentation Insgesamt nicht zu umfangreich Dokumentation muss auch gelesen werden (können) Entsteht bereits während der einzelnen Projektphasen Nicht erst zum Schluss Schwierigkeit der Aktualisierung! Prof. Dr. Björn Dreher Softwaretechnik (Allgemeine Informatik) 718 Projektdokumentation Informationen zur Verwaltung und Kontrolle des Projektes Projektplan: Realisierungsphasen und Zeitrahmen Organisationsplan: Personalzuteilung für die einzelnen Realisierungsphasen Geforderte Ergebnisse nach Abschluss jeder Phase Projektstandards: Entwurfsmethodik Standards für Programmierung Teststrategien Dokumentation Prof. Dr. Björn Dreher Softwaretechnik (Allgemeine Informatik) 719
Projektdokumentation Informationen zur Verwaltung und Kontrolle des Projektes (fortgesetzt) Verzeichnis aller Dokumente: Status (geplant, in Arbeit, freigegeben) Zugriffsrechte Archivierung Ressourcenverbrauch: Arbeitszeit Maschinenzeit Investitionen Projekttagebuch: Protokolle der Projektbesprechungen und sonstiger Meetings (Zwischenabnahmen etc.) Soll-Ist Vergleich Prof. Dr. Björn Dreher Softwaretechnik (Allgemeine Informatik) 720 Softwaretechnik (Allgemeine Informatik) Überblick: 9.1 Einleitung Prof. Dr. Björn Dreher Softwaretechnik (Allgemeine Informatik) 721
Wartung Nach der Abnahme des Programms durch den Auftragsgeber und dessen Einführung folgt die Phase Wartung und Pflege im Software- Lebenszyklus Dabei fallen Fehlerbeseitigungs-, Nachbesserungs- und Optimierungs-, Änderungs- und Erweiterungsarbeiten an Im einzelnen (nach Pomberger)... Prof. Dr. Björn Dreher Softwaretechnik (Allgemeine Informatik) 722 Korrektur von Fehlern (corrective, 17% nach Lientz/Swanson) Fehler, die beim Test nicht entdeckt worden sind (man kann nicht alle Fehler beim Testen finden!) Nachbesserung der Benutzerschnittstelle und Optimierung (perfective, 65%) Echter Test der Benutzerschnittstelle auf Akzeptanz erst beim realen Betrieb (mit echte Daten) Evtl. treten jetzt erst Laufzeitprobleme auf Folge sind Nachbesserungswünsche des Auftragsgebers (die nicht Bestandteil der Anforderungsdefinition waren, d.h. zusätzliche Wünsche) Änderungen infolge neuer Benutzeranforderungen (adaptive, 18%) Neue, zusätzliche Benutzerwünsche, äußere Anforderungen (gesetzliche Änderungen) Prof. Dr. Björn Dreher Softwaretechnik (Allgemeine Informatik) 723
Anteil der Wartungskosten an den Gesamtkosten eines Softwaresystems ist sehr hoch: 40-60% sind nicht selten Oft wird der Anteil unterschätzt Durch wartungsfreundliche Vorgehensweise in den vorangehenden Phasen kann man diese Kosten vermindern Prof. Dr. Björn Dreher Softwaretechnik (Allgemeine Informatik) 724