SWTPra-Team4 - Heinz Nixdorf Institut

Transcription

SWTPra-Team4 - Heinz Nixdorf Institut
Heinz Nixdorf Institut
Fachgruppe Softwaretechnik
Zukunftsmeile 1
33102 Paderborn
Pflichtenheft
im Rahmen des Softwaretechnikpraktikums 2014
Inhaltsverzeichnis
1
2
Zielbestimmung
1
1.1
1.2
1.3
1
1
1
Produkteinsatz
2.1
2.2
2.3
2.4
3
Beschreibung des Problembereichs
Glossar . . . . . . . . . . . . . .
Modell des Problembereichs . . .
Geschäftsprozesse . . . . . . . . .
2.4.1 Gesamtablauf . . . . . . .
2.4.2 Aufbau . . . . . . . . . .
2.4.3 Spielzug durchführen . . .
2.4.4 Spielsteine legen . . . . .
2.4.5 Punkte berechnen . . . . .
3.2
3.3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Die Use-Cases des Servers . . . . .
3.1.1 Zug überprüfen . . . . . . .
3.1.2 Spiel erstellen . . . . . . . .
3.1.3 Spiel kontrollieren . . . . .
3.1.4 Spielkonfiguration erstellen
Die Use-Cases des Clients . . . . .
3.2.1 Mit Server verbinden . . . .
3.2.2 Zug durchführen . . . . . .
3.2.3 Spiel abschließen . . . . . .
3.2.4 Spiel Auswählen . . . . . .
Die Oberfläche . . . . . . . . . . .
3.3.1 Der Spielkonfigurator . . . .
3.3.2 Die Game Engine . . . . . .
3.3.3 Der Smartphone-Spieler . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4.2
Systemumgebung . . . . . . . . .
4.1.1 Softwareumgebung . . . .
4.1.2 Hardwareumgebung . . .
4.1.3 Android-Umgebung . . .
Nicht-funktionale Anforderungen
Abbildungsverzeichnis
3
4
6
6
6
9
10
10
10
12
Produktcharakteristiken
4.1
II
3
.
.
.
.
.
.
.
.
.
Produktfunktionen
3.1
4
Ziele der Entwicklung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Zielgruppe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Modularisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
13
14
15
17
19
20
21
23
24
25
25
25
26
28
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
28
28
28
29
29
32
1 Zielbestimmung
Das Brettspiel Scrabble erfreut sich seit langem großer Beliebtheit. Wir wollen mit einer netzwerkfähigen Version neue Möglichkeiten bieten gegen Freunde aus aller Welt anzutreten. Die Anwendung
erlaubt die Erstellung personalisierter Spiele, unter anderem durch die Auswahl von englischer oder
deutscher Sprache oder Kategorien, beispielsweise „Tiere“. Außerdem kann das Spielbrett mithilfe
einer graphischen Oberfläche individuell gestaltet werden.
Die Software besteht aus ein Spielkonfigurator und einem Game Engine auf Server-Seite und
mehreren Clients. Clients können KI-Spieler, Smartphone-Spieler, PC- oder Smartphone-Beobachter
sein.
1.1 Ziele der Entwicklung
Die Schwerpunkte dieses Projektes liegen auf Benutzerfreundlichkeit, Personalisierbarkeit und Netzwerkfähigkeit. Die Applikation für Android-Smartphones sowie das Eclipse-Plugin zur Spielkonfiguration sollen von Nutzern mit grundlegenden Computerkenntnissen verwendet werden können.
1.2 Zielgruppe
Die Zielgruppe sind Smartphone-User mit ausreichend Vorkenntnissen für die Installation und Benutzung einer einfachen App. Für die individuelle Gestaltung des Spielfelds sollten ausreichend
Computerkenntnisse vorhanden sein, um Eclipse und ein Eclipse-Plugin erfolgreich zu installieren.
Dabei wollen wir vor allem Nutzer jüngeren bis mittleren Alters erreichen, da diese den Großteil der
Nutzer von Smartphone-Spielen ausmachen.
1.3 Modularisierung
Zum Erfüllen der gestellten Anforderungen, ist unser Produkt modularisiert in eine Client-ServerArchitektur mit folgenden Komponenten: Eine Server-Komponente bietet die gemeinsame Plattform
für mehrere Clients, die über ein Netzwerk mit dem Server verbunden sind.
Serverseitig ergänzt wird dies durch einen Spielkonfigurator, der es einem Benutzer ermöglicht,
durch eine grafische Benutzeroberfläche Einstellungen für ein Scrabble-Spiel vorzunehmen. Die Game
Engine greift auf diese gespeicherte Konfiguration zu und verwendet diese als Basis für ein zu startendes
Spiel, an dem sich dann Clients anmelden können. Die Clients für Endbenutzer unterscheiden sich
durch 2 Merkmale: Zum einen nach der unterstützten Plattform. Dies wird zum einen eine ClientSoftware auf Basis eines Java-Eclipse-Plugins sein, welches die PC-Plattform bedient. Andererseits
wird es dazu eine Software für Geräte mit Android-Betriebssystem geben, welche für Smartphones
und Tablets vorgesehen ist.
Das zweite Merkmal ist der Funktionsumfang der jeweiligen Software: Für beide Plattformen
wird sowohl eine reine Observer-Funktionalität unterstützt, bei welcher der Benutzer das Spiel nur
beobachten kann, als auch einen zweiten Modus, in welchem in vollem Umfang am Spiel teilgenommen
werden kann.
1
Der Android-Client wird hierbei im Laufe des Projekts von einem externen Dienstleister erworben,
da der Kunde dessen Produkt bereits kennt und schätzt. Daher war es der Wunsch des Kunden auf der
Grundlage dieses Produktes unsere Software aufzubauen. Weil der Android-Client erst zum Beginn
der Implementierung eingekauft wird, ist es zu diesem Zeitpunkt noch nicht möglich, näher auf
dessen Entwurf einzugehen. Wir erwarten, dass die eingekaufte Software die von uns spezifizierten
Anforderungen erfüllt. Bei Abweichungen werden wir Ergänzungen vornehmen, damit das Modul
unseren Erwartungen gerecht wird.
Eine weitere Komponente wird ein KI-Spieler sein. Diese künstliche Intelligenz nimmt am Spiel
teil, ohne durch einen menschlichen Nutzer gesteuert zu werden. Es ist sowohl möglich, als Mensch
gegen KI-Spieler anzutreten, als auch mehrere KI-Spieler gegeneinander antreten zu lassen. Diese
Komponente ist auf einem PC ausführbar.
2
2 Produkteinsatz
Dieser Abschnitt erläutert den Einsatzbereich der Software. Dies geschieht indem zuerst der Problembereich (Abschnitt 2.1) beschrieben und die wichtigsten Fachbegriffe in einem Glossar (Abschnitt 2.2)
definiert werden. Das Modell des Problembereichs (Abschnitt 2.3) stellt in einem Klassendiagramm
die Struktur eines Scrabble Spiels übersichtlich dar. Abschließend wird der Ablauf des Spiels in den
Geschäftsprozessen (Abschnitt 2.4) mithilfe von Aktivitätendiagrammen veranschaulicht.
2.1 Beschreibung des Problembereichs
Bei unserer Scrabble Variante können zwei bis vier Spieler gegeneinander antreten. Ein Spiel beginnt
indem eine Spielkonfiguration ausgewählt wird. Die Spielkonfiguration kann sich in den Gewinnbedingungen, der Größe des Spielbretts, der Verteilung der Premiumfelder und der Sprache unterscheiden.
Außerdem ist es möglich eine Kategorie von erlaubten Wörtern selber zu spezifizieren. Anschließend
erhält jeder Spieler zufällig 7 der insgesamt 100 Spielsteine und der Rest wird in einem Beutel abgelegt.
Das Spiel läuft in Spielzügen ab wobei drei unterschiedliche Spielzüge möglich sind. Zum einen
können die Spieler Spielsteine auf das Spielbrett legen, Spielsteine mit denen aus dem Beutel tauschen
oder aussetzen. Spielsteine die platziert werden müssen an ein bereits auf dem Spielbrett liegendes
Wort angrenzen. Da zu Beginn noch keine Wörter vorhanden sind, muss das erste Wort das Startfeld
(gekennzeichnet durch das Sternsymbol in Abbildung 2.1) überdecken. Die in einem Spielzug gelegten
Spielsteine müssen immer zusammen mit den angrenzenden Spielsteinen gültige Wörter der Spielvarianten ergeben. Wurden die Spielsteine gelegt, wird anschließend aus den Werten der Spielsteine aus
denen die neu entstandenen Wörter bestehen und den darunter liegenden Premiumfeldern die Punkte
berechnet, welche dem Spieler gut geschrieben werden. Endet das Spiel werden den Spielern Punkte
in Höhe der auf seiner Ablagebank befindlichen Spielsteine abgezogen. Der Spieler mit den meisten
Punkten gewinnt.
Abbildung 2.1: Beschreibung des Problembereichs: Ein Scrabble-Spielfeld
3
2.2 Glossar
Das Glossar erläutert die in diesem Dokument verwendeten Begriffe. In Klammern stehen jeweils die
englischen Begriffe, die auch in der Benutzeroberfläche verwendet werden, wenn diese auf Englisch
eingestellt ist.
Ablagebank (rack) Jeder Spieler besitzt eine Ablagebank. Auf dieser liegen bis zu 7 Spielsteine,
welche direkt nach dem Legen eines Wortes wieder aufgefüllt werden.
Beobachter (observer) Ein Beobachter ist ein Client, der sich ein Spiel ansieht, ohne in dieses
einzugreifen.
Beutel (bag) Der Beutel enthält die Spielsteine, welche noch nicht auf dem Spielbrett oder der
Ablagebank eines Spielers liegen. Aus diesem Beutel können die Spieler neue Steine nachziehen.
Blankostein (blank tile) Ein Blankostein ist ein besonderer Spielstein, der als Joker fungiert. Er kann
für jeden beliebigen Buchstaben eingesetzt werden kann. Beim Legen weist der Spieler dem
Stein einen Buchstaben zu, den er während des ganzen Spieles behält. Blankosteine geben keine
Punkte.
Client Clients melden sich am Server an um Spiele zu beobachten oder selbst mitzuspielen.
Doppelter / dreifacher Buchstabenwert (double-letter / triple-letter) Felder können einen doppel-
ten oder dreifachen Buchstabenwert haben. Solche Felder gehören zu den Premiumfelder. Die
Punkte eines Spielsteins werden mit zwei bzw. drei multipliziert, wenn dieser Spielstein auf
einem solchen Feld liegt.
Doppelter / dreifacher Wortwert (double-word / triple-word) Felder können einen doppelten oder
dreifachen Wortwert haben. Solche Felder gehören zu den Premiumfelder. Die Punkte des
gesamten Wortes werden mit zwei bzw. drei multipliziert, wenn ein Spielstein des Wortes auf
einem solchen Feld liegt.
Feld (cell) Ein einzelnes Feld ist ein Teil des Spielbretts, auf dem ein Spielstein abgelegt werden
kann. Insgesamt gibt es zwei Arten von Feldern. Neben den normalen Feldern, gibt es zusätzlich
Premiumfelder, zu denen unter anderem auch das Startfeld gehört.
Game Engine Die Game Engine ist eine auf dem PC ausführbare Komponente der Software, die alle
Clients und Spiele verwaltet. Clients können sich an ihr anmelden und werden entsprechend
ihrer Rolle (Beobachter oder Spieler) behandelt.
Gewinnbedingung (winning condition) Wenn ein Spieler die Gewinnbedingung erfüllt, gewinnt er
das Spiel und beendet es damit. Die Gewinnbedingung kann sein, dass alle Spielsteine auf dem
Spielbrett gelegt sind, aber auch die Überschreitung einer Mindestanzahl an Punkten kann als
Gewinnbedingung festgelegt werden. Diese Mindestanzahl sollte nicht unter 25 Punkten liegen.
Host Der Host bedient den Server. Er kann Spiele erstellen, pausieren und beenden.
Kategorie (category) Der Server wählt für jedes Spiel eine Sprache oder eine Kategorie aus. Es
werden dann für dieses Spiel nur Wörter aus dieser Sprache bzw. Kategorie zugelassen. Beispiele
für Kategorien wären etwa „Pflanzen“, „Länder“ oder „Computer-Pioniere“.
KI-Spieler (AI player) Dies ist ein Spieler, der ohne einen menschlichen Benutzer mit dem Server
kommuniziert und spielt. KI steht für „künstliche Intelligenz“. Das bedeutet, dass er z.B. automatisch aus den auf seiner Ablagebank zur Verfügung stehenden Spielsteinen Wörter bildet und
auf das Spielbrett legt.
4
Komponente (component) Die Komponenten sind einzelne Teile der zu entwickelnden Software, die
dem Kunden zur Verfügung gestellt werden soll. Solche Komponenten sind der Spielkonfigurator,
die Game Engine, der KI-Spieler und der Smartphone-Spieler.
Modul (module) Ein Modul ist eine abgeschlossene Einheit innerhalb der Software, beispielsweise
die Darstellung des Spielbretts.
Netzwerk (network) Die Kommunikation zwischen Clients und Server funktioniert über ein lokales
Netzwerk (LAN) sowie über das Internet.
Nutzer (user) Die Nutzer sind die Anwender der Software. Sie können die Spiele verwalten, spielen
und beobachten. Sowohl Clients als auch Hosts sind Nutzer.
Premiumfeld (premium cell) Premiumfelder bringen mehr Punkte als andere Felder. Siehe Doppelter
/ dreifacher Buchstabenwert und Doppelter / dreifacher Wortwert
Runde (round) Unter einer Runde versteht man, dass jeder Spieler genau einmal am Zug war.
Server Der Server beinhaltet den Spielkonfigurator und die Game Engine.
Smartphone-Beobachter (smartphone observer) Dies ist ein Beobachter, der auf einem Smartpho-
ne ausgeführt werden kann.
Smartphone-Spieler (smartphone player) Dies ist ein Spieler, der auf einem Smartphone ausgeführt
werden kann.
Spieler (player) Ein Spieler ist ein Client, der an einer Scrabble-Partie aktiv teilnimmt.
Spielkonfigurator (configuration manager) Der Spielkonfigurator ist eine Komponente des Servers,
die erlaubt Spiele mit individuellen Einstellungen anzulegen. Das betrifft verschiedene Sprachen
oder Kategorien, Spielbretter und Gewinnbedingungen.
Spielbrett (board) Das Spielbrett ist ein Quadrat, das durch senkrechte und waagerechte Linien in
Felder aufgeteilt ist. Das Spielbrett und die darauf gebildeten Wörter können von allen Spielern
gesehen werden.
Spielstein (tile) Ein Spielstein hat einen Buchstaben und eine Punktzahl. Ausnahme ist dabei der
Blankostein. Je nach Sprache oder Kategorie kann dabei die Anzahl an Spielsteinen mit einem
bestimmten Buchstaben und die Punktzahl eines Buchstaben variieren. Spielsteine werden
benutzt um Wörter zu legen und dadurch Punkte zu erhalten.
Spielvariante (alternative game rules)
Spielzug (action) Wenn ein Spieler am Zug ist, muss er eine der folgenden Optionen ausführen:
Aussetzen bzw. Passen (pass) Der Spieler macht in diesem Spielzug nichts. Das Spielbrett
und die Ablagebank des Spielers ändern sich nicht. Der Spieler erhält keine Punkte. Diese
Option ist immer möglich.
Spielsteine tauschen (exchange tiles) Der Spieler kann einige seiner Spielsteine gegen Spiel-
steine aus dem Beutel eintauschen, sofern noch ausreichend Spielsteine im Beutel sind.
Das Spielbrett leibt unverändert und der Spieler erhält keine Punkte.
5
Spielen (play) Der Spieler legt mindestens einen Spielstein auf das Spielbrett, sodass ein gülti-
ges Wort entsteht. Dabei dürfen durch das Hinzufügen der Spielsteine keine ungültigen
Wörter entstehen, die Bedeutung der Wörter darf aber verändert werden. Der Spieler erhält
die Punkte aller Buchstaben, die mit den von ihm hinzugefügten Spielsteinen Wörter bilden,
gegebenenfalls durch Premiumfelder vervielfacht. Anschließend erhält der Spieler so viele
Spielsteine aus dem Beutel wie er gelegt hat, sofern noch ausreichend Spielsteine darin
enthalten sind.
Startfeld (central cell) Das Startfeld liegt in der Mitte des Spielbretts. Das erste gelegte Wort muss
einen Spielstein auf dem Startfeld haben. Das Startfeld ist ein Premiumfeld mit doppeltem
Wortwert.
Zug (action) Siehe Spielzug.
2.3 Modell des Problembereichs
Die Abbildung 2.2 zeigt die Struktur von Scrabble als UML-Klassendiagramm. Das Spiel selbst wird
durch die Klasse Scrabble darstellt.
An jedem Spiel nehmen 2 bis 4 Spieler teil, welche jeweils ihre beiden Nachbarspieler kennen,
sodass eine feste Zugreihenfolge entsteht.
Zu jedem Scrabblespiel gehört außerdem ein Wörterbuch, welches alle Wörter enthält, die gelegt
werden dürfen. Jedes dieser Wörter darf mehrmals auf dem Spielbrett liegen.
Ein Spielstein kann maximal zwei Wörter gleichzeitig bilden, da es nur zwei Leserichtungen gibt
(oben-unten und links-rechts).
Das Spielbrett besitzt eine variable Größe, muss jedoch immer quadratisch sein. Das heißt die Größe
des Feldes beschreibt die Länge einer Seite und das Quadrat dieses Wertes bestimmt die Anzahl der
Felder aus denen sich das Spielbrett zusammen setzt. Diese Felder können Premiumfelder sein, wobei
die Anzahl der erlaubten Premiumfelder durch die Größe des Spielfeldes begrenzt wird. Es muss genau
ein Startfeld existieren.
Sobald Spielsteine auf dem Spielbrett liegen müssen sie zu mindestens einem Wort gehören das
gebildet wird.
Der Blankostein besitzt die Besonderheit, das der Buchstabe erst festgelegt wird, wenn er auf dem
Spielbrett liegt.
2.4 Geschäftsprozesse
Im Folgenden werden die Abläufe, die in einem Scrabble-Spiel vorkommen, erläutert und durch
Aktivitätsdiagramme veranschaulicht. Ein Sternchen („*“) bedeutet dabei, dass auf den Punkt in einem
folgenden Abschnitt genauer eingegangen wird.
Betrachtet wird ein Spiel innerhalb eines Turniers, da dies dem Produkteinsatz am nächsten kommt.
Das heißt, es gibt einen Moderator (hier „Host “ genannt), der insbesondere den Spielaufbau organisiert.
2.4.1 Gesamtablauf
Wie in Abbildung 2.3 zu sehen, muss ein Spiel Scrabble zunächst aufgebaut werden, bevor es gespielt
werden kann. Dieser Aufbau wird im Abschnitt 2.4.2 genauer erläutert. Nach dem Aufbau machen die
Spieler, angefangen beim Startspieler, nacheinander ihren Spielzug. Wie genau ein Spielzug abläuft,
wird im Abschnitt 2.4.3 beschrieben. Nach jedem Zug wird geprüft, ob das Spiel zu Ende ist:
6
Abbildung 2.2: Modell des Problembereichs
7
• Wurde eine Punktegrenze als Siegbedingung spezifiziert, wird diese überprüft. Hat der Spieler
sie überschritten, gewinnt er sofort.
• Das Spiel ist ebenfalls beendet, wenn ein Spieler alle seine Steine gelegt hat und nicht mehr
nachziehen kann (d.h. seine Ablagebank ist nach seinem Zug leer). Dieser Spieler bekommt die
Summe der Buchstabenwerte der nicht gelegten Steine aller anderen Spieler gutgeschrieben.
• Zudem ist das Spiel auch dann beendet, wenn alle Spieler zwei Runden über nacheinander
gepasst haben.
In den beiden letzten Fällen werden außerdem allen Spielern, die noch Steine auf ihrer Ablagebank
haben, die Summe der Buchstabenwerte dieser Steine vom Punktestand abgezogen. Es gewinnt dann
der Spieler mit den meisten Punkten
Ist das Spiel hingegen noch nicht beendet, ist der nächste Spieler an der Reihe.
Abbildung 2.3: Gesamtablauf eines Scrabble-Spiels
8
2.4.2 Aufbau
Um ein Turnierspiel zu spielen, melden sich zunächst potenzielle Mitspieler beim Host an. Möchte
der Host ein Spiel starten, wählt er zunächst eine geeignete Spielkonfiguration: Er bestimmt die
Mitspieler und deren Sitzreihenfolge, die Siegbedingung, die Beschaffenheit des Spielfeldes und das
zugrundeliegende Wörterbuch (entweder ein Wörterbuch einer normalen Sprache, oder ein Wörterbuch
mit Begriffen einer spezifischen Kategorie). Das alles geschieht in beliebiger Reihenfolge (siehe
Abbildung 2.4).
Nachdem die Konfiguration gewählt ist, wird den Mitspielern mitgeteilt, dass das Spiel nun beginnen
kann. Alle Spieler ziehen jetzt noch sieben Steine und die ersten Spielzüge können durchgeführt
werden.
Abbildung 2.4: Aufbau eines Scrabble-Spiels
9
2.4.3 Spielzug durchführen
Wie in Abbildung 2.5 dargestellt, hat ein Spieler drei Optionen, wenn er am Zug ist: Er kann einfach
passen, er legt regelkonform Spielsteine auf das Spielfeld (siehe Abschnitt 2.4.4), oder er tauscht
beliebig viele seiner Steine mit dem Beutel (sofern noch genügend Steine im Beutel sind).
Abbildung 2.5: Spielzug durchführen
2.4.4 Spielsteine legen
Legt ein Spieler Spielsteine, wird zunächst überprüft, ob dies ein gültiger Spielzug ist (ob die Steine in
einer Reihe liegen, das Wort im Wörterbuch steht, etc.). Ist der Zug ungültig, muss er die Steine wieder
zurücknehmen und einen neuen Spielzug machen. Andernfalls werden die Punkte für die gelegten
Steine berechnet (siehe Abschnitt 2.4.5) und dem Punktestand des Spielers gutgeschrieben. Danach
zieht er Steine nach bis er sieben hat, oder bis der Beutel leer ist (siehe Abbildung 2.6).
2.4.5 Punkte berechnen
Abbildung 2.7 zeigt, wie die Punkte des Spielzugs berechnet werden: Zunächst werden die doppelten /
dreifachen Buchstabenwerte angewandt, auf denen die neuen Steine liegen. Danach werden nacheinander alle neu entstandenen bzw. veränderten Worte betrachtet. Um jeweils den Wortwert zu ermitteln,
werden alle Buchstabenwerte addiert und dann alle doppelten / dreifachen Wortwerte angewandt, die
durch die gerade gelegten Steine überdeckt wurden.
Die Wortwerte werden zusammengezählt um schließlich zu ermitteln, wie viele Punkte der Spieler
mit diesem Spielzug gemacht hat.
10
Abbildung 2.6: Spielsteine legen
Abbildung 2.7: Punkte berechnen
11
3 Produktfunktionen
3.1 Die Use-Cases des Servers
Der Server besteht aus der Game-Engine und dem Spielkonfigurator. Der Host-User und die Spielsteuerung treten im Folgenden als Aktoren auf. Die Spielsteuerung wird deswegen als Aktor angesehen,
weil sie ohne weitere Einwirkungen des Hosts selbstständig Züge überprüfen und von an Spielen
beteiligten Spielern Züge anfordern kann.
Abbildung 3.1: Use-Cases für den Server
Abbildung 3.1 zeigt die 4 Use-Cases des Servers, aufgeteilt auf Game Engine und Spielkonfigurator.
Dies sind alle Use-Cases, die innerhalb der Systemgrenze des Scrabble-Servers möglich sind.
12
3.1.1 Zug überprüfen
Abbildung 3.2: Überprüfen eines Zuges
Beschreibung
Der in Abbildung 3.2 gezeigte Use-Case erläutert, wie das Überprüfen eines Zuges strukturiert sein
soll. Dabei wird der gegebene Zug erst überprüft und anschließend ausgeführt, wenn er gültig war. Zum
Schluss möchte die Spielsteuerung noch die beteiligten Spieler und Beobachter über die Änderungen
am Spiel informieren. Falls der momentane Zug das Spiel beendet, weil ein Spieler gewonnen hat so
wird dies auch mitgeteilt.
Charakteristische Informationen
Name
Primärer Nutzer
Ziel(des Nutzers)
Vorbedingung
Nachbedingung (bei Erfolg)
Auslösendes Ergebnis
Systemgrenze
Beteiligte Nutzer
Zug überprüfen
Spielsteuerung
Überprüfen, ob ein gegebener Zug legitim ist
Server hat einen Zug übermittelt bekommen
Der Zug wird auf das Spiel übertragen
Spieler und Beobachter werden über Änderung informiert
Scrabble -Server
Spielsteuerung
13
3.1.1.1 Hauptszenario
Nummer
1
2
3
Nutzer
Spielsteuerung
Spielsteuerung
Spielsteuerung
4
Spielsteuerung
Aktivität
Erhält einen Zug
Überprüft Zug
Führt Änderungen am laufenden Spiel
innerhalb der Game Engine durch
Schickt Informationen über den neuen
Spiel-Zustand an Spieler und Beobachter
3.1.1.2 Alternativszenario - Spielzug ist nicht legal (Alternative zu 2)
Nummer
2.1
2.2
Nutzer
Spielsteuerung
Spielsteuerung
Aktivität
Erkennt, dass der angegebene Spielzug nicht legal ist
Fordert neuen Zug vom momentanen Spieler an
3.1.2 Spiel erstellen
Abbildung 3.3: Erstellen eines Spiels
Beschreibung
Das Diagramm in Abbildung 3.3 beschreibt, wie der Host ein Spiel einrichtet und erstellt. Dieses
Diagramm basiert auf den folgenden Szenariotabellen, welche die Struktur des Erstellen eines Spieles
wiedergeben. Dabei wird zuerst ausgehend vom Host-User eine Spielerstellung bei der Spielsteuerung
beantragt. Eine gültige Spielkonfiguration muss dabei der Spielsteuerung übergeben werden. Die
Steuerung erstellt nun darauf ein Spiel und fordert den jeweiligen Startspieler auf, seinen ersten Zug
zu machen.
14
3.1.2.1 Charakteristische Information
Name
Primärer Nutzer
Ziel(des Nutzers)
Vorbedingung
Nachbedingung (bei Erfolg)
Auslösendes Ergebnis
Systemgrenze
Beteiligte Nutzer
Spiel erstellen
Spielsteuerung
Ein neues Spiel innerhalb der Game-Engine initialisieren
Host hat eine gültige Spielkonfiguration sowie eine
Liste von Mitspielern und Beobachtern übermittelt
Game Engine erstellt ein neues Spiel, welches parallel
zu bestehenden Spielen läuft.
Die Spielsteuerung fordert den ersten Zug vom Startspieler an.
Scrabble -Server
Host, Spielsteuerung
3.1.2.2 Hauptszenario
Nummer
1
2
3
4
5
6
Nutzer
Host
Host
Host
Host
Spielsteuerung
Spielsteuerung
7
8
Spielsteuerung
Spielsteuerung
Aktivität
Host möchte ein neues Spiel starten
Host wählt Spieler aus
Host legt Startspieler fest
Host übermittelt Informationen
Erstellt das Spiel aus der Konfigurationsdatei
Gibt die ausgewählte Spielkonfiguration allen
Spielern und Beobachtern bekannt
Wartet 10 Sekunden
Fordert den festgelegten Startspieler auf seinen Zug zu machen
3.1.2.3 Alternativszenario 1 - Startspieler ist nicht spezifiziert(Alternative zu 3)
Nummer
3.1
3.2
Nutzer
Host
Host
Aktivität
Wählt einen Startspieler zufällig aus
Zurück zu 4
3.1.2.4 Alternativszenario 2 - Timeout für KI wird eingeschaltet(Alternative zu 4)
Nummer
4.1
4.2
Nutzer
Host
Host
Aktivität
Schaltet 5-Sekunden Timeout für KI ein
Zurück zu 4
3.1.3 Spiel kontrollieren
Beschreibung
Das gezeigte Diagramm (Abbildung 3.4) beschreibt, wie der Host das Spiel manipulieren kann. Dieses
Diagramm ist auf den folgenden Szenariotabellen basiert, welche den Prozess der Manipulation des
Spieles durch den Host wiedergeben. Der Host soll zu einem beliebigen Zeitpunkt in der Lage sein,
ein beliebiges Spiel zu pausieren, wieder fortzusetzen oder ganz zu beenden. Alle Mitspieler und
Beobachter werden über diese Änderungen informiert.
15
Abbildung 3.4: Kontrollieren eines Spiels
Charakteristische Informationen
Name
Primärer Nutzer
Ziel(des Nutzers)
Vorbedingung
Nachbedingung (bei Erfolg)
Auslösendes Ergebnis
Systemgrenze
Beteiligte Nutzer
Spiel kontrollieren
Spielsteuerung
Das momentan ausgewählte Spiel mit dem jeweiligen Befehl
manipulieren
Host hat der Spielsteuerung den jeweiligen Befehl übermittelt
sowie eine Kennung für das Spiel, das manipuliert werden soll
Der Zustand des momentanen Spiels verändert sich
Spieler und Beobachter werden über Änderung informiert
Scrabble -Server
Spielsteuerung, Host
3.1.3.1 Hauptszenario 1 - Pausieren
Nummer
1.1
1.2
1.3
Nutzer
Host
Spielsteuerung
Spielsteuerung
Aktivität
Drückt Spiel pausieren
Pausiert Spiel
Benachrichtigt alle Clients
3.1.3.2 Alternativszenario 1 Spiel ist bereits pausiert (Alternative zu 1.2)
Nummer
1.2.1
1.2.2
16
Nutzer
Spielsteuerung
Spielsteuerung
Aktivität
Erkennt, dass das Spiel bereits pausiert ist
Benachrichtigt Host
3.1.3.3 Hauptszenario 2 - Spiel fortsetzen
Nummer
2.1
2.2
2.3
2.3
Nutzer
Host
Spielsteuerung
Spielsteuerung
Spielsteuerung
Aktivität
Drückt Spiel fortsetzen
Setzt Spiel fort
Benachrichtigt alle Clients
Fordert den Spieler, der aktuell am Zug ist auf,
seinen nächsten Zug zu machen.
3.1.3.4 Alternativszenario 2 - Spiel ist bereits am spielen (Alternative zu 2.2)
Nummer
2.2.1
2.2.2
Nutzer
Spielsteuerung
Spielsteuerung
Aktivität
Erkennt, dass das Siel bereits läuft
Benachrichtigt Host
3.1.3.5 Hauptszenario 3 - Spiel beenden
Nummer
3.1
3.2
3.3
Nutzer
Host
Spielsteuerung
Spielsteuerung
Aktivität
Drückt Spiel beenden
Beendet das Spiel
Benachrichtigt alle Clients
3.1.4 Spielkonfiguration erstellen
Beschreibung
In dieser Use-Case Tabelle und den dazugehörigen Abbildungen 3.5 und 3.6 wird erläutert, wie das
Erstelllen einer Spielkonfiguration strukturiert ist. Dabei lässt sich in der Spielkonfiguration eine
Vielzahl von Einstellungen treffen, die gespeichert und letzten Endes in einer Konfigurationsdatei
ausgegeben werden. Diese Datei soll dann später der Gameengine übergeben werden.
Charakteristische Informationen
Name
Primärer Nutzer
Ziel(des Nutzers)
Vorbedingung
Nachbedingung (bei Erfolg)
Auslösendes Ergebnis
Systemgrenze
Beteiligte Nutzer
Spielkonfiguration erstellen
Host
Eine neue Spielkonfiguration innerhalb erstellen
Host weiß, welche Konfiguration er erstellen möchte
Host hat eine vollständige Spielkonfiguration zur Verfügung
Es wird kein Ereignis ausgelöst
Scrabble -Server
Host
3.1.4.1 Hauptszenario
Bemerkung: Alle Auswahlschritte (2-7) können jeweils ausgelassen werden. Die Konfiguration enthät
in diesen Fällen Standardwerte für jede Auswahl.
17
Nummer
1
2
3
4
5
6
7
8
Nutzer
Host
Host
Host
Host
Host
Host
Host
Host
Aktivität
Erstellt eine neue Spielkonfiguration im Spielkonfigurator
Wählt den Spielmodus aus (natürliche oder spezifische Sprache)
Wählt eine Sprache innerhalb des jeweiligen Modus aus
Wählt eine Spielbrettgröße aus
Wählt eine Verteilung von Sonderfeldern aus
Wählt eine Verteilung von Spielsteinen inklusive der Punkte aus
Wählt eine Gewinnbedingung aus
Erzeugt aus den vorherigen Eingaben eine Konfigurationsdatei
Abbildung 3.5: Erstellen einer Spielkonfiguration
18
Abbildung 3.6: Bearbeiten von Kategorien
3.2 Die Use-Cases des Clients
Der Client umfasst die Use-Cases der Android-Beobachter und Spieler, der PC-Beobachter und Spieler
sowie die des KI-Spielers. Zusätzlich tritt der Server als Aktor auf, da innerhalb des Servers die GameEngine von Spielern einen Zug anfordert und der Server alle Verbindungen sowie den Spielablauf
steuert, leitet und protokolliert.
In Abbildung 3.7 sieht man die einzelnen Use-Cases. Es wird zwischen Beobachter, Spieler und KI
unterschieden. Beobachter bilden dabei einen Aktor, von dem Spieler und dadurch auch KI ableiten,
denn jeder Client muss die Use-Cases ’mit Server verbinden’ und ’Spiel abschließen’ durchführen.
Schließlich ist die KI eine Ableitung vom Spieler.
19
Abbildung 3.7: Use-Cases für Beobachter, Spieler und K.I.
3.2.1 Mit Server verbinden
Abbildung 3.8: Mit Server verbinden
Beschreibung
Der in Abbildung 3.8 dargestellte Use-Case erläutert, wie sich ein Nutzer mit dem Server verbindet
und in die Lobby eintritt.
20
Charakteristische Informationen
Name
Primärer Nutzer
Ziel(des Nutzers)
Vorbedingung
Nachbedingung
Auslösendes Ergebnis
Systemgrenze
Beteiligte Nutzer
mit Server verbinden
Nutzer
Sich mit dem Server zu verbinden
Der Nutzer ist aktiv
Der Nutzer ist mit dem Server verbunden
Nutzer sendet eine Anfrage an den Server
Client
Server, Beobachter ,Spieler, KI
3.2.1.1 Hauptszenario
Nummer
1
2
3
Nutzer
Nutzer
Server
Nutzer
Aktivität
Kontaktanfrage an Server senden
Der Nutzer wird in die Kontaktliste aufgenommen
startet Lobby-GUI
3.2.2 Zug durchführen
Beschreibung
Der Use-Case in Abbildung 3.9 beschreibt, wie ein Zug durchgeführt wird. Dabei hat der Spieler
die Wahl, ob er Spielsteine auf das Spielbrett legt, Spielsteine austauscht oder den Zug aussetzt. Das
Hauptszenario ist ein von einem Spieler durchgeführter Zug, in dem dem er neue Spielsteine in gültiger
Weise auf das Spielbrett gelegt hat.
Charakteristische Informationen
Name
Primärer Nutzer
Ziel des Nutzers
Vorbedingung
Nachbedingung bei Erfolg
Auslösendes Ereignis
Umgebende Systemgrenze
Beteiligte Nutzer
Zug durchführen
Spieler
Einen Spielzug durchführen, der nicht regelwidrig ist
Der Spieler ist an der Reihe
Der Spieler hat seinen Zug durchgeführt
Der Zug des Spielers wird durch den Server angefordert
Client
Server
3.2.2.1 Hauptszenario
Anmerkung: Zu jedem Zeitpunkt ist es einem Spieler möglich, das Spiel zu verlassen (ob selbst
veranlasst oder durch andere Umstände, wie z.B. Verlust der Verbindung).
Nummer Nutzer Aktivität
1
Server Zug anfordern
2
Spieler Legt Spielsteine auf das Spielbrett
3
Spieler Betätigt Schaltfläche ’Zug durchführen’
4
Server Zug überprüfen
5
Client
Spielsteine aus dem Beuten ziehen (wenn möglich)
21
Abbildung 3.9: Zug durchführen
3.2.2.2 Alternativszenario 1 - Der Spieler möchte Spielsteine tauschen (Alternative zu 2)
Nummer
2.1.1
2.1.2
2.1.3
2.1.4
Nutzer
Spieler
Spieler
Client
Aktivität
Wählt Spielsteine aus, die er austauschen möchte
Betätigt Schaltfläche ’Spielsteine tauschen’
Ausgewählte Spielsteine in den Beutel legen
Weiter mit 5
3.2.2.3 Alternativszenario 2 - Der Spieler möchte aussetzen (Alternative zu 2)
Nummer
2.2.1
22
Nutzer
Spieler
Aktivität
Betätigt Schaltfläche ’Aussetzen’
3.2.2.4 Alternativszenario 3 - Der Spieler ist eine KI und übertritt den festgelegten Timeout
(Alternative zu 3)
Nummer
3.1
Nutzer
Server
Aktivität
Ausschluss vom Spiel
3.2.2.5 Alternativszenario 4 - Der Spielzug war nicht gültig (Alternative zu 4)
Nummer
4.1
4.2
Nutzer
Client
Aktivität
Fehler anzeigen: ’Der durchgeführte Zug ist ungültig!’
Weiter mit 2
3.2.3 Spiel abschließen
Abbildung 3.10: Spiel Abschließen
Beschreibung
Der Use-Case in Abbildung 3.10 beschreibt die Möglichkeiten der Nutzer aus einem Spiel auszutreten.
Ein Beobachter kann jederzeit aus einem Spiel austreten. Wenn ein Spieler austreten will muss erst
überprüft werden ob das Spiel zu ende ist oder mit den restlichen Spielern fortgesetzt werden kann,
wenn ein Spieler aus einem nicht beendeten Spiel austreten will.
23
Charakteristische Informationen
Name
Primärer Nutzer
Ziel(des Nutzers)
Vorbedingung
Nachbedingung
Auslösendes Ergebnis
Systemgrenze
Beteiligte Nutzer
Spiel abschließen
Nutzer
Aus dem Spiel auszutreten
Der Nutzer ist in einem Spiel
Der Nutzer verlässt das Spiel
Nutzer betätigt den Beenden Button
Client
Beobachter ,Spieler, KI , Server
3.2.3.1 Hauptszenario
Nummer
1
2
3
4
5
Nutzer
Nutzer
Server
Nutzer
Server
Server
Aktivität
Nutzer betätigt den Spiel verlassen Button
Server prüft ob das Spiel dadurch beendet werden muss
Nutzer verlässt das Spiel
Server beendet das Spiel falls weniger als 2 Spieler verbleiben
Server zeigt Ergebnistabelle an
3.2.4 Spiel Auswählen
Abbildung 3.11: Ein Spiel auswählen
Beschreibung
In diesem Use-Case (siehe Abbildung 3.11) wird erläutert, wie ein Spieler einem Spiel beitreten kann.
Charakteristische Informationen
Name
Primärer Nutzer
Ziel (des Nutzers)
Vorbedingung
Nachbedingung (bei Erfolg)
Auslösendes Ergebnis
Systemgrenze
Beteiligte Nutzer
24
Spiel auswählen
Spieler
einem Spiel beizutreten
Spieler ist mit dem Server verbunden
Der Server startet das Spiel
Der Spieler wählt Spiele zum beitreten aus
Client
Spieler, Server
3.2.4.1 Hauptszenario
Nummer
1
2
3
Nutzer
Spieler
Spieler
Spieler
Aktivitaet
betritt Spiele Lobby
wählt Spiele aus denen er beitreten möchte
betätigt registrieren Button
3.3 Die Oberfläche
3.3.1 Der Spielkonfigurator
Abbildung 3.12: Hauptfenster des Spielkonfigurator
In Abbildung 3.12 ist der Spielkonfigurator zu sehen. Dieser bietet eine große Vorschau des Spielbretts und ermöglicht über Buttons Premiumfelder hinzuzufügen. Außerdem können hier die Spielbrettgröße, die Gewinnbedingung und die Sprache bzw. Kategorie des Spiels eingestellt werden.
Über den Spielkonfigurator kann man auch neue Kategorien erstellen bzw. vorhandene bearbeiten.
Abbildung 3.13 zeigt das Fenster, in dem man die Wörter der Kategorie betrachten, einzelne entfernen
und neue hinzufügen kann. Außerdem kann man der Kategorie einen Namen geben. Schließlich lässt
sich hier bestimmen, wie viele Spielsteine eines Buchstabens es in dieser Kategorie geben soll und wie
viele Punkte diese Wert sind.
3.3.2 Die Game Engine
Abbildung 3.14 zeigt die Game Engine, wo man ein Spiel erstellen kann. Man kann hier Spieler
auswählen, die an dem Spiel teilnehmen dürfen.
Wenn man die Runde startet, wird der Status auf „laufend“ gesetzt, die Spieler, die sich registriert
haben werden ausgegraut und „Start Spiel“ durch „Pausiere Spiel“ ersetzt.
25
Abbildung 3.13: Fenster des Spielkonfigurator um Kategorien hinzuzufügen
Abbildung 3.14: Benutzeroberfläsche der Game Engine
Der Button zum Hinzufügen eines Spielers zum Spiel wird deaktiviert, wenn das Spiel begonnen
hat. Der Button zum Bannen nicht, um Spieler nachträglich noch bannen zu können.
3.3.3 Der Smartphone-Spieler
In Abbildung 3.15 befindet sich die Abbildung der Benutzeroberfläche des Smartphone-Spielers beim
Aussuchen eines Spieles. Der Spieler kann sich die Informationen über ein noch nicht gestartetes Spiel
ansehen und sich für mehrere Spiele anmelden.
Falls der Spieler in ein Spiel hinzugefügt wird, zeigt Abbildung 3.16 die Benutzeroberfläche
zum laufendem Spiel. Der Spieler hat die Möglichkeit den Spielzug-Timeout (falls verwendet), die
Punktetabelle, und seine Spielstein einzusehen. Zusätzlich kann er ein oder mehrere Spielsteine
auswählen oder die Auswahl eines Steines wieder aufheben. Falls ein einziger Spielstein ausgewählt
wurde, kann dieser auf ein Feld des Spielbrett gelegt werden. Ein gelegter Spielstein kann wieder
26
aufgesammelt werden. Der Spieler kann demnach:
• sein Spielzug spielen, falls er einen Spielstein auf das Spielfeld gelegt hat.
• oder Spielsteine tauschen, falls er einen oder mehrere Spielsteine selektiert hat aber keinen
Spielstein gelegt hat.
• ansonsten kann er seinen Spielzug passen.
Diese Aktionen werden durch den Action-Button ausgeführt, dessen Text sich je nach möglicher
Aktion anpasst.
Abbildung 3.15: Benutzeroberfläche zum Aussuchen eines Spieles
Abbildung 3.16: Spielansicht des Smartphone-Spielers
27
4 Produktcharakteristiken
Der Abschnitt Produktcharakteristiken legt die Mindestanforderungen sowohl für die Software- als
auch für die Hardwareumgebung fest. Des Weiteren werden die nicht-funktionalen Anforderungen an
die Software beschrieben.
4.1 Systemumgebung
Damit das Scrabble-Spiel optimal ausgeführt werden kann, werden gewissen Anforderungen an die
Systemumgebung gestellt. Eine Maschine, auf dem eine Komponente des Projekts ausgeführt werden
soll, muss diese Anforderungen erfüllen.
Für den Produkttest steht sowohl ein PC, als auch ein Smartphone bereit. Die Hardware ist für
Entwickler, als auch für unabhängige Tester in unserem Unternehmen frei zugänglich.
Die PC-Konfiguration besteht dabei aus einem x86-Prozessor mit 2GHz Taktfrequenz, 1GB Arbeitsspeicher auf dem das Betriebssystem Windows XP läuft. Der angeschlossene Bildschirm verfügt
über eine Auflösung von 1366x768 Pixeln (16:9-Format). Das Smartphone besitzt einen 1GHz ARMProzessor mit 512MB Arbeitsspeicher und Android 4.0.
4.1.1 Softwareumgebung
Die auf einem PC ausführbaren Komponenten (Spielkonfigurator, Game Engine & KI-Spieler) werden
in der Programmiersprache Java entwickelt. Folgende Software sollte vorhanden sein:
• Java SE 7
• Eclipse Kepler (4.3.2)
• Betriebssystem:
– Windows: XP oder höher mit installiertem JRE 7 oder neuer
– Linux: alle, auf denen JRE 7 oder neuer lauffähig ist
– Mac OS X
4.1.2 Hardwareumgebung
Eine Maschine, welche Komponenten der Software ausführt, sollte folgende Hardwareanforderungen
erfüllen:
• Intel-basierte x86- oder x86-64-Plattform mit 2GHz oder mehr
• 1 GB Arbeitsspeicher
• 750 MB freier Festplattenspeicher
– (Neben unserer Software wird auch die Software Eclipse benötigt)
28
4.1.3 Android-Umgebung
Der Smartphone-Spieler wird für Android-Geräte ab Version 4.0 (API-level 15) entwickelt. Auf allen
Smartphones, auf denen diese Android-Version lauffähig ist, sollte auch das Scrabble-Spiel lauffähig
sein. Zusätzlich sollte auf dem Smartphone 50MB an freier Speicherkapazität vorhanden sein.
4.2 Nicht-funktionale Anforderungen
Name
Typ
Beschreibung
Use-Case
Name
Typ
Beschreibung
Use-Case
Name
Typ
Beschreibung
Use-Case
Name
Typ
Beschreibung
Use-Case
Erwartungskonformes Spielbrett
USE
Die Darstellung des Scrabble-Spielbrettes sollte erwartungskonform zum originalen Scrabble-Brettspiel sein. Insbesondere bedeutet das, dass die Repräsentation
des Spielbrettes zu mindestens 95% dem Original entspricht. Eine Überprüfung
dieser Anforderung kann durch nicht beteiligte Personen erfolgen, die mit dem
originalen Brettspiel vertraut sind.
Spielkonfiguration erstellen, Zug durchführen
Spielgeschwindigkeit an Benutzer ausrichten
USE
Nach Spielstart sollte eine angemessene Wartezeit vergehen, in der sich die aktiven
Spieler mit der gewählten Spielkonfiguration vertraut machen können. Im Spiel
selber sollten die aktiven Spieler die Spielgeschwindigkeit selbständig regeln
können. Insbesondere heißt dies, dass der Spieler in keinem seiner Spielzüge
weder durch Game-Engine, noch durch andere Spieler in Zeitdruck gebracht
werden kann. Bei optionaler Zeitbeschränkung für einen Spielzug entfällt diese
Anforderung.
Alle mit Benutzerbeteiligung
Intuitive Benutzerinteraktion
USE
Die Benutzeroberfläche des Scrabble-Spiels sollte für den Benutzer verständlich
sein. Damit ist gemeint, dass man die Software bedienen kann, ohne regelmäßig
das Benutzerhandbuch konsultieren zu müssen. Um dies sicherzustellen, sollten
mindestens 3 unabhängige Spieler ein Spiel absolvieren, um die Intuitivität zu
überprüfen.
Alle mit Benutzerbeteiligung
Bedienbarkeit der Smartphone-Software
USE
Im Speziellen gilt für die Android-Komponenten, dass diese auf einem Smartphone
mit einer Hand bedienbar sein soll. Eine zweite Hand sollte für die Bedienung also
nicht erforderlich sein. Dies kann durch mind. 3 Personen mit unterschiedlichen
Handgrößen validiert werden.
Alle mit Benutzerbeteiligung
29
Name
Typ
Beschreibung
Use-Case
Name
Typ
Beschreibung
Use-Case
Name
Typ
Beschreibung
Use-Case
Name
Typ
Beschreibung
Use-Case
Name
Typ
Beschreibung
Use-Case
30
Konformität in der Visualisierung zwischen Komponenten
USE
Die zu entwickelnden Komponenten sollten sich in Aussehen und Darstellung nicht
wesentlich unterscheiden. Dies fördert den Wiedererkennungswert und hilft dem
Benutzer bei der Bedienung der Software. Hierzu sollten mindestens 90% aller
unabhängigen Personen, die alle Komponenten zu sehen bekommen, erkennen,
dass es sich um unsere Software handelt.
Betrifft alle Use-Cases
Zugberechnung KI-Spieler
EFFIZIENZ
Der Algorithmus für die Berechnung eines Zuges des KI-Spielers darf nicht länger
als dem gesetztem Timeout benötigen. In der Regel sollte dies an den Timeout
von 5 Sekunden angepasst sein. Eine Überprüfung kann durch eine Simulation
von mindestens 1000 Zügen mit einer Stoppzeit durchgeführt werden. Dabei darf
keine Simulation länger als 5 Sekunden andauern.
Zug durchführen, Zug übermitteln
Beschränkte Systemrechte
SICHER
Alle Komponenten der Scrabble-Variante sollten mit eingeschränkten Systemrechten ausführbar sein. Insbesondere bedeutet dies, dass keinem Programmteil Administratorrechte gewährt werden. Ein Test kann beispielsweise auf einer
Linux-Distribution ausgeführt werden, bei dem der ausführende Benutzer nicht im
SSuper-UserModus läuft.
Betrifft alle Use-Cases
Software soll stabil sein
SICHER
Die Komponenten sollten fehlertolerant gegenüber Ausnahmen sein. So sollte
das Verbinden zu einem Spiel bei bestehender Netzwerkverbindung problemlos
(insbesondere ohne Neustart der Hardware bzw. Neustart der Software) möglich
sein. Im Falle einer getrennten Verbindung vor Spielstart sollte ein erneutes Verbinden möglich sein. Während eines Spieles sollte die Software einen reibungslosen
Spielablauf gewährleisten. Insgesamt sollte es maximal bei einem von 100 Spielen
zu einem Verbindungsabbruch kommen.
Betrifft alle Use-Cases
Implementierungssprache Englisch
PFLEGE
Alle Abgaben, die im Zusammenhang mit der eigentlichen Implementierung der
Software stehen, sind ausschließlich in Englisch verfasst.
Betrifft alle Use-Cases
Name
Typ
Beschreibung
Use-Case
Name
Typ
Beschreibung
Use-Case
Implementierungsdokumentation (Codedokumentation)
PFLEGE
Die Implementierung der Software ist durch geeignete Kommentierung des Quellcodes zu vervollständigen. Geeignet zeichnet sich dadurch aus, dass nur hilfreiche
Kommentare eingebracht werden. Information, die bereits aus einer ordentlichen
Variablen- und Funktionsbenennung gewonnen werden können, sind keine hilfreichen Kommentare. Diese Kommentierung sollte sich zu jeder Zeit an den
Javadoc-Standard halten.
Betrifft alle Use-Cases
Wiederverwendbarkeit der Module
PFLEGE
Programmstruktur sollte modular aufgebaut sein, sodass die einzelnen Module einfacher gepflegt und bei Bedarf ausgetauscht werden können. Gleichzeitig
sorgt die Modularisierung für Wiederverwendbarkeit zwischen Komponenten. Dadurch erhöht sich der Wiedererkennungswert zwischen den Komponenten unseres
Unternehmens.
Betrifft alle Use-Cases
31
Abbildungsverzeichnis
32
2.1
2.2
2.3
2.4
2.5
2.6
2.7
Beschreibung des Problembereichs: Ein Scrabble-Spielfeld
Modell des Problembereichs . . . . . . . . . . . . . . . .
Gesamtablauf eines Scrabble-Spiels . . . . . . . . . . . .
Aufbau eines Scrabble-Spiels . . . . . . . . . . . . . . . .
Spielzug durchführen . . . . . . . . . . . . . . . . . . . .
Spielsteine legen . . . . . . . . . . . . . . . . . . . . . .
Punkte berechnen . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
7
8
9
10
11
11
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
3.10
3.11
3.12
3.13
3.14
3.15
3.16
Use-Cases für den Server . . . . . . . . . . . . . . . . . .
Überprüfen eines Zuges . . . . . . . . . . . . . . . . . . .
Erstellen eines Spiels . . . . . . . . . . . . . . . . . . . .
Kontrollieren eines Spiels . . . . . . . . . . . . . . . . . .
Erstellen einer Spielkonfiguration . . . . . . . . . . . . .
Bearbeiten von Kategorien . . . . . . . . . . . . . . . . .
Use-Cases für Beobachter, Spieler und K.I. . . . . . . . .
Mit Server verbinden . . . . . . . . . . . . . . . . . . . .
Zug durchführen . . . . . . . . . . . . . . . . . . . . . .
Spiel Abschließen . . . . . . . . . . . . . . . . . . . . . .
Ein Spiel auswählen . . . . . . . . . . . . . . . . . . . . .
Hauptfenster des Spielkonfigurator . . . . . . . . . . . . .
Fenster des Spielkonfigurator um Kategorien hinzuzufügen
Benutzeroberfläsche der Game Engine . . . . . . . . . . .
Benutzeroberfläche zum Aussuchen eines Spieles . . . . .
Spielansicht des Smartphone-Spielers . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
12
13
14
16
18
19
20
20
22
23
24
25
26
26
27
27