Projektbeschreibung

Spielidee

In der Basisversion des Spiels befindet sich der Spieler beim Spielstart an einem bestimmten Ort eines Parks, z.B. einem Badesee. Ziel ist es über Kommandos einen bestimmten Punkt, z.B. den Parkplatz, an dem das eigene Auto geparkt ist, zu finden. Eine Struktur des Parks könnte bspw. folgendermaßen aussehen:

Übersichtsplan über den Park

Der Spieler selbst besitzt allerdings kein Wissen über die Struktur des Parks, sondern bekommt immer nur Informationen über den aktuellen Ort, an dem er sich befindet. Ein vollständiger Ablauf des Spiels könnte so aussehen:

Du bist beim Baden eingedöst, langsam wird es dunkel.
Bevor nachts zwielichtige Gestalten kommen,
solltest Du schnell zu Deinem Auto...

Du bist hier: Badesee. Es gibt Wege nach: links
> links
Du bist hier: Grillplatz. Es gibt Wege nach: oben rechts
> oben
Du bist hier: Kiosk. Es gibt Wege nach: oben rechts unten links
> oben
Du bist hier: Streichelzoo. Es gibt Wege nach: unten links
> oben
Du kannst nicht nach oben gehen.
Du bist hier: Streichelzoo. Es gibt Wege nach: unten links
> links
Du bist hier: Eingang. Es gibt Wege nach: oben rechts links
> oben

Du bist nun hier: Parkplatz
Glückwunsch, Du hast es geschafft :-)
Gute Heimfahrt!!!

Die Attraktivität des Spiels soll später durch Deine eigenen Ideen gesteigert werden, zuerst soll aber die Basisversion umgesetzt werden, um an einem lauffähigen Spiel Erfahrungen und eigene Ideen zu sammeln.

Aufgabe 1 - Anforderungsanalyse

Fasse die obigen Beschreibungen in einer Anforderungsanalyse möglichst exakt zusammen. Du kannst auch schon weitere Ideen formulieren, die aber im Moment noch als Erweiterungsstufe gelten sollen. Weitere Informationen zur Anforderungsanalyse und dem Wasserfallmodell findest Du beim Projekt Space Invaders.

Modellierungsidee

Passend zur obigen Projektidee ist auch ein Grundgerüst einer Modellierung gegeben:

Klassendiagramm zur Grundidee

Aufgabe 2 - Diskussion des Klassendiagramms

Mache Dich mit dem Klassendiagramm vertraut. Erkläre es umfassend und diskutiere eventuelle Alternativen.

Implementierungsideen

Für die verschiedenen Klassen existieren schon einige Implementierungsideen:

Aufgabe 3 - Implementierung

Falls Du Dich mit JUnit und testgetriebener Entwicklung beschäftigt hast, bietet es sich an, zuerst ein Grundgerüst der Klassen zu erstellen und anschließend die Testfälle zu erzeugen (s.u.)

Implementiere das Spiel gemäß den obigen Ideen. Das Spiel müsste damit in der Basisversion spielbar sein.

Testideen

Beim Testen der Klasse Ort ist besonders zu testen, ob die Verbindungen zwischen den Orten korrekt erstellt werden. Aber auch die korrekte Belegung der weiteren Attribute sowie die Erzeugung der Beschreibung sollte getestet werden.

Die Klasse Spiel sollte mindestens daraufhin getestet werden, ob das Setzen des Spielers und des Zielortes funktionieren.

Beim Spieler sollte getestet werden, ob das Gehen an einen anderen Ort korrekt funktioniert.

Aufgabe 4 - Testfälle entwerfen

Überlege Dir konkrete Testfälle für mindestens die oben genannten Tests. Führe die Tests durch und dokumentiere die Testfälle. Falls Du JUnit benutzt, kannst Du die JUnit-Tests auch zur Dokumentation heranziehen.

Gesamttest

Die einzelnen Klassen sind nun implementiert und getestet und die Software sollte lauffähig sein. Es fehlen allerdings noch Tests des Gesamtsystems. Man unterscheidet dabei Systemtests und Akzeptanztests. Bei Systemtests wird das Gesamtsystem - üblicherweise vom Entwickler selbst - dahingehend getestet, ob die in der Anforderungsanalyse formulierten Forderungen erfüllt sind. Bei Akzeptanztests wird überprüft, ob die Software für den Benutzer so bedienbar ist und funktioniert, wie sie es soll. Ein Teil von Akzeptanztests können z.B. Beta-Tests sein, bei denen Vorabversionen der Software an interessierte Endkunden verteilt werden. Man kann sowohl für System- als auch für Akzeptanztests Phasen und Kriterien formulieren, um systematisch zu vertrauenswürdigen Tests zu kommen. Darauf soll hier aber nicht weiter eingegangen werden.

Aufgabe 5 - Systemtest

Teste Deine Software ausgiebig. Versuche dabei typische und untypische Szenarien zu simulieren. (Benutzer geht hin und her, Benutzer läuft im Kreis, Benutzer gibt ungültige Befehle, ...). Korrigiere eventuell auftretende Fehler.

Aufgabe 6 - Akzeptanztest

Gib Deine Software einem anderen Schüler oder einem unbeteiligten Freund etc., um z.B. die Bedienbarkeit für Personen zu testen, die gedanklich nicht mit Deinem Projekt vertraut sind. Notiere die Rückmeldungen.

Iterationen des Projekts

Spätestens aus dem Akzeptanztest werden sich verschiedene Wünsche bzgl. der Funktionalität ergeben. Wahrscheinlich hattest du auch vorher schon einige Ideen, wie sich das Adventure attraktiver gestalten lässt. Das Spiel sollte nun also in einem weiteren Schritt erweitert oder verbessert werden.

Wenn Software in mehreren Wiederholungen verbessert und weiterentwickelt wird, spricht man von iterativer Softwareentwicklung (von lat. iterare ,wiederholen‘). Da Software selten einmalig entworfen und dann unverändert für lange Zeit benutzt wird, entspricht dies dem Normalfall. Bezogen auf das Wasserfallmodell bedeutet dies, dass man wie in einer Schleife wieder zur Anforderungsanalyse zurück kehrt.

Solange die Software genutzt und gepflegt wird, wiederholen sich diese Phasen, man spricht auch vom Software-Lebenszyklus.

Aufgabe 7 - Anforderungsanalyse

Untersuche die ursprüngliche Anforderungsanalyse. Welche Anforderungen wurden noch nicht umgesetzt? Welche Punkte sollten ergänzt werden? Welche Wünsche oder Anforderungen ergeben sich aus den Akzeptanztests? Überarbeite die Anforderungsanalyse entsprechend.

Aufgabe 8 - Modellierung

Überprüfe die Modellierung in Bezug auf die geänderten Anforderungen und überarbeite sie.

Aufgabe 9 - Implementierung

Implementiere die neuen und geänderten Anforderungen.

Aufgabe 10 - Testen

Führe Modul-, System- und Akzeptanztests durch.

X

Fehler melden

X

Suche