Einführung in die Software-Technik
Einführung in die Software-Technik
Einführung in die Software-Technik
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>die</strong><br />
<strong>Software</strong>-<strong>Technik</strong>
1. Motivation<br />
• Wie entwickelt man eigentlich <strong>Software</strong><br />
(professionell)?<br />
– alle<strong>in</strong>e, im Team, <strong>in</strong> e<strong>in</strong>er Firma<br />
•Für wen?<br />
– sich selbst, Bekannte, Kunden<br />
• Ziel von SW-Eng<strong>in</strong>eer<strong>in</strong>g: Entwicklung<br />
komplexer <strong>Software</strong>-Produkte von hoher<br />
Qualität
Planung von <strong>Software</strong><br />
• Ingenieurmäßiges Vorgehen<br />
– Phasen- und Vorgehensmodelle<br />
– Methoden für <strong>die</strong> Anforderungsanalyse<br />
– Methoden für den Entwurf<br />
– Programmiersprachen
Qualitätsmerkmale<br />
• Brauchbarkeit<br />
– Benutzungsfreundlichkeit<br />
– Effizienz<br />
– Zuverlässigkeit<br />
– Portabilität<br />
– Korrektheit<br />
• Wartbarkeit<br />
– Änderbarkeit<br />
– Verständlichkeit<br />
– Testbarkeit
2. Phasenmodelle
2.1 Sequentielles Phasenmodell<br />
• Projekt<strong>in</strong>itialisierung<br />
•Analyse<br />
•Entwurf<br />
• Implementierung<br />
• Test<br />
• Installation
2.1.1 Projekt<strong>in</strong>itialisierung<br />
• Idee für e<strong>in</strong> <strong>Software</strong>-Produkt<br />
• Vorgänger- bzw. Konkurrenzprodukt<br />
• Durchführbarkeitsstu<strong>die</strong><br />
• Projektplan<br />
–Aufwand<br />
–Ablauf<br />
– Grobe Aufgabenstellung
2.1.2 Analysephase<br />
• Anforderungen<br />
– sammeln, sichten, analysieren<br />
– klassifizieren <strong>in</strong><br />
• benutzungsorientierte Anforderungen<br />
• Qualitätsanforderungen<br />
• funktionale Anforderungen<br />
– modellieren
Analysephase (2)<br />
• Detaillierte Analyse des Problembereichs<br />
und der Anwendungsfälle<br />
– Struktur der Objekte des Problembereichs<br />
– Verhalten der Objekte und ihre wechselseitige<br />
Interaktion<br />
• Ziel: Vollständiges und widerspruchsfreies<br />
Analysemodell<br />
– Unabhängig von Implementierung
Pflichtenheft<br />
• Detaillierte verbale Beschreibung der<br />
Anforderungen<br />
• Vertragliche Beschreibung des<br />
Lieferumfangs, Grundlage für Abnahme des<br />
fertigen Produkts<br />
• Beschreibt das Was, aber nicht das Wie<br />
• Vorgegebenes, standardisiertes<br />
Gliederungsschema
2.1.3 Entwurfsphase<br />
• Implementierungs-technische<br />
Entscheidungen<br />
• Detailentwurf der Klassen<br />
• Strukturierung des Klassendiagramms
2.1.4 Implementierungsphase<br />
• Ziel: Realisierung der Problemlösung<br />
– Übersetzung des Modells <strong>in</strong> gewählte<br />
Programmiersprache<br />
– Unabhängige Implementierung der Klassen<br />
– Integration der Klassen<br />
• Ergebnis: ausführbares Programm
2.1.5 Testphase<br />
• Vali<strong>die</strong>rung des <strong>Software</strong>-Produkts<br />
– Separates Testen der Klassen<br />
– Testen des Gesamtsystems<br />
• Beheben der gefundenen Fehler
2.1.6 Installation<br />
• Übertragung des Programms<br />
– von Entwicklungsumgebung<br />
– auf Anwendungsumgebung<br />
• Benutzungshandbuch<br />
– Beschreibung von<br />
• Produktfunktionen<br />
• Produktstruktur<br />
• Arbeitsabläufen
2.2 Kritik<br />
• Merkmale des sequentiellen Phasenmodells<br />
–e<strong>in</strong>fach<br />
– stark idealisierend<br />
– unrealistisch<br />
– ke<strong>in</strong>e Rückkopplungen und ke<strong>in</strong>e Zyklen<br />
• Was mache ich, wenn Fehler <strong>in</strong> e<strong>in</strong>er frühen<br />
Phase später bemerkt werden?
Bemerkungen<br />
• Bessere Modelle<br />
– Phasenmodell für jede Komponente e<strong>in</strong>zeln<br />
• SW-Eng<strong>in</strong>eer<strong>in</strong>g genauer im Hauptstudium<br />
– 3-semestriger Vorlesungs-Zyklus
2.3 Anwendung auf unser Projekt<br />
• Formalisierung so weit wie nötig<br />
• Pflichtenheft ist wichtig<br />
• Meilenste<strong>in</strong>e<br />
• Testfälle für Klassen schreiben<br />
– Während der Entwicklung der Klassen<br />
– Ma<strong>in</strong>-Methoden implementieren!
3. UML<br />
• UML = Unified Modell<strong>in</strong>g Language<br />
• Graphische Modellierungssprache<br />
– Unabhängig von Programmiersprache<br />
– E<strong>in</strong>heitliche Darstellung für SW-Entwurf<br />
• Diagrammarten<br />
– Anwendungsfalldiagramm<br />
– Aktivitätsdiagramm<br />
– Klassendiagramm<br />
– ...
UML (2)<br />
• Werkzeuge zum Erfassen und Bearbeiten<br />
der Diagramme (Rational Rose, ObjektiF,<br />
TogetherJ, ...)
3.1 Anwendungsfalldiagramm<br />
Grundidee:<br />
• Gliederung der Funktionalität des<br />
Anwendungssystems <strong>in</strong> logisch<br />
zusammengehörige und handliche funktionale<br />
E<strong>in</strong>heiten<br />
– „Anwendungs“- oder „Nutzungsfälle“<br />
• Beschreibung <strong>in</strong> standardisierter Form
Akteur<br />
• Ist etwas, das außerhalb des Systems steht<br />
und auf <strong>die</strong>ses Wirkungen ausübt<br />
• Repräsentiert <strong>die</strong> Rolle e<strong>in</strong>es Menschens<br />
oder externen Systems<br />
– Z.B. Adm<strong>in</strong>istrator, „normaler Benutzer“
Anwendungsfall<br />
• Stellt e<strong>in</strong>e Folge von Ereignissen dar, <strong>die</strong> durch<br />
e<strong>in</strong>en Akteur ausgelöst werden<br />
• Def<strong>in</strong>iert e<strong>in</strong>e Interaktion zwischen Akteur und<br />
System<br />
• Ist Teil e<strong>in</strong>er Sammlung von Anwendungsfällen,<br />
<strong>die</strong> zusammen alle Möglichkeiten der<br />
Systembenutzung beschreiben
Beispiel<br />
Sche<strong>in</strong>verwaltungssystem<br />
• Anwendungsfälle<br />
– Student anlegen<br />
– Veranstaltung bearbeiten<br />
– Teilnehmer Veranstaltung<br />
zuordnen<br />
– Sche<strong>in</strong> freigeben<br />
– Zuordnung Mitarbeiter<br />
beantragen<br />
– Term<strong>in</strong> anlegen/zuordnen<br />
– ....<br />
• Akteure<br />
– Sekretär<strong>in</strong><br />
– Mitarbeiter
Mitarbeiter<br />
Veranstaltung bearbeiten<br />
Zuordnung Teilnehmer<br />
Teilnehmer löschen<br />
«<strong>in</strong>clude»<br />
Veranstaltung anlegen<br />
Veranstaltung löschen<br />
Student anlegen<br />
Sche<strong>in</strong> freigeben<br />
«<strong>in</strong>clude»<br />
Zuordnung Mitarbeiter beantragen<br />
Teilnehmerliste anzeigen<br />
Zuordnung Mitarbeiter freigeben<br />
Term<strong>in</strong> anlegen/Zuordnen<br />
Sekretär<strong>in</strong>
Beschreibung von<br />
Anwendungsfällen (1)<br />
• Titel und Kurzbezeichnung<br />
• Kurzgefasste Darstellung des Zwecks<br />
• Aufzählung der <strong>in</strong>volvierten Akteure<br />
• Ereignisse, <strong>die</strong> e<strong>in</strong>en konkreten<br />
Anwendungsfall auslösen, ggf. mit den<br />
dazu notwendigen Bed<strong>in</strong>gungen
Beschreibung von<br />
Anwendungsfällen (2)<br />
• Beschreibung der Daten, <strong>die</strong> bei der<br />
Auslösung benötigt werden<br />
• Behandlung von Ausnahme- und<br />
Fehlersituationen<br />
• Teilschritte, Aktionen und Reaktionen,<br />
<strong>die</strong> den Ablauf des Anwendungsfalls<br />
bestimmen<br />
• Ergebnisse und Nachbed<strong>in</strong>gungen
Anwendungsfall: Veranstaltung bearbeiten<br />
Involvierte Akteure: Sekretär<strong>in</strong><br />
Zweck: Die Daten e<strong>in</strong>er <strong>in</strong> der Kurzübersicht vorhandenen<br />
Veranstaltung sollten verändert werden.<br />
Für <strong>die</strong> Auslösung benötigte Daten:<br />
1. E<strong>in</strong>e Kurzübersicht muss existieren.<br />
2. E<strong>in</strong> Belegungsplan für Hörsaal III muss existieren.<br />
Ausnahme- und Fehlersituationen:<br />
1. Es existiert noch ke<strong>in</strong>e Kurzübersicht<br />
Fehlermeldung: Der Benutzer wird aufgefordert, e<strong>in</strong>e<br />
Kurzübersicht zu erstellen.<br />
2. Durch <strong>die</strong> Änderung von Term<strong>in</strong> oder Raumdaten entsteht e<strong>in</strong><br />
Konflikt bei der Belegung von Hörsaal III<br />
Fehlermeldung: Der Benutzer wird auf den Konflikt<br />
h<strong>in</strong>gewiesen und erhält <strong>die</strong> Möglichkeit, <strong>die</strong> Daten der<br />
Veranstaltung zu ändern, oder <strong>die</strong> e<strong>in</strong>gegebenen Änderungen<br />
rückgängig zu machen.
Teilschritte:<br />
1. E<strong>in</strong>e Liste der <strong>in</strong> der Kurzübersicht gespeicherten<br />
Veranstaltungen wird ausgegeben, <strong>die</strong> Sekretär<strong>in</strong> wählt e<strong>in</strong>e der<br />
Veranstaltungen aus.<br />
2. E<strong>in</strong>e E<strong>in</strong>gabemaske mit den gespeicherten Daten wird<br />
angezeigt.<br />
3. Die Sekretär<strong>in</strong> ändert <strong>die</strong> gewünschten Datenfelder oder fügt<br />
zusätzliche Informationen für das kommentierte<br />
Vorlesungsverzeichnis e<strong>in</strong>.<br />
4. Die Änderungen werden <strong>in</strong> der Kurzübersicht gespeichert, wobei<br />
auch e<strong>in</strong>e Aktualisierung des Belegungsplanes für Hörsaal III<br />
stattf<strong>in</strong>det und <strong>die</strong> Belegung des Hörsaales auf<br />
Überschneidungen überprüft wird.<br />
Ergebnisse: Die Kurzübersicht wird geändert. Der Belegungsplan<br />
für Hörsaal III wird geändert.
3.2 Aktivitätsdiagramm<br />
• Verfe<strong>in</strong>erung e<strong>in</strong>es Anwendungsfalls<br />
• Modellierung e<strong>in</strong>es Ablaufs<br />
• Jeder Aktivitätsschritt wird spezifiziert<br />
• Reihenfolge der Schritte<br />
• Verzweigungen<br />
• Synchronisationspunkte<br />
• Start- und Endpunkte
Beispiel Sche<strong>in</strong>verwaltungssystem<br />
Kurzübersicht<br />
Veranstaltung<br />
auswählen<br />
Daten<br />
ändern<br />
Kurzübersicht<br />
ändern<br />
Raumplan<br />
ändern
3.3 Klassendiagramm<br />
• Zeigt <strong>die</strong> logische, statische Struktur e<strong>in</strong>es<br />
Systems<br />
• Enthält<br />
– Klassen und Objekte<br />
• Attribute und Operationen<br />
– Beziehungen zwischen den Klassen<br />
• Vererbungsbeziehungen<br />
• Assoziationen
3.3.1 Klassen <strong>in</strong> UML<br />
Klassenbezeichner<br />
Attribute<br />
Veranstaltung<br />
Veranstaltungsnr: <strong>in</strong>t<br />
Titel: Str<strong>in</strong>g<br />
Semester: Str<strong>in</strong>g<br />
Dozent: Str<strong>in</strong>g<br />
Betreuer: Account<br />
Term<strong>in</strong>: Term<strong>in</strong><br />
Methoden<br />
löschen()
Objekte <strong>in</strong> UML<br />
:Veranstaltung<br />
Veranstaltungsnr = 12082<br />
Titel=Informatik-Praktikum im Grundstudium<br />
Semester=SS 03<br />
Dozent=Sommer<br />
Betreuer=Schneider, He<strong>in</strong>z<br />
Term<strong>in</strong>=Mo, 14 – 16, HG 5
3.3.2 Beziehungen zwischen Klassen
Generalisierung/Vererbung<br />
• Subklassen erben alle Attribute,<br />
Operationen und Assoziationen von der<br />
Oberklasse<br />
• E<strong>in</strong> Objekt e<strong>in</strong>er Subklasse ist gleichzeitig<br />
auch Exemplar der Superklasse<br />
Superklasse<br />
Veranstaltung<br />
Subklassen<br />
Sem<strong>in</strong>ar Vorlesung Praktikum
Bemerkungen<br />
• Vorsicht beim E<strong>in</strong>satz von Vererbung<br />
– Wird häufiger genutzt, als s<strong>in</strong>nvoll!<br />
– Beispiel:<br />
Person<br />
Student Mitarbeiter Professor
Assoziation<br />
• Modelliert Verb<strong>in</strong>dung zwischen Objekten<br />
e<strong>in</strong>er oder mehrerer Klassen<br />
• Kard<strong>in</strong>alitäten: wie viele Objekte der<br />
anderen Klasse kann e<strong>in</strong> bestimmtes Objekt<br />
kennen?<br />
• Def<strong>in</strong>ition von Rollen<br />
Student<br />
1…*<br />
1…*<br />
Vorlesung<br />
hört
Aggregation<br />
• Zwischen den Objekten der beteiligten<br />
Klassen besteht e<strong>in</strong>e Rangordnung<br />
• Lässt sich beschreiben durch „besteht aus“<br />
oder „ist Teil von“<br />
Auto (PKW)<br />
1<br />
1...5<br />
Reifen<br />
besteht aus
Komposition<br />
– Starke Form der Aggregation<br />
– Lebenszeit von Ganzem und Teil ist identisch<br />
• Wird das Ganze gelöscht, werden automatisch se<strong>in</strong>e<br />
Teile gelöscht.<br />
– Beispiel: Raum „ist <strong>in</strong>“ Gebäude<br />
Gebäude<br />
1<br />
1...*<br />
Raum<br />
hat
Für unsere Zwecke<br />
• Anwendungsfalldiagramm<br />
• Vere<strong>in</strong>zelt Beschreibung von<br />
Anwendungsfällen<br />
• Klassendiagramme<br />
• Weitere Diagramme wenn für nötig<br />
befunden
4. Objektorientierte Analyse<br />
(OOA)<br />
• Ziel: Verständnis des zu realisierenden Problems<br />
und dessen Beschreibung <strong>in</strong> e<strong>in</strong>em OOA-Modell<br />
• Zu erstellenden Produkte:<br />
– Pflichtenheft: textuelle Beschreibung dessen, was das<br />
System leisten soll<br />
– OOA-Modell, bestehend aus statischem Modell und<br />
dynamischen Modell<br />
– Prototyp der Benutzungsoberfläche
Pflichtenheft (1)<br />
Gliederungsschema (Muster) e<strong>in</strong>es Pflichtenhefts<br />
1 Zielbestimmung<br />
1.1 Musskriterien<br />
1.2 Wunschkriterien<br />
1.3 Abgrenzungskriterien<br />
2 Produkte<strong>in</strong>satz<br />
2.1 Anwendungsbereiche<br />
2.2 Zielgruppen<br />
2.3 Betriebsbed<strong>in</strong>gungen<br />
3 Produktübersicht<br />
4 Produktfunktionen<br />
5 Produktdaten<br />
6 Produktleistungen<br />
7 Qualitätsanforderungen<br />
8 Benutzungsoberfläche<br />
9 Nichtfunktionale<br />
Anforderungen
Pflichtenheft (2)<br />
10 Technische Produktumgebung<br />
10.1 <strong>Software</strong><br />
10.2 Hardware<br />
10.3 Orgware<br />
10.4 Produkt-Schnittstellen<br />
11 Spezielle Anforderungen an <strong>die</strong> Entwicklungsumgebung<br />
12 Gliederung <strong>in</strong> Teilprodukte<br />
13 Ergänzungen (nach H. Balzert: Lehrbuch der <strong>Software</strong>-<strong>Technik</strong>)
OOA-Modell<br />
• Statisches Modell beschreibt<br />
– Klassen des Systems<br />
– Assoziationen<br />
– Attribute (Daten des Systems)<br />
– Pakete zur Bildung von Teilsystemen<br />
• Dynamisches Modell zeigt<br />
– Funktionsabläufe, Verhalten des Systems<br />
• Prototyp der Benutzungsoberfläche<br />
– <strong>die</strong>nt zur Kommunikation mit dem Auftraggeber
5. Objektorientierter Entwurf<br />
• Aufgaben des Entwurfs<br />
– Ermitteln und Festlegen der Umgebungs- und<br />
Randbed<strong>in</strong>gungen<br />
– Treffen grundlegender Entwurfsentscheidungen<br />
– Entwerfen e<strong>in</strong>er <strong>Software</strong>-Architektur<br />
– Zerlegung des Systems <strong>in</strong> Komponenten<br />
– Spezifikation des Funktions- und Leistungsumfang der<br />
Komponenten<br />
– Festlegung der Schnittstellen, über <strong>die</strong> <strong>die</strong><br />
Systemkomponenten mite<strong>in</strong>ander kommunizieren
Drei-Schichten Architektur<br />
Benutzungsoberfläche<br />
Anwendungsschicht<br />
Datenhaltung<br />
• Beispiel Buch:<br />
– Klasse für <strong>die</strong> Anzeige<br />
– Klasse mit Verwaltungsoperationen<br />
– Klasse zur Speicherung e<strong>in</strong>es Buchs
OOD-Modell<br />
• Technische Lösung des zu realisierenden<br />
Systems<br />
• Abbild des späteren Programms<br />
• Enthält alle Klassen, Attribute und<br />
Operationen des späteren Programms<br />
• Gleiche Attribut- und Methodennamen wie<br />
im Programm
6. Implementierung<br />
• Tätigkeiten bei der Implementierung<br />
– Konzeption von Datenstrukturen und Algorithmen<br />
– Strukturierung des Programms durch geeignete<br />
Verfe<strong>in</strong>erungsebenen<br />
– Umsetzung der Konzepte <strong>in</strong> <strong>die</strong> Konstrukte der<br />
verwendeten Programmiersprache<br />
– Dokumentation und Kommentierung der<br />
Implementierungsentscheidungen<br />
• Ergebnisse<br />
– Quellcode e<strong>in</strong>schließlich <strong>in</strong>tegrierter Dokumentation<br />
– Testplanung und Testprotokoll
Pr<strong>in</strong>zip der Verbalisierung<br />
• Aussagekräftige Namensgebung (bitte <strong>in</strong><br />
der Sprache e<strong>in</strong>heitlich: entweder nur<br />
Deutsch oder nur Englisch)<br />
• Geeignete Kommentare<br />
• Verwendung benannter Konstanten<br />
! Programmierrichtl<strong>in</strong>ien für Java-<br />
Programme
Weitere Pr<strong>in</strong>zipien der<br />
Implementierung<br />
• Pr<strong>in</strong>zip der problemadäquaten Datentypen<br />
– Verwendung von vordef<strong>in</strong>ierten Datentypen der<br />
verwendeten Programmiersprache<br />
• Pr<strong>in</strong>zip der Verfe<strong>in</strong>erung<br />
• Pr<strong>in</strong>zip der <strong>in</strong>tegrierten Dokumentation<br />
– Kurzbeschreibung des Programms<br />
– Verwaltungs<strong>in</strong>formationen<br />
– Kommentierung des Quellcodes
Integrierte Dokumentation<br />
• Reduziert den Aufwand zur<br />
Dokumentenerstellung<br />
• Stellt sicher, dass ke<strong>in</strong>e Informationen verloren<br />
gehen<br />
• Garantiert <strong>die</strong> rechtzeitige Verfügbarkeit<br />
• Entwicklungsbegleitende Dokumentation<br />
• Gute Dokumentation bildet <strong>die</strong> Voraussetzung für<br />
– Leichte E<strong>in</strong>arbeitung bei Personalwechsel<br />
– Gute Wartbarkeit des Produkts
Javadoc<br />
• Dokumentationskommentar: /**Kommentar*/<br />
• Dort können verwendet werden:<br />
– spezielle Befehle: @author, @version,....<br />
– Zur Kommentierung von Operationen:<br />
• @param: Name und Bezeichnung von Parametern<br />
• @return: Beschreibung e<strong>in</strong>es Rückgabeparameters<br />
• @exception: Name und Beschreibung von Ausnahmen<br />
• @see: Verweis auf andere Klassen<br />
– HTML-Befehle wie , ...<br />
– Hyperl<strong>in</strong>ks auf andere relevante Dokumente mit dem<br />
HTML-Befehl
7. Testen<br />
• Gezieltes Suchen nach Fehlern<br />
• Getestet werden sämtliche Dokumente, <strong>die</strong> bei der<br />
<strong>Software</strong>entwicklung entstehen<br />
• Testen ist Kontrollfunktion im <strong>Software</strong>-<br />
Entwicklungsprozess (! Qualität)<br />
• Testen umfasst nicht <strong>die</strong> Fehlerkorrektur
Funktionstest<br />
• Programm als black-box: Überprüfung der<br />
<strong>in</strong> der Spezifikation festgelegten<br />
Funktionalität.<br />
• Zwei Stufen:<br />
1. Def<strong>in</strong>itionsbereiche der E<strong>in</strong>gaben bzw. <strong>die</strong><br />
Wertebereiche der Ausgaben <strong>in</strong><br />
Äquivalenzklassen zerlegen<br />
2. Aus jeder Äquivalenzklasse nach bestimmter<br />
Strategie Testfälle auswählen
Äquivalenzklassenbildung<br />
• Alle Werte e<strong>in</strong>er Äquivalenzklasse verursachen<br />
identisches, funktionales Verhalten.<br />
• Beispiel: Programm zur Berechnung von Preisen<br />
– Art.-Nr.: 5-stellige Zahl<br />
– Stückzahl: m<strong>in</strong>d. 1, höchstens 10.000<br />
– Rabatt: liegt zwischen 0 und 100%
Äquivalenzklassen<br />
gültig<br />
ungültig<br />
Art.-Nr.<br />
Stückzahl<br />
Rabatt<br />
9999
Testfälle<br />
1.<br />
2.<br />
3.<br />
4.<br />
5.<br />
6.<br />
7.<br />
8.<br />
Art-<br />
Nr.<br />
10000<br />
99999<br />
9999<br />
100000<br />
11111<br />
11111<br />
11111<br />
11111<br />
Stück<br />
1<br />
10000<br />
1<br />
1<br />
0<br />
10001<br />
1<br />
1<br />
Rabatt<br />
0<br />
100<br />
0<br />
0<br />
0<br />
0<br />
-1<br />
101
Testen von Klassen<br />
• Äquivalenzklassenbildung der möglichen<br />
Attributwerte und Parameter ! Testfälle<br />
• Ausführen der Operationen für alle<br />
Testfälle<br />
– Die Werte des Objekts müssen zu Beg<strong>in</strong>n <strong>in</strong><br />
den entsprechenden Zustand versetzt werden.<br />
– Abgleich von Ist- und Sollwerten<br />
• Test jeder Folge abhängiger Operationen
Integrationstest<br />
• Überprüfung des fehlerfreien<br />
Zusammenwirkens der Systemkomponenten<br />
• Schrittweises H<strong>in</strong>zufügen neuer<br />
Systemkomponenten zu e<strong>in</strong>em bereits<br />
fehlerfrei arbeitenden Subsystem<br />
• Überprüfen der gegenseitigen<br />
Methodenaufrufe
Systemtest<br />
• abschließender Test<br />
• Basis für den Systemtest ist das Pflichtenheft<br />
(Anwendungsfälle) und das OOA-Modell<br />
• Auf Grundlage <strong>die</strong>ser Vorgaben werden Testfälle<br />
übernommen, ergänzt, und/oder neu erstellt<br />
• Verschiedene Teiltests:<br />
-Funktionstest<br />
-Sicherheitstest<br />
-Leistungstest<br />
-Interoperabilitätstest<br />
-Benutzbarkeitstest
Testplan<br />
• Auf Grundlage der Vorgaben im<br />
Pflichtenheft werden <strong>die</strong> zu überprüfenden<br />
Funktionen <strong>in</strong> e<strong>in</strong>em Testplan festgehalten
8. Benutzerhandbuch<br />
• Soll <strong>die</strong> Handhabung und das Verhalten des<br />
<strong>Software</strong>-Produkts möglichst vollständig<br />
und fehlerfrei beschreiben<br />
• Adressaten s<strong>in</strong>d <strong>die</strong> Endbenutzer<br />
• Inhalt<br />
– Produktbestandteile<br />
– Produktfunktionen<br />
– Arbeitsabläufe
Gliederungsschema (1)<br />
• Vorwort<br />
• Inhaltsverzeichnis<br />
• <strong>E<strong>in</strong>führung</strong><br />
• Installation<br />
• Benutzungsoberfläche<br />
– Allgeme<strong>in</strong>e Be<strong>die</strong>nungsh<strong>in</strong>weise<br />
– Tasten- und Mausbelegung<br />
– Bildschirmaufbau<br />
• Produktstruktur
Gliederungsschema (2)<br />
• Tra<strong>in</strong><strong>in</strong>gsteil<br />
– Typische Arbeitsabläufe mit Beispielen<br />
• Referenzteil<br />
– Benutzer-Leitfaden, enthält vollständige Beschreibung<br />
aller Objekte und Funktionen<br />
• Literaturverzeichnis<br />
• Abkürzungsverzeichnis<br />
• Glossar<br />
• Stichwortverzeichnis/Index/Register<br />
nach H. Balzert: Lehrbuch der <strong>Software</strong>-<strong>Technik</strong>
„Und das sollen wir alles<br />
machen?“