14.01.2014 Aufrufe

Einführung in die Software-Technik

Einführung in die Software-Technik

Einführung in die Software-Technik

MEHR ANZEIGEN
WENIGER ANZEIGEN

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?“

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!