Changes for page Anforderungen Software

Last modified by mgrawunder on 2025/09/29 10:00

edited by Marco Grawunder
on 2025/08/15 08:52
Change comment: There is no comment for this version
edited by mgrawunder
on 2025/09/29 09:58
Change comment: There is no comment for this version

Summary

Details

insert_drive_file Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.MarcoGrawunder
1 +XWiki.mgrawunder
Content
... ... @@ -5,7 +5,8 @@
5 5  = Anforderungen: Spielumsetzung =
6 6  
7 7  * Client-Server-Umsetzung (Spiellogik auf Server!)
8 -** Komplett Java-basiert (z.B. mit Web-Services, RMI)
8 +** Der Server muss komplett Java-basiert sein
9 +** Der Client kann in Java sein, muss es aber nicht. Es ist auch erlaubt, hier z.B. Web-Frameworks wie Angular oder React zu verwenden. ACHTUNG! Das kann zu einem deutlich höherem Aufwand führen, man spart sich aber JavaFX ;-)
9 9  * Aus didaktischen Gründen (nicht optional!):
10 10  ** „beliebig“ viele registrierte Nutzer
11 11  ** mehrere Spielrunden gleichzeitig im Server
... ... @@ -15,7 +15,7 @@
15 15  ** Lobby und Spielechats
16 16  * Nutzerverwaltung
17 17  ** gekapselter Zugriff, d.h. es darf für die Verwendung nicht sichtbar sein, wie die Daten wirklich verwaltet werden. Initial wird hier beispielsweise mit einer hauptspeicherbasierten Struktur gearbeitet.
18 -** relationales DBMS (**Zugriff mit JDBC, kein Hibernate oder ähnliches**)
19 +** relationales DBMS
19 19  ** einfache Austauschbarkeit des DBMS-Servers (unterschiedliche Verbindungen, unterschiedliche Hersteller)
20 20  * KI (je nach Spiel, siehe Start-Folien)
21 21  ** Das Spiel muss die Integration einer KI unterstützen
... ... @@ -58,6 +58,9 @@
58 58  * Neue Nutzer sollen sich für das Spiel registrieren können.
59 59  * Registrierte Nutzer sollen sich am Spiel anmelden können.
60 60  * Die Nutzer sollen nach dem Einloggen in das Hauptmenü gelangen und dort alle Nutzer sehen, die auch eingeloggt sind.
62 +* Es soll eine Liste aller verfügbaren Lobbies angezeigt werden.
63 +* Man soll neue Lobbies mit einem Namen anlegen können
64 +* Man soll existierenden Lobbies beitreten können (ohne die Lobbies selber anzuzeigen
61 61  
62 62  {{success}}
63 63  **Hinweis:**
... ... @@ -99,15 +99,15 @@
99 99  
100 100  = Anforderungen: Dokumentation =
101 101  
102 -Im Softwareprojekt muss am Ende zusätzlich zum eigentlichen Produkt ein Dokument (das kann auch durch einen Export aus GitLab erfolgen) abgegeben werden, welches im Wesentlichen die folgenden Aspekte enthalten sollte:
106 +Im Softwareprojekt muss am Ende zusätzlich zum eigentlichen Produkt ein Dokument abgegeben werden, welches im Wesentlichen die folgenden Aspekte enthalten sollte:
103 103  
104 104  * Eine allgemeine Einleitung für das Dokument. Worum geht es und wie ist das Dokument aufgebaut.
105 105  * Grundsätzlich sollte jeder Abschnitt kurz eingeleitet werden und jeden Kapitel sollte eine kurze Zusammenfassung bekommen.
106 -* Quellen müssen angebenen werden, also z.B. nicht einfach Text von einer Web-Seite kopieren. Das kann u.U. als Plagiat ausgelegt werden...
110 +* Quellen müssen angegebenen werden, also z.B. nicht einfach Text von einer Web-Seite kopieren. Das kann u.U. als Plagiat ausgelegt werden...
107 107  * Eine Darstellung der ermittelten Anforderungen.
108 108  ** Dies umfasst mindestens die umgesetzten User-Stories (Sinnvoll: Die Akzeptanzkriterien für eine User-Story mit angeben.). Idealerweise werden die UserStories (siehe [[User-Stories>>doc:Main.Scrum.WebHome||anchor="HUserStories"]]) noch durch Anwendungsfälle unterstützt.
109 109  ** Ggf. eine Darstellung/Auflistung nicht umgesetzter User Stories. Die kann noch einmal zeigen, welche kreativen Ideen zeitlich nicht mehr umgesetzt wurden
110 -** Die Stories sollten möglichst gruppiert (z.B. nach Nutzerverwaltung, Hauptmenue/Lobby, etc.) werden.
114 +** Die Stories sollten möglichst gruppiert (z.B. nach Nutzerverwaltung, Hauptmenü/Lobby, etc.) werden.
111 111  * Darstellung der Realisierung
112 112  ** Allgemeine/Übergreifende Konzepte, z.B. wie wurde MVP realisiert
113 113  *** Darstellung der Architektur und Aufteilung des Gesamtsystems in Module
... ... @@ -124,6 +124,7 @@
124 124  **** Nicht immer ist offensichtlich, warum eine Lösung gewählt wurde. In diesem Fall sollten (Entwurfs-)Entscheidungen begründet/motiviert werden. Es ist grundsätzlich eine gute Idee, Dinge nicht nur „mitzuteilen“, sondern zu „erklären“.
125 125  **** Wenn man komplexere Algorithmen darstellen möchte, kann es besser sein, die Darstellung mit Pseudocode vorzunehmen.
126 126  *** Diagramme sollten an den Stellen im Text sein, an denen sie erläutert werden. Es muss vom Text aus auf die Diagramme verwiesen ("siehe Abb. X.Y") werden. Einfach alle im Anhang aufzulisten, macht keinen Sinn.
131 +*** Hinweise: Man kann Diagramme in Gitlab auch textuell erzeugen: [[https:~~/~~/docs.gitlab.com/user/markdown/#diagrams-and-flowcharts>>https://docs.gitlab.com/user/markdown/#diagrams-and-flowcharts]] Macht es u.U. gerade bei komplexen Diagrammen einfacher.
127 127  ** Bei Spiel: Regelabweichungen darstellen und begründen
128 128  ** (Java-)Quellcode im Text möglichst vermeiden. Pseudocode kann für die Beschreibung von komplexeren Algorithmen verwendet werden.
129 129  ** **ACHTUNG**! Die Konzepte bitte so darstellen, als wenn sie nicht iterativ entstanden wären. Also keine "Verteilung" des Konzeptes auf Sprints. Wichtig ist, was am Ende herausgekommen ist.
... ... @@ -153,9 +153,9 @@
153 153  ** Ggf. vollständige Klassendiagramme (Ohne weitere Erläuterung)
154 154  ** Protokolle und andere im Laufe der Zeit entstandene Dokumente in speziellen Ordner hinterlegen. **Nicht (mehr) in das Dokument mit aufnehmen**, das ist nur unnötige Arbeit.
155 155  * Glossar mit Begriffen des Gegenstandes/Spiels
156 -* Index  (Falls Dokument mit LaTeX erstellt, bei GitLab-Export nicht möglich/notwendig)
161 +* Index  (Falls Dokument mit LaTeX erstellt)
157 157  
158 -Ich werde immer wieder gefragt, wieviele Seiten die Dokumentation haben muss. Das lässt sich so pauschal leider nicht sagen, denn das hängt zum einen natürlich massiv von der verwendeten Vorlage ab, zum anderen aber auch davon, welches die aktuelle Aufgaben gewesen ist. Zur Orientierung kann man jedoch sagen, dass die typische (gelungene) (LaTeX-basierte-)Dokumentation in den letzten Jahren immer so in dem Bereich von 80 bis 100 Seiten (inkl. Anhängen und Bildern) gelegen hat. Es macht nun aber keinen Sinn, die Seitenanzahl künstlich durch "unnötigen" Inhalt aufzublähen. Ich schaue schon sehr genau darauf, wie gelungen und vollständig die oben genannten Punkte abgehandelt werden.
163 +Ich werde immer wieder gefragt, wie viele Seiten die Dokumentation haben muss. Das lässt sich so pauschal leider nicht sagen, denn das hängt zum einen natürlich massiv von der verwendeten Vorlage ab, zum anderen aber auch davon, welches die aktuelle Aufgaben gewesen ist. Zur Orientierung kann man jedoch sagen, dass die typische (gelungene) (LaTeX-basierte-)Dokumentation in den letzten Jahren immer so in dem Bereich von 80 bis 100 Seiten (inkl. Anhängen und Bildern) gelegen hat. Es macht nun aber keinen Sinn, die Seitenanzahl künstlich durch "unnötigen" Inhalt aufzublähen. Ich schaue schon sehr genau darauf, wie gelungen und vollständig die oben genannten Punkte abgehandelt werden.
159 159  
160 160  Zum Produkt selber noch notwendig:
161 161  
... ... @@ -169,8 +169,8 @@
169 169  
170 170  * Falls es Widersprüche zwischen der Vorlage und dem Text hier im Wiki gibt, bitte eine kurze Nachricht. Im Zweifelsfall zählt der Inhalt aus dem Wiki.
171 171  * Falls etwas nicht korrekt funktioniert, bitte auch eine kurze Nachricht. Ich kümmere mich.
172 -* Gruppen, die ihre Dokumentation auch im git pflegen wollen, können mir einen Nachricht schicken und ich richte das Repo dann passend ein.
173 -* [[https:~~/~~/git.swl.informatik.uni-oldenburg.de/projects/SPB/repos/dokumentation/browse/>>url:https://git.swl.informatik.uni-oldenburg.de/projects/SPB/repos/dokumentation/browse/]]
177 +* Gruppen, die ihre Dokumentation auch im Git pflegen wollen, können mir einen Nachricht schicken und ich richte das Repo dann passend ein.
178 +* [[https:~~/~~/gitlab.swl.informatik.uni-oldenburg.de/SPB/dokumentation>>https://gitlab.swl.informatik.uni-oldenburg.de/SPB/dokumentation]]
174 174  {{/success}}
175 175  
176 176  = Anforderungen: Nutzung von KI Tools =
... ... @@ -194,35 +194,3 @@
194 194  
195 195  **4. Individuelle Lösungspflicht:**
196 196  Alle wesentlichen Design- und Architekturentscheidungen (z.B. Datenmodell, Hauptlogik, Schnittstellen) müssen selbstständig ohne KI-Tools durch die Studierenden getroffen werden.
197 -
198 -= Anforderungen: Aufwand =
199 -
200 -* SWP hat 3+6 KP (wobei 1 KP ca 30 h sind)
201 -** (ca.) 90 h + 180 h = 270 h pro Person
202 -** bei 10 Personen pro Gruppe: 10*270 h = 2700 h
203 -** Nur wenn alle (in die selbe Richtung) mitziehen, kann das SWP mit einigermaßen vertretbarem Aufwand durchgeführt werden
204 -** Wichtig: Planung was getan wird und was nicht (100 % in allen Übungsblättern schafft man auch nicht mit der normalen Stundenzahl)
205 -** Programmierung verleitet häufig dazu mehr zu tun … ;-)
206 -* Trotzdem natürlich: Leistung = Arbeit/Zeit :-)
207 -
208 -Anmerkung: Die Zahlen sind natürlich nur als Richtschnur zu sehen. Wichtig ist, dass man kontinuierlich an der Aufgabe dran bleibt, damit nicht am Ende die gesamten Stunden auf einen "einschlagen".
209 -
210 -**Noch ein Nachtrag zum Aufwand:**
211 -
212 -Es wird oft gesagt, dass 9 KP für das Software Projekt zu wenig sind. Hier liegt leider ein kleines Missverständnis vor. Das SWP sollte (so ist es zumindest geplant) so ausgelegt sein, dass ein durchschnittlicher Studierender mit den Kenntnissen die als Vorerfahrung verlangt werden mit dem Aufwand von 9 KP (also rund 250 Stunden) in der Lage sein sollte das Modul zu bestehen.
213 -
214 -Das ganze ist immer relativ einfach zu definieren, wenn es keine Gruppenarbeit ist, dann kann man den Aufwand für das Modul auf eine einzelne Person ausrichten. Wir haben nun aber im SWP die Besonderheit, dass es Gruppenarbeit ist, und zwar keine einfache Gruppenarbeit mit 2 oder 3 Personen sondern mit bis zu 13.
215 -
216 -Ich muss nun die Aufgabe so definieren, dass alle 13 Personen dieser Gruppe die Chance bekommen können, die 9 KP auch leisten zu können, d.h. es muss soviel "Arbeit" da sein, dass niemand aufgrund von fehlenden Aufgaben nichts für das Modul sinnvolles tun kann. Da es nun aber vorkommt, dass Personen nicht so gut mitziehen können oder wollen oder dass Personen das Modul abbrechen, könnte der Eindruck entstehen, dass die Gruppe mit weniger Personen das selbe leisten muss, wie eine Gruppe mit voller Besetzung. Das ist nicht der Fall! Bei der Bewertung der Gruppenleistung wird auch die Größe der Gruppe für die finale Bewertung herangezogen. Dabei ist ergänzend noch zu sagen, dass mit der Größe der Gruppe auch der Koordinierungaufwand steigt. Es ist also nicht so, dass eine größere Gruppe automatisch linear mehr schafft.
217 -
218 -Also, ich versuche immer eine Aufgabe zu finden, die sich so flexibel erweitern oder einschränken lässt, dass die ganze Gruppe etwas zu tun hat, aber Einzelne nicht mehr tun sollen. Das klappt zugegebenermaßen mal mehr und mal weniger, ist aber immer mein Bemühen. Die Stunden die aufgeschrieben werden sollen, sollen auch dazu dienen, zu sehen, wieviel Aufwand tatsächlich geleistet wird. Ich gehe davon aus, dass die Stunden korrekt sind, da sie auch essentiell für die Bewertung sind. In den letzten Jahren gab es tatsächlich immer einige Studierende, den Aufwand nach oben übertroffen haben (und zwar teilweise deutlich). Das war aber in der Summe der Teilnehmer immer nur ein kleinerer Teil. Die meisten Studierenden waren tatsächlich eher deutlich unterhalb des vorgegebenen Aufwands.
219 -
220 -Ich habe schon mal darüber nachgedacht, die Stunden nach oben hin zu deckeln (d.h. sowas wie "Strafpunkte" zu vergeben, wenn man deutlich zu viele Stunden leistet), das widerstrebt mir aber, da es sich hier um eine Lehrveranstaltung handelt und ich niemanden für sein freiwilliges Engagement bestrafen möchte. I.d.R. sprechen die Tutoren die Personen an, die deutlich zu vielen Stunden leisten.
221 -
222 -Ein anderes Problem ist sicherlich der gefühlte Aufwand, in dem man die z.B. 6 KP die man für eine Vorlesung bekommt mit den 9 KP vergleicht, die man für das SWP bekommt. Der große Unterschied hier: Man kann theoretische Konzepte sehr schnell verstehen oder braucht etwas Zeit. Die KP Berechnung für eine VL geht davon aus, dass man die Inhalte der Vorlesung vor- und nachbereitet und seien wir mal ehrlich ...[[~[~[image:https://confluence.swl.informatik.uni-oldenburg.de/s/-df7cbn/9203/cnf719/_/images/icons/emoticons/wink.svg~|~|alt="(Zwinkern)"~]~]>>url:https://confluence.swl.informatik.uni-oldenburg.de/s/-df7cbn/9203/cnf719/_/images/icons/emoticons/wink.svg]]
223 -
224 -In einem praktischen Modul kann man aber relativ wenig durch "schnelles Verstehen" herausholen. Man muss die Dinge aktiv tun und da gibt es auch keine Abkürzung indem man sich z.B. ein gutes You Tube Video anschaut und mit Hilfe von "Bolemie-Lernen" es irgendwie schafft, gut durch die Klausur zu kommen. Die Leistung bezieht sich in einem praktischen Modul immer kontinierlich auf die ganze Zeit (hier zwei Semester).
225 -
226 -Was final noch dazukommt: Typischerweise schaffen es nicht alle, gleichmäßig die ganze Zeit an dem Modul zu arbeiten (wenn man mal 28 VL-Wochen nimmt, kommt man übrigens auf eine wöchentliche Arbeitsbelastung von ca. 9-10 Stunden für das Modul und der Besuch einer VL oder des Gruppensitzung decken davon je gerade mal 1,5 h ab) kommt es gerade vor Präsentationen zu erhöhtem Aufwand und der bleibt deutlich nachhaltiger im Kopf hängen, als die 3 Wochen in denen man mal nur so 2-3 h gemacht hat.
227 -
228 -Hier noch mal etwas zum Thema Credit-Points: [[https:~~/~~/www.zeit.de/studium/studienfuehrer-2010/studium-bachelor-leitfaden/seite-3>>url:https://www.zeit.de/studium/studienfuehrer-2010/studium-bachelor-leitfaden/seite-3]]