Index

5. Problemlösetechniken

Objektorientierte Programmierung (8)


Projekt: Tauglichkeitstester

6. Das Projekt - Die Klasse Test

Es soll hier noch einmal aufgezeigt werden, wie komplexere Probleme allgemein angegangen werden.

6.1 Objektorientierte Analyse (OOA)

a) Grobanalyse - Pflichtenheft

  1. Das Programm enthält folgende Teile:
  2. Die Ergebnisse werden angezeigt.
  3. Eine Bewertung des gesamten Test erfolgt nicht, die Ergebnisse werden nicht zusammengefasst oder gespeichert.
  4. Ein Umschalten zwischen den Testarten ist möglich.
  5. Der Tauglichkeitstester soll für beliebige (erwachsene) Benutzer ohne Vorkenntnisse benutzbar sein.
  6. Für jede Testart wird ein Hilfetext angeboten.
  7. Der Tauglichkeitstester läuft auf Windows-Rechnern.
  8. Wegen möglicher Erweiterungen ist eine objektorientierte Modellierung und Programmierung vorgesehen.

b) Geschäftsprozesse

Für den Tauglichkeitstester lassen sich folgende Geschäftsprozesse (GP) identifizieren, die von dem Akteur "Testperson" ausgelöst werden:

Dies wird in einem Geschäftprozessdiagramm (auch Use-Case-Diagramm) wie folgt dargestellt:

Beschreibung der Geschäftsprozesse
GP Reaktion testen
Ziel: Die Reaktionszeit beim Umspringen einer Ampel von rot auf grün wird bestimmt.
Vorbedingung: keine
Nachbedingung Erfolg: Reaktionszeit ist ausgegeben, Testumgebung startbereit, Art des Tests kann neu gewählt werden
Akteur: Testperson
Auslösendes Ereignis Teststart und Ende durch die Testperson (Mausklick)
Beschreibung 1. Test starten.
2. Auf Umspringen der Ampel von rot auf grün reagieren (Mausklick)
Alternative
1a. Art des Tests neu wählen

In ähnlicher Weise werden Einschätzung und Konzentration beschrieben.

c) Identifikation von Klassen

Aus dem Pflichtenheft und den GP findet man mit Hilfe der Substantivmethode (Substantive bei der Beschreibung benutzen):

Fahrtauglichkeitstester, Anwender, Reaktionstest, Einschätzungstest, Konzentrationstest, Test, Ergebnis, Ampel, Reaktionszeit, Bewertung, Quadrat, Ballon, Testperson, Reaktion, Abwertung.

Wir identifizieren die folgenden Objekte:

Zur Messung der Reaktionszeit wird eine Uhr benötigt.

d) Beschreibung von Attributen und Methoden

Die Attribute und Methoden der Klassen Stoppuhr, Figur, Kreis, Ballon, Quadrat und Ampel sind bereits festgelegt.
Es muss nun noch eine Betrachtung der Testklassen erfolgen.

Hierfür einige Informationen zu den Testklassen:

Diese Informationen führen auf eine erste grobe Modellierung und Beschreibung der Methoden der Testklassen.

Betrachten wir die verfeinerte Modellierung der Klasse ReaktionsTest:

Attribute der Klasse Reaktion:

Ergebnis:
  Speichert das Ergebnis beim Test
Aktiv:
  Speichert, ob der Test aktiv ist
Stoppuhr:
  Wird zur Zeitmessung benötigt
Ampel:
  Wird zur Darstellung benötigt

Methoden der Klasse Reaktiontest:

starten()

stoppen()

zeigeHilfe()

warten()

getErgebnis()

isAktiv()

Darstellung der Klasse Reaktion in UML:


 
Reaktionstest
# Ampel
# Stoppuhr
# Ergebnis
# Aktiv
# warten()
+ getErgebnis()
+ starten()
+ stoppen()
+ zeigeHilfe()
+ isAktiv()

 

e) Ermittlung von Vererbungsstrukturen

Die drei Testarten haben Gemeinsamkeiten (z.B. Test starten usw.). Deshalb bietet sich eine Generalisation an, d.h. Bildung einer Oberklasse, um Testklassen durch Vererbung zu erzeugen.
Weiterhin haben wir eine Vererbungsstruktur bei den Figuren, was wir schon betrachtet haben.

Übung

Wie kann man die verschiedenen Testklassen durch Vererbung erhalten?
Welche Methoden der Oberklasse Test sind abstrakt, welche Methoden werden überschrieben?

f) Identifikation von Assoziationen

Wir können Assoziationen zwischen folgenden Objekten identifizieren.

Übung

Erstellen Sie aus den oben beschriebenen Informationen ein Klassendiagramm aller am Projekt beteiligten Klassen. Achten Sie auf Vererbung und Assoziationen. Tragen Sie auch die Kardinalitäten ein.

g) Dynamische Modellierung

Das dynamische Modell repräsentiert das zeitliche Verhalten von Objekten.
Ein Geschäftsprozess wird in mehrere selbstständige Teilprozesse (Szenarios) zerlegt.
In Sequenzdiagrammen kann für jedes Szenario der Nachrichtenfluss zwischen Instanzen und deren zeitliche Abfolge beschrieben werden. Die Zeitachse verläuft von oben nach unten. Im folgenden Beispiel wird der Start des Einschätzungstests dargestellt. Die Objekte sind als anonyme Objekte ihrer Klasse dargestellt (Schreibweise :Klasse ).

Sequenzdiagramm
Das Sequenzdiagramm soll auf Konsistenz mit den Klassen geprüft werden. Die Botschaften im Diagramm müssen als Methoden der Objekte deklariert sein.

Übung
  1. Zeichnen Sie das Sequenzdiagramm für das vom Benutzer ausgelöste Stoppen des Einschätzungstests.
  2. Zeichnen Sie ein Sequenzdiagramm für den Start des Reaktionstests.

6.2 Objektorientiertes Design (OOD)

Während bei OOA ein Modell des Problembereichs entwickelt wird, muss im OOD das Modell so erweitert werden, dass es implementiert werden kann. Dazu müssen Klassenstruktur, Attribute und Methoden modifiziert, ergänzt und verfeinert werden. Zudem werden Assoziationen präzisiert und Vererbungsstrukturen verfeinert und eine erste Modellierung der Benutzungsoberfläche vorgenommen.

Das OOD-Modell ist ein genaues Abbild des späteren Programms.

Die Benutzungsoberfläche

Vorgaben

Aus diesen Vorgaben entsteht ein erster Prototyp der Benutzungsoberfläche.

Reaktionstest

Reaktionstest

Einschätzungstest

Einschätzungstest

6.3 Objektorientierte Programmierung (OOP)

Das OOD ist eng verbunden mit der Implementierung des Modells in einer objektorientierten Programmiersprache.

Übung
  1. Implementieren Sie die Klassen Test und Reaktiontest.
    Erstellen Sie eine GUI-Klasse zum Testen eines Objektes der Klasse Reaktiontest.
  2. Implementieren Sie die Klassen Einschaetzungstest und Konzentrationstest.
    Erstellen Sie GUI-Klassen zum Testen eines Objektes der jeweiligen Klasse.

[Index] [Zurück/TT 5]


Autor: Jürgen Dehmer, A. Sessler, G. Liebrich
Letzte Änderung: