Wiki source code of Aufgabenstellung

Version 37.1 by Marco Grawunder on 2025/08/15 07:26

Hide last authors
Pascal Meyer 28.1 1 {{toc/}}
2
Pascal Meyer 1.1 3 Im Software Projekt soll ein Verständnis für die Probleme und Herausforderungen bei der Entwicklung großer Software Systeme entwickelt werden. Aus diesem Grund wird im Laufe des Jahres ein komplexes Softwaresystem in mehreren vollständigen Phasen (sog. Sprints) erstellt.
4
5 Dabei müssen neben der eigentlichen Softwareentwicklung auch eine Planung und Organisation erfolgen, die Ergebnisse dokumentiert werden und präsentiert werden.
6
Pascal Meyer 35.1 7 Die Aufgabe umfasst dabei i.d.R. die Adaption eines Brettspiels. Eine Liste mit allen bisher im Softwareprojekt umgesetzten Spiele ist [[hier>>doc:Main.Historisches.WebHome||anchor="HSpieleimSoftwareprojekt"]] zu finden.
Pascal Meyer 1.1 8
Pascal Meyer 1.3 9 {{warning}}
Pascal Meyer 2.2 10 **Achtung!**
Pascal Meyer 1.1 11
12 Bei allen Spielen gilt:
13
14 * Keine Freigabe vom Verlag, d.h. Web-Seite mit den Inhalten schützen (Passwort)
15 * Umsetzung (von Teilen) des Basisspiels
16 * Regeln dürfen vereinfacht und angepasst werden
17 * Adaption grundsätzlich erlaubt, bedeutet aber zusätzlicher Aufwand (... ohne, dass sich das deutlich in der Bewertung bemerkbar macht. Software Projekt, nicht Spiele Projekt ;-))
18 * KI als zusätzliches Feature
19 * Wie kann man das Brettspiel möglichst so nachbilden, dass der Spielspaß der Originalversion erhalten bleibt/verbessert wird? („Mogeln gehört nicht zum Spielspaß ;-)“)
20 * Kann man zusätzliche Dienste bieten?
21 * Müssen gewisse Aspekte angepasst werden?
22 * Sehr wichtig: Für die Mitspieler auf Nachvollziehbarkeit achten z.B. was für Aktionen hat der Gegner vorgenommen
Pascal Meyer 1.3 23 {{/warning}}
Pascal Meyer 1.1 24
Pascal Meyer 28.1 25 = Teilaufgabe 0 - Hardware und Software =
26
27 * Hardware: ARBI: Cluster (FreeBSD), eigene Notebooks
28 * Software
29 ** Java Entwicklungsumgebung
30 *** IntelliJ, Eclipse, Netbeans, ...
Pascal Meyer 35.1 31 ** Textverarbeitungssystem LaTeX oder GitLabs
Pascal Meyer 28.1 32 ** UML-Tool: z.B. Visual Paradigm
Pascal Meyer 35.1 33 ** Projektverwaltung mit GitLab
34 ** Dokumentation von Protokollen (und anderen Dokumenten) in GitLab
Pascal Meyer 28.1 35 ** Versionsverwaltung von Doku und Software mit Git unter Bitbucket: [[https:~~/~~/git.swl.informatik.uni-oldenburg.de>>url:https://git.swl.informatik.uni-oldenburg.de]]
36
37 die Informatik hat eine **Visual Paradigm Lizenz**.
38 Zu finden unter:
39 [[https:~~/~~/ap.visual-paradigm.com/university-of-oldenburg/\>>url:https://ap.visual-paradigm.com/university-of-oldenburg/%5C]]
40
41 Die unterschiedlichen Version von VP sind untereinander nicht immer kompatibel. Aus diesem Grund sollten **alle immer die selbe Version** verwenden!
42
Pascal Meyer 10.1 43 = Teilaufgabe 1 - Projektmanagement organisieren =
Pascal Meyer 1.1 44
45 * Organisieren Sie Ihr Projekt bzw. Team,
Pascal Meyer 35.1 46 ** verteilen Sie in der zweiten Woche die [[Einzelaufgaben>>doc:Main.Anforderungen Gruppen.WebHome||anchor="HAnforderungen:EinzelleistungenundEinzelaufgaben"]],
Pascal Meyer 1.1 47 ** definieren Sie eine Reihenfolge für die Übernahme der Moderation und des Protokolls (z.B. nach Alphabet)
48 ** die Tagesordnung ist vom Moderator mindestens einen Tag vorher zu erstellen (dafür ggf. die Gruppe nach weiteren TOPs fragen)
49 ** definieren Sie Standards für Dokumente (LaTeX, UTF-8, ...)
Pascal Meyer 35.1 50 ** Führen Sie ein [[Projekttagebuch>>doc:Main.Anforderungen Gruppen.WebHome||anchor="HProjekttagebuch"]] (als Blog im Wiki)
Pascal Meyer 1.1 51 * Dokumentieren Sie immer alle Ergebnisse der Gruppe, wie
52 ** Protokolle,
53 ** Ausarbeitungen,
54 ** Präsentationen,
55 ** Software-Dokumente, etc.
Pascal Meyer 35.1 56 * mit einer Zuordnung zu Personen in GitLab
Pascal Meyer 1.1 57 * Geben Sie die Einzelaufgaben an
58 * Stellen Sie ein Gruppenbild (mit Namen) ein! Ideal ist es für mich und die Tutoren, wenn in dem Bild die Namen direkt als Text enthalten sind.
59 * Überlegen Sie sich für Ihre Aufgaben eine "Definition of Ready" und eine "Definition of Done", d.h. was muss für eine Aufgabe erledigt sein, bevor sie als erledigt angesehen werden kann. (siehe z.B. [[https:~~/~~/www.scrum-events.de/was-ist-die-definition-of-done-dod.html>>url:https://www.scrum-events.de/was-ist-die-definition-of-done-dod.html]])
60 * Erstellen Sie basierend auf den Vorgaben der Veranstaltung eine Produktvision. (vgl. z.B. [[https:~~/~~/www.wibas.com/scrum/product-vision/de)>>url:https://www.wibas.com/scrum/product-vision/de]]
61
Pascal Meyer 35.1 62 Scrum hat den Nachteil, dass man lange "vor sich hin iterieren" kann. Definieren Sie zusätzliche Meilensteine zu denen bestimmte Funktionen fertig sein sollen. Einige sind vorgegeben (vgl. [[Meilensteine>>doc:Main.Anforderungen Software.WebHome||anchor="HAnforderungen:DievordefiniertenMeilensteine"]]). Verwenden Sie zur Meilensteindefinition nicht nur die Präsentationstermine!
Pascal Meyer 1.1 63
64 = Teilaufgabe 2: Anforderungsanalyse (Dokumentation) =
65
66 * Was soll umgesetzt werden? Wie sieht diese Welt aus?
67 ** Wer sind die Akteure?
68 ** Welche User-Stories gibt es?
69 ** Welche nicht funktionalen Anforderungen gibt es?
70 ** Welche Objekte gibt es: Objektmodell (als Klassendiagramm)
71 ** Wie interagieren die miteinander (wichtig!): Dynamisches Modell (tyischerweise als Sequenz-, Aktivitäts- oder Zustandsdiagramm)
72 *** Sequenzdiagramm: Wenn man sehr genau weiß, wie die Abläufe sind
73 *** Aktivitätsdiagramm und Zustandsdiagramm: Kann erstmal auf einer abstrakten Ebene passieren und später verfeinert werden
74 * Dokumentation schrittweise (!) anpassen/erweitern
75 * Abgabe:
Pascal Meyer 35.1 76 ** [[Zwischenpräsentation>>doc:Main.Aufgabenstellung.WebHome||anchor="HTeilaufgabe5:ZwischenprE4sentation"]] (siehe dort)
Pascal Meyer 1.1 77 ** zum Ende des Projektes finale Version
Pascal Meyer 35.1 78 ** Dokumentation in einem extra Dokument (nicht auf GitLab verweisen), aber es kann ein Export aus GitLab erfolgen
79 * Beachten: [[Anforderungen Dokumentation>>doc:Main.Anforderungen Software.WebHome||anchor="HAnforderungen:Dokumentation"]]
Pascal Meyer 1.1 80
Pascal Meyer 1.3 81 {{warning}}
Pascal Meyer 2.2 82 **Achtung!**
Pascal Meyer 1.1 83
Pascal Meyer 35.1 84 * Es ist keine gute Idee mit dem Dokumentieren bis zum Schluss zu warten. Da sich Dinge aber im Laufe der Zeit noch ändern, sollte auch nicht zu viel Text schon vorher entstehen.
Pascal Meyer 1.1 85 * Diagramme können zwar durch Reengineering gewonnen werden, es ist aber zu Präsentationszwecken keine gute Idee. Dann lieber die Strukturen abstrakter darstellen (nicht jede Methode, jede Klasse und jedes Attribut ist relevant!)
86 * Achtung! Wenn Sie Visual Paradigm verwenden, ändern Sie die Version nicht während des Projektes. I.d.R. sind die Modelle nicht beliebig austauschbar.
Pascal Meyer 35.1 87 * Für die Erstellung von UML-Diagrammen in GitLab kann auch PlantUML verwendet werden.
Pascal Meyer 1.3 88 {{/warning}}
Pascal Meyer 1.1 89
90 = Teilaufgabe 3: Entwurf (Dokumentation) =
91
Pascal Meyer 35.1 92 * Zerlegung in Teilsysteme
Pascal Meyer 1.1 93 * Bildung von Modulen (Klassen zu Gruppen zusammenfassen) Kopplung und Kohäsion beachten
94 * Festlegung der Architektur
95 * Abbilden auf Hardware
96 * persistente Datenverwaltung
97 * Festlegung von Entwurfsmustern
98 * Make or Buy (Verwendung von Frameworks)
99 * Dokument: System- und Objektentwurf
100 * Abgabe:
Pascal Meyer 35.1 101 ** [[Zwischenpräsentation>>doc:Main.Aufgabenstellung.WebHome||anchor="HTeilaufgabe5:ZwischenprE4sentation"]] (siehe dort)
Pascal Meyer 1.1 102 ** zum Ende des Projektes finale Version
Pascal Meyer 35.1 103 ** Dokumentation in einem extra Dokument (nicht auf GitLab verweisen)
104 * Beachten: [[Anforderungen Dokumentation>>doc:Main.Anforderungen Software.WebHome||anchor="HAnforderungen:Dokumentation"]]
Pascal Meyer 1.1 105
106 = Teilaufgabe 4: Implementierung und Test =
107
Pascal Meyer 35.1 108 * Implementieren Sie Ihr Produkt basierend auf dem Entwurf (passen Sie den Entwurf ggf. an)
Pascal Meyer 1.1 109 * Projektname muss Gruppenname enthalten!
110 * (((
111 Maven:
112
113 * Das Produkt muss sich mit Hilfe von **maven** bauen lassen.
114 * Das Bauen muss **ohne** mvn install funktionieren.
115 * Die Tests müssen über **maven** ausgeführt werden.
116 * **GUI-Tests** müssen sich ausschalten lassen.
117 * Andere Build-Tools wie Gradle sind nicht (mehr) erlaubt dürfen maximal ergänzend verwendet werden. Maven muss aber funktionsfähig vorhanden sein.
118 )))
119 * (((
120 Sinnvoll: (echtes) Pairprogramming (mit Tauschen der Rollen!): [[Hinweise zum Pairprogramming>>url:https://developer.atlassian.com/blog/2015/05/try-pair-programming/?utm_source=facebook&utm_medium=social&utm_campaign=atlassian_try-pair-programming]]
121
122 * Es gibt ein Plugin für IntelliJ, mit dem man gemeinsam am Code arbeiten kann (habe ich allerdings noch nicht getestet) 
123 ** Code With Me: "Das kostenlose Plug-in lässt sich direkt aus der Entwicklungsumgebung heraus über Preferences / Settings | Plugins | Marketplace installieren" ([[https:~~/~~/www.heise.de/news/Entwicklungsumgebung-JetBrains-veroeffentlicht-Plug-in-fuer-Pair-Programming-4915934.html>>url:https://www.heise.de/news/Entwicklungsumgebung-JetBrains-veroeffentlicht-Plug-in-fuer-Pair-Programming-4915934.html?wt_mc=nl.red.ho.ho-nl-daily.2020-10-01.link.link]])
124 )))
125 * Sinnvoll: längere Programmiersitzungen
126 * (((
127 Erstellen Sie dabei die nötigen Systemunterlagen (tw. erst zum Ende des Projektes)
128
129 * Benutzerhandbuch,
130 * Testunterlagen,
131 * Installationshandbuch etc.
132 )))
133 * (((
Pascal Meyer 35.1 134 [[Vorlesungsvideos u.a. zu Testen>>doc:Main.Organisatorisches.WebHome||anchor="HVorlesungsvideos"]]. Testen Sie die wichtigen Klassen mit JUnit, nicht erst am ENDE!
Pascal Meyer 1.1 135
136 * Hilfreich: Dependency Injection (z.B. Google Guice)
137 * TestFX kann beim Testen der GUI helfen. Wichtiger sind aber Tests der Funktionalitäten!
138 * Beachten Sie, dass die GUI-Tests normalerweise nicht mit ausgeführt werden sollen, damit die Tests problemlos auch auf einem Build-Server (wie bamboo) ausgeführt werden können.
139 * Mocken Sie Abhängigkeiten in Unit-Tests mit Mockito
140 )))
141 * Führen Sie Integrations- und Endtests durch
142 * Führen Sie mindestens ein dokumentiertes gruppenweites Code–Review durch
143 * Nutzen Sie Tools wie FindBugs, Checkstyle oder SonarLint
144 * (((
145 **Es ist grundsätzlich nicht erlaubt, Warnungen zu unterdrücken (Wenn Warnungen unterdrückt werden, dann muss es einen sehr guten Grund geben! Jede zusätzliche Warnung muss dokumentiert und begründet sein!)**
146
Pascal Meyer 2.2 147 [[image:Warnung.png||alt="Warnung"]]
Pascal Meyer 1.1 148 )))
149 * In Scrum muss ein Produktinkrement getestet und lauffähig sein.
150 * Versuchen Sie möglichst früh und regelmäßig die aktuelle Version auch auf dem Rechner in der Arbi zu deployen.
151 * Das MVP sollte "von Hand" erstellt werden und sich nicht auf Tools wie AfterburnerFX abstützen. Die Erfahrung zeigt, dass dies sonst im Laufe der Zeit viele Dinge (insbesondere Tests) unnötig verkompliziert.
Pascal Meyer 35.1 152 * Beachten Sie auch die Hinweise zur [[Verwendung von KI>>doc:Main.Anforderungen Software.WebHome||anchor="HAnforderungen:NutzungvonKITools"]]
Pascal Meyer 1.1 153
154 = Teilaufgabe 5: Zwischenpräsentation =
155
156 * Zeigen Sie die wesentlichen
157 ** Konzepte (statisch und dynamisch!)
158 ** Architektur
159 ** Software-Design-Entscheidungen (**es geht hier nicht um die Grafik und Optik**) und
160 ** die Zusammenhänge (statisch z.B. durch Klassendiagramme und dynamisch z.B. durch Sequenz- oder Aktivitätsdiagramme!)
Pascal Meyer 36.1 161 ** Technologieentscheidungen (hier nicht die Tools wie GitLab, Visual Paragdigm etc., sondern die verwendeten Frameworks!)
Pascal Meyer 1.1 162 ** Grundsätzlich sollte auf die Serverkonzepte vertiefter eingegangen werden als auf Aspekte, die sich auf die GUI beziehen.
163 ** I.d.R. ist es keine gute Idee, einfach UML-Diagramme, die für die Dokumentation gedacht sind, unverändert in die Folien zu packen, so sollten i.d.R. Klassendiagramme vereinfacht werden.
164 ** Quellcode kann hin und wieder hilfreich sein, i.d.R. ist es aber besser, die Konzepte auf einer abstrakteren Ebene mit **Hilfe von UML** darzustellen.
165 * Erklären (Bilder können helfen):
166 ** Warum es so ist, wie es ist und warum das gut so ist.
167 ** Wie können Erweiterungen vorgenommen werden
168 * Keine Dinge wiederholen, die in diesem Wiki stehen oder das Spiel erklären (kostet nur Zeit)
169 * Ehrlich bei Fehlern und Problemen sein
170 * „Knackige“ Online-Demonstration des aktuellen Standes (nicht optional!)
171 ** mit Moderation,
172 ** die Demonstration sollte ein Konzept und einen roten Faden haben: Nicht einfach starten und schauen, was passiert.
173 ** Cheats können helfen, sinnvolle Situationen zum Präsentieren herbeizuführen
174 ** Es ist wichtig, dass ich der Demonstration folgen kann.
175 ** Kein Video erstellen, sondern live demonstrieren. Dann kann ich auch mal eingreifen, Fragen stellen und bekomme einen "echteren" Eindruck.
176 ** Wenn der Start länger dauert (z.B. weil erst IntelliJ gestartet werden muss), bitte dies **vor der Präsentationen** machen.
177 * Einschränkungen/Anpassungen/Änderungen nennen
178 * 20-30 Minuten (sinnvoll füllen)
179 * Je nachdem, ob online oder in Präsenz (siehe dazu im Stud.IP im Wiki zur Veranstaltung)
Pascal Meyer 35.1 180 ** Präsenz: Nur eine Delegation (max. 3 Personen)
181 *** Bei der finalen [[Präsentaiton>>doc:Main.Aufgabenstellung.WebHome||anchor="HTeilaufgabe6:Abnahme"]] sollte der Vortragende allerdings stehen.
Pascal Meyer 1.1 182 ** Falls die Präsentation online stattfindet,
183 *** dürfen natürlich beliebig viele Personen der Gruppe teilnehmen
184 *** sollten die **Vortragenden eine Kamera** anmachen (geht z.B. auch mit dem Smartphone als Kamera)
185 * Es sollten bei jeder Präsentation andere Mitglieder der Gruppe vorstellen. Es müssen aber nicht alle da gewesen sein.
186
Pascal Meyer 2.3 187 {{info}}
188 **Wichtig!**
Pascal Meyer 1.1 189
190 * Keinen Ausdruck der Folien. Ich mache mir digitale Notizen. Deswegen ist es umso wichtiger:
Pascal Meyer 35.1 191 * **Für jede Präsentation eine Seite im GitLab erstellen (vorher!) mit angehängten Dokumenten (aktueller Stand der Dokumentation, Modelle und Präsentation)**. Dies ist vor allem hilfreich, wenn mal Dinge vergessen werden.
Pascal Meyer 1.1 192 * Für die Präsentationen sollen zwar stets Motivationsfolien erarbeitet werden, jedoch sollen diese in der Präsentation aus zeitlichen und repetitiven Gründen nicht vorgestellt werden!
193 * Bitte die Präsentationen so benennen, dass die Gruppe und die Art der Präsentation klar ist. Z.B. GruppeA_ErstePräsentation.pdf.
Pascal Meyer 2.3 194 {{/info}}
Pascal Meyer 1.1 195
Pascal Meyer 2.3 196 {{success}}
197 **Hinweise:**
198
199 * Ein HD-Fernseher (Anschlüsse HDMI und VGA) ist vorhanden.
200 * WLAN steht zur Verfügung.
201 {{/success}}
202
Pascal Meyer 1.1 203 == Hinweise & Tricks zur Präsentation: ==
204
205 Um die Qualität der Zwischen- und Abschlusspräsentationen zu erhöhen, wurde zusätzlich zu den o.g. Informationen eine Präsentation erstellt. Diese soll euch ein paar weitere Hinweise und Tricks zur Erstellung geben.
206
207 Bemerkungen:
208
Pascal Meyer 35.1 209 * Die Einbindung und Darstellung in GitLab von Präsentationen ist nicht die Beste. Die eingebundene Präsentation ist nur als Vorschau gedacht. Dort werden auch leider Folien "gefressen" und die Qualität extrem runtergeschraubt. Daher findet ihr die Präsentation unten als PDF und als PP in der Anhangsliste - diese zum Bearbeiten nutzen.
Pascal Meyer 1.1 210 * WICHTIG: Vor dem Erstellen von Schaubildern, solltet ihr euch immer fragen, ob dieses einen Mehrwert bietet. Es gibt Fälle wo eine einfache Informationsdarstellung in Textform passender ist.
211 * SEHR WICHTIG: Schaubilder sind KEIN Ersatz für Diagramme. Schaubilder werden nicht dafür genutzt um statische & dynamische Modelle zu ersetzen. Sequenz-, Aktivitäts-, Zustands- und Klassendiagramme müssen so erstellt werden, wie in Software Technik gelehrt.
212 * Am Ende der Präsentation bitte eine Zusammenfassungs- und Ausblicksfolie.
213
Pascal Meyer 33.1 214 = Teilaufgabe 6: Abnahme =
Pascal Meyer 1.1 215
Pascal Meyer 35.1 216 Hier im wesentlichen die selben Dinge beachten wie [[in der Zwischenpräsentation>>doc:Main.Aufgabenstellung.WebHome||anchor="HTeilaufgabe5:ZwischenprE4sentation"]] (mit Ausnahme der letzten vier Spiegelstriche, aber die Darstellung sollte auf das ganze Jahr bezogen sein, d.h. nicht nur zurück bis zur letzten Präsentation, d.h. sollte u.U. auch Dinge enthalten, die bereits in einer der Zwischenpräsentationen gesagt wurden. **Es ist auf jeden Fall eine Demo notwendig!**
Pascal Meyer 1.1 217
218 Und **zusätzlich**:
219
220 * d.h. hier auch die wichtigen Konzept, Ideen und Modelle vorstellen
221 * In der Demo die Registrierung nicht mehr zeigen.
222 * Screenshots zur Erklärung der wesentlichen Komponenten (bitte hier keine Mockups mehr oder Vorher/Nachherdarstellungen)
223 * Die Qualitätssicherung:
224 ** Projektmanagement
225 ** Testen
226 * allgemeiner Rück- und Ausblick, aber bitte keinen detaillierten Rückblick auf einzelne Sprints (In Sprint 1 haben wir ... In Sprint 2 haben wir ...)
227 * Auf eine sinnvolle Auswahl und Gewichtung achten. Wenn Dinge ähnlich sind, besser zusammenfassen, dafür aber wichtige Ideen, verwendete Algorithmen und Konzept vorstellen.
228 * 60-90 Minuten, typischerweise im OFFIS, falls die Präsentation online stattfinden muss, ist es besser, wenn die Präsentation eher 60 als 90 Minuten ist.
229 * Alle Mitglieder der Gruppe müssen da sein! Es besteht Anwesenheitspflicht.
230
Pascal Meyer 2.4 231 {{success}}
232 **Hinweise:**
Pascal Meyer 1.1 233
234 * Die Demo sollte i.d.R. mit dem Server auf einem Rechner in der ARBI (z.B. Dümmer) erfolgen. Ausnahmsweise (unter Angaben von Gründen) kann der Server auch auf einem anderen Server laufen. Einen Server auf einem Rechner zu starten, der auch an der Präsentation teilnimmt ist nicht erlaubt, insbesondere auch, da die OFFIS-Infrastruktur so etwas u.U. nicht erlaubt und außerdem soll man sich einmal mit dem Server-Deployment-Problem befassen.
Pascal Meyer 35.1 235 * Ich habe eine ganze Menge an Präsentationen. Ich kann mich nicht immer an alles vorher erinnern
236 * Die Präsentierenden sollten (im Unterschied zu [[Zwischenpräsentation>>doc:Main.Aufgabenstellung.WebHome||anchor="HTeilaufgabe5:ZwischenprE4sentation"]]) besser vorne stehen. Dann kann ich unabhängig vom Sitzplatz sowohl die Person als auch die Folien anschauen.
Pascal Meyer 2.4 237 {{/success}}
Pascal Meyer 1.1 238
239 Abgabe:
240
241 * **Bitte: vor der Abnahme die Präsentation als PDF schon einmal in dem Cloud-Ordner hochladen.**
242 * Bis zur Präsentation muss nur die Präsentation fertig sein. Alle andere Dokumente können später erstellt/finalisiert werden.
243 * Dokumente (als PDF!  Die wichtigen zusammen in einem Ordner und **nicht in die VM (s.u.) packen**!)
Pascal Meyer 35.1 244 ** Die Dokumentation darf als Export aus dem GitLab generiert werden.
Pascal Meyer 1.1 245 * Der Quellcode
246 ** braucht nicht abgegeben werden, da er ja in Bitbucket vorhanden ist.
247 ** muss sich mit Maven automatisiert bauen lassen! Auch die Tests müssen darüber ausführbar sein. Es muss EIN zentrales Maven-Script geben, welches andere verwendet. (Also so, wie es aktuell im Basisprojekt umgesetzt ist. Bei Änderungen muss hier ggf. eine Anpassung erfolgen)
248 ** Wichtig! Ich schaue mir nur den Quellcode im **MASTER-Branch** an, ggf. also auf jeden Fall vor der Abgabe noch einmal in den Master mergen!
249 ** Die Tests sollten alle ohne externe Datenbank laufen!
250 * Protokolle, Präsentationen, …
251 * zusätzlich (!) virtuelle Maschine (VMWare (mit VMWarePlayer abspielbar!) **oder** VirtualBox)
252 ** mit vollständig eingerichtetem lauffähigem Server für mich zum Testen (mit Hinweise zur Verwendung, z.B. mit Readme auf Desktop)
253 ** ohne Abhängigkeiten nach außen (E-Mail, Datenbank, etc.!). Die DB darf hauptspeicherbasiert (MainMemoryBasedUserStore) sein.
254 ** VM sollte den Gruppennamen enthalten
255 ** keine Dokumente in der VM "verstecken", d.h. die Dokumente zur Abgabe müssen extra abgegeben werden.
256 ** Es sollte direkt in der VM spielbar sein. (Falls die Umsetzung web-basiert ist muss also auch ein Browser installiert sein (aktuell i.d.R. nicht). Keinen Zugriff mit einem externen Browser!)
Pascal Meyer 35.1 257 ** Die VM sollte nicht zu groß sein! Linux statt Windows kann hier schon viel helfen (Windows ist aber erlaubt)
Pascal Meyer 1.1 258 ** BITTE die VM testen. Insbesondere ob auch alles funktioniert!
259 ** Es ist erlaubt, die VM in ein Multi-Volume-Archive zu verpacken, falls es Probleme mit dem Upload gibt.
260 ** Kein Docker, da ich auch meinen Rechner vor der VM absichern muss (Sonst müsste ich einen zusätzlichen Rechner dafür nutzen ... DSGVO)
261 * **10 Minuten-Video, Format MP4**
262 ** Das Video sollte von nicht deutlich von den 10 Minuten abweichen (10% sind ok)
263 ** Das Video sollte im **MP4-Format** vorliegen (falls die Aufnahme z.B. als MOV gemacht worden ist, kann man mit Handbrake ([[https:~~/~~/handbrake.fr/>>url:https://handbrake.fr/]]) oder auch VLC ([[https:~~/~~/www.videolan.org/vlc/>>url:https://www.videolan.org/vlc/]]) eine Konvertierung machen).
Pascal Meyer 35.1 264 ** Das Video sollte nicht größer als **100 MB** sein, d.h. **1080p** ist vollkommen ausreichend (siehe vorherigen Kommentar zum ggf. notwendigen Konvertieren)
Pascal Meyer 1.1 265 ** mit Präsentation des Endproduktes (z.B. mit HyperCam),
266 ** bitte mit **Ton**
267 ** Fokus bitte auf das **Spiel**
268 ** Registrierung, Chat, Besonderheiten außerhalb des Spiels etc. max 1 Minute
269 ** Bitte mit mehreren Spielern spielen
270 ** Spezielle Spielsituationen (gemäß Regeln) sollten extra dargestellt werden um zu zeigen, wie die Software damit umgeht
271 ** Damit auch andere Gruppen sehen können, was in den anderen Gruppen gemacht worden ist (auch für die kommenden Gruppen) werden die Videos im Anschluss aller Präsentationen veröffentlicht.
272 ** Bitte keine **Namen oder Bilder von echten Personen** im Video verwenden.
273
274 **Verwendung der Uni-Cloud (**[[**https:~~/~~/cloud.uol.de).**>>url:https://cloud.uol.de/]]~*~* Dort bitte alles  zur Verfügung stellen. Dafür haben Sie von mir eine Freigabe erhalten. Bitte die Dateien möglichst nicht komprimieren aber möglichst insgesamt nicht mehr als 15 GB verwenden. Bei Problemen mit dem Upload darf die VM auch aufgeteilt werden.~*~*
275
Pascal Meyer 3.1 276 {{success}}
277 **Hinweise:**
Pascal Meyer 2.4 278
Marco Grawunder 37.1 279 * Der Termin für die finale Abgabe ist immer der Tag, an dem **die letzte Präsentation der letzten Gruppe** stattfindet, es darf aber auch während der Präsentation abgegeben werden. Die von mir versendeten Shares verfallen aus Gründen der Gerechtigkeit um 0:00 Uhr am Tag nach der letzten Präsentation der letzten Gruppe. Also am besten nicht bis zur letzten Minute warten.
Pascal Meyer 1.1 280 * Der Upload in die Cloud ist innerhalb des Uni-Netzes i.d.R. deutlich schneller.
281 * Es kann passieren, dass es deutlich länger mit dem Upload dauert, wenn alle gleichzeitig hochladen ...
282 * Falls es noch deutliche Unterschiede zwischen dem Stand der in der Präsentation vorgestellt wurde und der Abgabe gibt, bitte noch einmal explizit dokumentieren!
283 * Es sollte in der Gruppe immer jemand danach die Zeit ansprechbar sein und ggf. Dokumente, bei denen es Probleme mit dem Upload gegeben hat, hochladen können.
284 * Der Upload müsste auch mit dem Nextcloud-Sync-Tool erfolgen können, falls es Probleme mit der Web-Version gibt.
285 * Änderungen am Git-Code sind nach der Abgabe natürlich ebenfalls nicht mehr zulässig.
Pascal Meyer 3.1 286 {{/success}}