Gruppenarbeit Mechatronik Trinational, Promotion Eiffel, Herbstsemester 2020
Burtschy Alexis
Programmierer / GUI-Design
Bollinger Jérôme
Programmierer / Software Architekt
Kissling Mischa
Programmierer / SCRUM Master
Pröbsting Jonas
Programmierer / GUI-Design
Wyser Jennifer
Programmiererin / Product Owner
- Einleitung
- Ziel
- Randbedingungen
- Definition of Ready DoR
- Definition of Done DoD
- Build-Anleitung
- Bedienungsanleitung
- User Stories
- Releaseplan
- UML Packagediagramm und Klassendiagramm
- Dokumentation Sprint 1
- Dokumentation Sprint 2
- Dokumentation Sprint 3
Dieses Git-Repository ist im Rahmen der Gruppenarbeit in den Kursen Software Engineering und Informatik II entstanden. Die Aufgabenstellung besteht darin, ein Java- beziehungsweise ein JavaFX Programm zu erstellen. Man soll es über GitHub herunterladden können, um es auf dem Desktop eines Computers zu spielen. Wir haben uns dazu entschieden, Memory, ein in der Praxis sehr einfaches Spiel zu digitalisieren.
Im Rahmen des Modules Software Engineering und Informatik II entwickeln wir Studierenden eine etwas komplexere Software, um den gelernten Stoff durch die Implemetierung einer lauffähigen Applikation zu vertiefen. Dabei wird die Komplexität der Applikation auf die individuellen Vorkenntnisse der Studierenden abgestimmt.
Programmiersprache
JAVA
Test Coverage
Mit Unit Tests mindestens 50%
Blackbox Testing
Manuell mit Testfällen und Protokoll
Source Code Management
GitHub
Git-Workflow
Vincent Driessen
Build Automation
Maven
Vorgehensmodell
SCRUM
Anforderungen
Epic und User Stories mit Akzeptanzkriterien
Aufwandschätzung
Story Points für User Stories und Stundenschätzungpro Sprint und Task
Langfristige Planung
Releaseplan
Kurzfristige Planung
Pro Sprint
Design Artefakte
UML - Unified Modelling Language
- Jedes Backlog Item ist für jeden Beteiligten klar verständlich
- Jedes Backlog Item ist geschätzt
- Jedes Backlog Item hat eine Priorisierung
- Jedes Backlog Item hat Akzeptanzkriterien
- Alle Akzeptanzkriterien wurden erfüllt
- Dokumentation wurde durchgeführt
- Laden Sie die .jar-Datei von unserem GitHub Repository herunter
- Entpacken Sie diese in den gewünschten Ordner
- Stellen Sie sicher, dass Sie ein Java Runtime Environment auf Ihrem Computer installiert haben
- Kopieren Sie den Pfad der gewünschten Versionsdatei (.jar) in die Zwischenablage
- Öffnen Sie die Konsole Ihres Rechners
- Geben Sie dort java -jar gefolgt von dem kopierten Pfad ein
Beispiel: java -jar C:\Users\Max Mustermann\Downloads\trinat\memory.jar
- Bestätigen Sie ihre Eingabe mit Enter
Wenn das Spiel gestartet und die Benutzeroberfläche erscheint, können Sie nicht mehr viel falsch machen. Wählen Sie zwischen Solo- und Multiplayerspiel aus, danach die Spielgrösse und schon kann das Spiel starten. Im Multiplayermodus haben Sie die Möglichkeit, die Spielanzahl zu wählen und dementsprechend auch die Option, Namen einzugeben. Das Funktionsprinzip von Memory erläutern wir an dieser Stelle nicht weiter, das sollte soweit klar sein.
User Story Nr. | User Story | Akzeptanzkriterien | Storypoints | Priorität |
---|---|---|---|---|
1 | Als Spieler möchte ich das Solospiel auswählen um die Spielgrösse festzulegen | 1 Button um Spielmodus auszuwählen Weiterleitung zum Fenster der Spielfeldgrösse |
2 | 2 |
2 | Als Spieler möchte ich die Spielgrösse auswählen um das Spiel zu starten | min. 3 Buttons zur Spielfeldgrösse (4x4, 6x6, 8x8) Spiel startet mit entsprechender Grösse |
5 | 2 |
3 | Als Spieler möchte ich meine Spielzeiten sehen um im Solospiel meine Zeiten mit vorangegangenen zu vergleichen | Zeit wird fortlaufend im Spiel angezeigt Zeit ist korrekt |
13 | 4 |
4 | Als Spieler möchte ich den Multiplayer-Modus auswählen um die Spielart festzulegen | 1 Button für Multiplayermodus Weiterleitung zum Fenster der Spielfeldgrösse |
2 | 3 |
5 | Als Spieler möchte ich die Spieleranzahl auswählen um die Spielgrösse festzulegen | 3 Buttons zur Wahl der Spieleranzahl (2, 3, 4 Spieler) Startet Spiel mit der gewählten Anzahl an Spielern |
5 | 3 |
6 | Als Spieler möchte ich die Spielgrösse auswählen um das Spiel zu starten | min. 3 Buttons zur Spielfeldgrösse (6x6, 8x8, 10x10) Spiel startet mit entsprechender Grösse |
5 | 3 |
7 | Als Spieler möchte ich neben meinen Namen im Multiplayermodus eingeben und sehen, wie viele Punkte ich bereits erspielt habe | Entsprechende Anzahl an TextFields gemäss der Spieleranzahl Anzeige der Punkte pro Spieler während des Spieles |
8 | 2 |
8 | Als Spieler möchte ich nach einem Solospiel eine Rangliste mit den besten Ergebnissen sehen | Anzeige der besten 10 Resultate am Spielende eines Solospiels | 21 | 4 |
9 | Als Spieler möchte ich zu jedem Zeitpunkt ins Hauptmenü zurück um die Spieleinstellungen zu ändern | 1 Button welcher auf jedem Interface zu sehen ist Hauptmenü wird angezeigt |
3 | 2 |
10 | Als Spieler möchte ich Memory mit Bildern spielen um eine schönere Oberfläche zu haben | Min 50 Bilder für Spielgrösse 10x10 Jede Karte ist wenn sie aufgedeckt wird ein Bild Spielbrett verhält sich wie Memory |
8 | 2 |
11 | Als Spieler möchte ich mein Spiel pausieren um die Spielzeit gering zu halten, wenn ich vom Spiel weg muss | 1 Button um Spiel zu pausieren Pausebildschirm erscheint wenn Spiel pausiert |
8 | 4 |
12 | Als Spieler möchte ich eine Karte umdrehen um zu sehen was sich auf der Karte befindet | Ansicht der zugedeckten Karten Memoryverhalten |
21 | 1 |
13 | Als Spieler möchte ich ein Fenster um die Spielstatistiken zu sehen | Anzeige der Spielzeit, der gefundenen Paare und Anzahl Züge | 21 | 3 |
14 | Als Spieler möchte ich das Spiel jederzeit verlasssen können um das Spiel zu beenden | 1 Button um Spiel zu verlassen Spiel wird verlassen |
5 | 1 |
Velocity: 40 StoryPoints pro Iteration
Release 1 | Release 2 | Release 3 |
---|---|---|
User Story 1 | User Story 6 | User Story 3 |
User Story 2 | User Story 7 | User Story 8 |
User Story 4 | User Story 9 | User Story 11 |
User Story 5 | User Story 10 | |
User Story 12 | User Story 13 | |
User Story 14 | ||
39 Story Points | 45 Story Points | 42 Story Points |
Um eine höhere Auflösung der Bilder zu erhalten, haben Sie 2 Möglichkeiten:
- Bitte das Bild anklicken und herunterladen
- *.ucls Datei in Entwicklungsumgebung anschauen
1 Button um Spielmodus auszuwählen
Weiterleitung zum Fenster der Spielfeldgrösse
Task | Beschreibung | Zeitaufwand in Stunden |
---|---|---|
1.1 | GUI-Design, 1 Button für Spielmodus | 0.5 |
1.2 | Kontrollstruktur | 1 |
min. 3 Buttons zur Spielfeldgrösse (4x4, 6x6, 8x8)
Spiel startet mit entsprechender Grösse
Task | Beschreibung | Zeitaufwand in Stunden |
---|---|---|
2.1 | GUI-Design, min. 3 Buttons für Spielgrösse | 0.75 |
2.2 | Kontrollstruktur | 1.5 |
1 Button für Multiplayermodus
Weiterleitung zum Fenster der Spielfeldgrösse
Task | Beschreibung | Zeitaufwand in Stunden |
---|---|---|
4.1 | GUI-Design, 1 Button für Spielmodus | 0.75 |
4.2 | Kontrollstruktur | 2 |
3 Buttons zur Wahl der Spieleranzahl (2, 3, 4 Spieler)
Startet Spiel mit der gewählten Anzahl an Spielern
Task | Beschreibung | Zeitaufwand in Stunden |
---|---|---|
5.1 | GUI-Design, 3 Buttons für Spieleranzahl | 0.5 |
5.2 | Kontrollstruktur | 3 |
Ansicht der zugedeckten Karten
Memoryverhalten
Task | Beschreibung | Zeitaufwand in Stunden |
---|---|---|
12.1 | Kartenrücken programmieren | 4 |
12.2 | Logik einbinden | 6 |
12.3 | Gleiche Paare bleiben offen liegen | 2 |
12.4 | Karten werden bei Klick wieder zugedeckt | 3 |
1 Button um Spiel zu verlassen
Spiel wird verlassen
Task | Beschreibung | Zeitaufwand in Stunden |
---|---|---|
14.1 | GUI-Design, 1 Button für Spiel verlassen | 0.5 |
14.2 | Kontrollstruktur | 0.5 |
Im Sprint 1 wurde als erstes die Welcome Scene erstellt. Im Nachfolgenen Bild kann man den Code zu diesem Interface sehen
In diesem Sprint wurden folgende Tests durchgeführt:
- Hier wurde die US2 getestet. Mit dem Test wurde erfolgreich überprüft, ob das Spielfeld mit der ausgewählten Grösse richtig startet
- Erfolgreiche Überprüfung der US5. Das Spiel startet mit der gewünschten Spieleranzahl
- User Story 12 wurde in mehreren Punkten erfolgreich geprüft. Wenn 2 gleiche Karten aufgedeckt sind, bleiben sie offen liegen. Beim Neustart des Spiels wird das Feld neu generiert. Ebenfalls wurde überprüft, ob die Karten sich bei zwei ungleichen auch wieder kehren.
min. 3 Buttons zur Spielfeldgrösse (6x6, 8x8, 10x10)
Spiel startet mit entsprechender Grösse
Task | Beschreibung | Zeitaufwand in Stunden |
---|---|---|
6.1 | GUI-Design, min. 3 Buttons für Spielgrösse | 0.75 |
6.2 | Kontrollstruktur | 1.5 |
Entsprechende Anzahl an TextFields gemäss der Spieleranzahl
Anzeige des Spielernamens während des Spieles
Task | Beschreibung | Zeitaufwand in Stunden |
---|---|---|
7.1 | GUI-Design, TextFields für Namenseingabe | 2 |
7.2 | Kontrollstruktur | 3 |
1 Button welcher auf jedem Interface zu sehen ist
Hauptmenü wird angezeigt
Task | Beschreibung | Zeitaufwand in Stunden |
---|---|---|
9.1 | GUI-Design, 1 Button für Hauptmenü | 0.75 |
9.2 | Kontrollstruktur | 1 |
Min 50 Bilder für Spielgrösse 10x10
Jede Karte ist wenn sie aufgedeckt wird ein Bild
Spielbrett verhält sich wie Memory
Task | Beschreibung | Zeitaufwand in Stunden |
---|---|---|
10.1 | Bilder aussuchen, min. 50 Stk. | 1.5 |
10.2 | Karten aus Bildern fertigen | 1 |
10.3 | Events den Karten hinzufügen, Memoryverhalten | 4 |
Anzeige der Spielzeit, der gefundenen Paare und Anzahl Züge
Task | Beschreibung | Zeitaufwand in Stunden |
---|---|---|
13.1 | Momentane Statistik im GUI einbinden | 2 |
Im Sprint 2 stand das Interface des Multiplayer-Modus im Release Plan. Dieses wurde wie folgt umgesetzt
- Überprüfung der User Story 7, damit die richtige Anzahl Textfields erscheint und die Kontrolle ob auch Namen eingegben wurden
- Erfolgreicher Test der US10. Es sind immer 2 Bildpaare auf dem Spielfeld
Zeit wird fortlaufend im Spiel angezeigt
Zeit ist korrekt
Task | Beschreibung | Zeitaufwand in Stunden |
---|---|---|
3.1 | Zeit im GUI anzeigen | 0.5 |
3.2 | Zeit messen/berechnen | 1 |
Anzeige der besten 10 Resultate am Spielende eines Solospiels
Task | Beschreibung | Zeitaufwand in Stunden |
---|---|---|
8.1 | Spielstatistik speichern | 4 |
8.2 | Spielstatistiken der vergangenen Spiele lesen | 1.5 |
8.3 | Spielstatistiken der vergangenen Spiele ausgeben | 1.5 |
1 Button um Spiel zu pausieren
Pausebildschirm erscheint wenn Spiel pausiert
Task | Beschreibung | Zeitaufwand in Stunden |
---|---|---|
11.1 | GUI-Design | 0.5 |
11.2 | Kontrollstruktur (Zeit anhalten/fortsetzen) | 1.5 |
- Test, ob das Spiel wenn alle Paare aufgedeckt sind, endet
- Überprüfung, der Spielpunkte wurde erfolgreich durchgeführt