Changes for page Softwareentwicklung
Last modified by Marco Grawunder on 2026/08/26 10:16
From version 8.1
edited by Marco Grawunder
on 2026/08/26 09:04
on 2026/08/26 09:04
Change comment:
There is no comment for this version
To version 2.1
edited by Marco Grawunder
on 2026/08/25 14:45
on 2026/08/25 14:45
Change comment:
There is no comment for this version
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Attachments (0 modified, 0 added, 1 removed)
Details
- Page properties
-
- Content
-
... ... @@ -1,16 +1,12 @@ 1 1 [[image:Main.Organisatorisches.WebHome@softwareprojekt_logo_transparent.png||alt="SoftwareprojektLogo.png" data-xwiki-image-style-alignment="end" height="136" width="309"]] 2 2 3 -{{info}} 4 -Diese Seite enthält die **allgemeinen technischen Anforderungen** an die Softwareentwicklung im Softwareprojekt. Die konkrete Spielaufgabe und jahrgangsspezifische Vorgaben stehen im geschützten Bereich **Aktuelles**. 5 -{{/info}} 6 - 7 7 {{toc/}} 8 8 9 -= Technische und funktionaleAnforderungen =5 += Anforderungen: Spielumsetzung = 10 10 11 -* Client-Server-Umsetzung ;die zentraleSpiellogikliegtaufdemServer.12 -** Der Server muss vollständigJava-basiert sein.13 -** Der Client kann ebenfallsin Javaumgesetzt werden, mussdies aber nicht.Alternativkönnenz.B. Web-Frameworks wie Angular oder React verwendet werden. Dabei istzu berücksichtigen,dasseinezusätzlicheWeb-TechnologieinsbesonderezuBeginneinenhöherenIntegrations-und Einarbeitungsaufwandverursachenkann.7 +* Client-Server-Umsetzung (Spiellogik auf Server!) 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 ;-) 14 14 * Aus didaktischen Gründen (nicht optional!): 15 15 ** „beliebig“ viele registrierte Nutzer 16 16 ** mehrere Spielrunden gleichzeitig im Server ... ... @@ -22,15 +22,15 @@ 22 22 ** 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. 23 23 ** relationales DBMS 24 24 ** einfache Austauschbarkeit des DBMS-Servers (unterschiedliche Verbindungen, unterschiedliche Hersteller) 25 -* ComputergesteuerteSpieler(je nachaktuellerSpielaufgabe)26 -** Das Spiel muss die Integration eine s computergesteuertenSpielersunterstützen.27 -** Es muss mindestens eine einfacheStrategie,z.B.einezufallsbasierteStrategie,umgesetzt werden.28 -* Bei einem JavaFX-Client mussdie Struktur die Anforderungen desModel-View-Presenter-Ansatzes(MVP)erfüllen.29 -* Andere Client-Arten, z. B. ein Konsolenclient,sollenmit möglichstgeringemAufwandangebundenwerdenkönnen. DiesisteinweitererGrunddafür,die Spiellogik aufdemServerzu halten.21 +* KI (je nach Spiel, siehe Start-Folien) 22 +** Das Spiel muss die Integration einer KI unterstützen 23 +** Es muss eine einfache (z.B. zufallsbasierte) KI umgesetzt werden 24 +* Ansatz muss Model-View-Presenter Anforderungen erfüllen 25 +* Muss mit möglichst wenig Aufwand möglich sein, andere Client-Arten anzubinden (z.B. Console) u.a. Spiellogik auf Server 30 30 * Visuelles Thema/Design darf im vorgegebenen Rahmen variiert werden (muss aber nicht!!) 31 -* Qualität und Bedienbarkeithaben Vorrang vor visuellen Zusatzfunktionen.32 -** Wichtig sind insbesondereverständlicher, erweiterbarer und wartbarer Codesowieeine gute Benutzerführung.33 -** Eine ansprechendeoptischeGestaltung ist willkommen,sofern sienichtzulastender Kernfunktionalität geht.27 +* Achtung! 28 +** Wichtig ist guter, erweiterbarer und wartbarer Code und eine gute Benutzerführung 29 +** Wenn das Spiel dann zusätzlich noch optisch gut aussieht, um so besser. 34 34 35 35 {{info}} 36 36 **Wichtig!** ... ... @@ -38,7 +38,7 @@ 38 38 * Überlegen Sie genau, welche Features Sie umsetzen können und welche weggelassen werden sollten 39 39 * Lieber etwas weniger sehr gut umsetzen, als vieles schlecht! Qualität vor Quantität! 40 40 * Bedienbarkeit ist wichtig! Optisches Design weniger! 41 -* KISS: Lösungenmöglichsteinfach und nachvollziehbarhalten.37 +* „KISS: Keep it simple stupid“ 42 42 * Fokus auf das Wichtige! Es gibt keine Zusatzpunkte für Dinge wie 43 43 ** Freundeslisten 44 44 ** privaten Chat ... ... @@ -47,20 +47,12 @@ 47 47 * Sie haben nur begrenzte Ressourcen zur Verfügung und müssen das auch vertreten! 48 48 {{/info}} 49 49 50 -= A llgemeineRegelnzurBrettspieladaption =46 += Anforderungen: Die vordefinierten Meilensteine = 51 51 52 -* keine Originalgrafiken ohne Freigabe veröffentlichen, 53 -* Regeln dürfen vereinfacht/angepasst werden, 54 -* Spielspaß soll erhalten bleiben, 55 -* Aktionen anderer Spieler müssen nachvollziehbar sein, 56 -* Zusatzdienste nur sinnvoll einsetzen. 48 +Um gut in das SWP zu starten, gibt es drei **vordefinierte** Meilensteine. 57 57 58 -= Vorgegebene Meilensteine = 59 - 60 -Für den Einstieg und zur Orientierung im Projektverlauf gibt es mehrere **vorgegebene Meilensteine**. Zusätzlich definiert jede Gruppe eigene fachliche Meilensteine. 61 - 62 62 * Der erste Meilenstein ist durch die gemeinsame Bearbeitung der Übungsaufgaben erreicht. 63 -* Für den zweiten Meilenstein gibt es eine [[Zwischenpräsentation>>doc:Main.Präsentationen.WebHome]].51 +* Für den zweiten Meilenstein (s.u.) gibt es eine [[Zwischenpräsentation>>doc:Main.Präsentationen.WebHome]]. Das ist die erste Präsentation bei mir. 64 64 * Es gibt eine Präsentation für den Prototypen (Meilenstein X), im zweiten Semester. 65 65 * Es gibt eine Präsentation für das finale Produkt (Endabnahme) zum Ende des zweiten Semesters. 66 66 ... ... @@ -90,7 +90,7 @@ 90 90 91 91 == Meilensteine 3 - (X-1) == 92 92 93 -Es ist notwendig, **zusätzliche eigene Meilensteine zu definieren (mindestens 3-4)**, die sich an die erste Präsentation anschließen. Der Meilenstein für den Prototypen darf **nicht der dritte Meilenstein** sein! Die Meilensteine repräsentieren dabei wichtige Zwischenziele, die erreicht worden sind und sollten sich konkret auf das Spiel beziehen. **Meilensteine müssen natürlich auch ein Datum haben!**81 +Es ist notwendig, **zusätzliche eigene Meilensteine zu definieren (mindestens 2-3)**, die sich an die erste Präsentation anschließen. Der Meilenstein für den Prototypen darf **nicht der dritte Meilenstein** sein! Die Meilensteine repräsentieren dabei wichtige Zwischenziele, die erreicht worden sind und sollten sich konkret auf das Spiel beziehen. **Meilensteine müssen natürlich auch ein Datum haben!** 94 94 95 95 == Meilenstein X "Prototyp" == 96 96 ... ... @@ -112,42 +112,40 @@ 112 112 * Im Zweifelsfall ist es wichtiger, **eine gute Basis** zu haben und nicht so weit zu sein wie es der Meilenstein verlangt. Auf keinen Fall sollte man aus Gründen der Meilensteinerreichung Dinge einfach "runterhacken" um sie hinterher wieder aufzuräumen. Das wäre dann unnötige Arbeit! 113 113 {{/success}} 114 114 115 -= Nutzung generativerKI-Werkzeuge=103 += Anforderungen: Nutzung von KI Tools = 116 116 117 - GenerativeKI-Werkzeugewie ChatGPT, Copilot oder Geminikönnenim Softwareprojekt unterstützendeingesetztwerden.Dabeigelten diefolgendenRegeln. Für mitKI-Unterstützungerzeugten Code undTextträgtdieGruppedieselbeVerantwortungwie fürvollständigselbsterstellteInhalte.105 +Die Verwendung von KI-Tools wie ChatGPT, Copilot oder Google Gemini ist inzwischen auch in der Software Entwicklung angekommen. Auch im SWP ist die Verwendung von KI-Tools in gewissem Rahmen erlaubt und möglich. 118 118 119 -* 120 -** 121 -**1. Transparenzpflicht: 122 -**Alle von KI-Tools generierten Code- oder Textpassagen müssen im Code oder in den Abgaben klar als solche gekennzeichnet werden. Zum Beispiel durch Kommentare wie** 107 +**~1. Transparenzpflicht:** 108 +Alle von KI-Tools generierten Code- oder Textpassagen müssen im Code oder in den Abgaben klar als solche gekennzeichnet werden. Zum Beispiel durch Kommentare wie 123 123 124 124 |~/~/ Generated with ChatGPT at 31.03.2025 125 125 126 126 **Ausnahme**: Die Vervollständigung einer Zeile (durch Tab) ist nicht speziell zu dokumentieren ("Local Full Line Completion"), alles weitergehende auf jeden Fall. 127 127 128 - Nicht dokumentierteweitergehende KI-NutzungwirdwiedieungekennzeichneteÜbernahme fremderInhaltebehandeltundkannentsprechendeKonsequenzenhaben.114 +Jede nicht dokumentierte Verwendung muss leider einem Plagiat (wie Copy/Paste aus Stackoverflow ohne Referenz) gleichgestellt werden und hat die üblichen Konsequenzen. 129 129 130 130 **2. Keine vollständige Automatisierung:** 131 -KI- Werkzeugedürfen z. B. zur Ideenfindung,zumErklären, beimDebuggingoder für Vorschlägegenutzt werden.Größeregenerierte Programmteile dürfen nicht ungeprüft übernommen werden. DieStudierendenmüssen verwendetenCodeverstehen,prüfen undfachlich vertretenkönnen.117 +KI-Tools dürfen zur Inspiration, Ideenfindung oder zum Debugging genutzt werden, aber keine kompletten Programmteile (z.B. ganze Klassen oder Module) dürfen automatisiert generiert und ungeprüft übernommen werden. Die Endverantwortung für die Funktionsweise und das Verständnis liegt bei den Studierenden! 132 132 133 133 **3. Lernen steht im Vordergrund:** 134 -KI -Unterstützungdarfden eigenenLern-undEntwicklungsprozessnichtersetzen.InsbesonderemüssendieBeteiligtendieresultierende Lösungverstehenund selbstständigweiterentwickelnkönnen.120 +KI darf nicht verwendet werden, um Aufgaben automatisiert zu lösen, sondern nur als ergänzende Unterstützung bei Verständnisproblemen oder als Hilfsmittel beim Lernen. 135 135 136 136 **4. Individuelle Lösungspflicht:** 137 - Wesentliche Design- und Architekturentscheidungen–z.B. Datenmodell,zentrale SpiellogikundSchnittstellen–müssenvon der Gruppeselbstgetroffen, verstandenund begründetwerden.KIkann dabei alsDiskussions- oderReflexionshilfe dienen,nicht als verantwortlicheEntscheidungsinstanz.123 +Alle wesentlichen Design- und Architekturentscheidungen (z.B. Datenmodell, Hauptlogik, Schnittstellen) müssen selbstständig ohne KI-Tools durch die Studierenden getroffen werden. 138 138 139 -= Implementierung ,TestundQualitätssicherung=125 += Teilaufgabe 4: Implementierung und Test = 140 140 141 -* Implementieren Sie dasProdukt auf GrundlagedesEntwurfs.Wennsich währendder ImplementierungÄnderungenergeben, muss derEntwurfentsprechend nachgeführtwerden.127 +* Implementieren Sie Ihr Produkt basierend auf dem Entwurf (passen Sie den Entwurf ggf. an) 142 142 * Projektname muss Gruppenname enthalten! 143 143 * ((( 144 144 Maven: 145 145 146 146 * Das Produkt muss sich mit Hilfe von **maven** bauen lassen. 147 -* D erBuildmuss**ohnevorheriges lokales `mvn install`**funktionieren.133 +* Das Bauen muss **ohne** mvn install funktionieren. 148 148 * Die Tests müssen über **maven** ausgeführt werden. 149 149 * **GUI-Tests** müssen sich ausschalten lassen. 150 -* Andere Build- Werkzeugewie Gradle dürfenhöchstensergänzend eingesetztwerden.DerMaven-Buildmussvollständigfunktionsfähigbleiben.136 +* Andere Build-Tools wie Gradle sind nicht (mehr) erlaubt dürfen maximal ergänzend verwendet werden. Maven muss aber funktionsfähig vorhanden sein. 151 151 ))) 152 152 * ((( 153 153 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]] ... ... @@ -164,22 +164,23 @@ 164 164 * Installationshandbuch etc. 165 165 ))) 166 166 * ((( 167 -[[V ideosundMaterialienu.a. zumTesten>>doc:Main.Videos.WebHome]]. TestenSie wichtige Klassenkontinuierlichmit JUnitund nicht erst amProjektende.153 +[[Vorlesungsvideos u.a. zu Testen>>doc:Main.Organisatorisches.WebHome||anchor="HVorlesungsvideos"]]. Testen Sie die wichtigen Klassen mit JUnit, nicht erst am ENDE! 168 168 169 -* Nutzen Sie Dependency Injectionkonsequent;auf der Serverseiteinsbesondere über Spring.155 +* Hilfreich: Dependency Injection (z.B. Google Guice) 170 170 * TestFX kann beim Testen der GUI helfen. Wichtiger sind aber Tests der Funktionalitäten! 171 -* GUI-Tests m üssen separatdeaktivierbarsein, damit dernormaleTestlaufauch auf einemCI-/Build-Serverohne grafischeUmgebungausgeführt werden kann.157 +* 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. 172 172 * Mocken Sie Abhängigkeiten in Unit-Tests mit Mockito 173 173 ))) 174 174 * Führen Sie Integrations- und Endtests durch 175 -* [[Führen Sie mindestens ein dokumentiertes gruppenweites Code–Review durch>>doc:Main.Projektarbeit.WebHome||anchor="HGruppenweitesCode -Review28Team-Review29"]]176 -* Nutzen Sie Werkzeuge zur statischen Analyseund Qualitätssicherung,z.B. SpotBugs, Checkstyle,SonarLint oder SonarQube.161 +* [[Führen Sie mindestens ein dokumentiertes gruppenweites Code–Review durch>>doc:Main.Projektarbeit.WebHome||anchor="HGruppenweitesCodeReview28Team-Review29"]] 162 +* Nutzen Sie Tools wie FindBugs, Checkstyle oder SonarLint 177 177 * ((( 178 178 **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!)** 179 179 180 -[[image:Warnung.png||alt="Warnung"]] 166 +[[image:Main.Aufgabenstellung.WebHome@Warnung.png||alt="Warnung"]] 181 181 ))) 182 182 * In Scrum muss ein Produktinkrement getestet und lauffähig sein. 183 183 * Versuchen Sie möglichst früh und regelmäßig die aktuelle Version auch auf dem Rechner in der Arbi zu deployen. 184 -* Bei einem JavaFX-Client soll die MVP-Struktur nachvollziehbar selbst umgesetzt werden. Zusätzliche Frameworks, die diese Struktur stark automatisieren, sollten nur eingesetzt werden, wenn ihre Auswirkungen auf Testbarkeit und Wartbarkeit verstanden und begründet werden können. 185 -* Beachten Sie auch die Hinweise zur [[Verwendung von KI>>doc:Main.Softwareentwicklung.WebHome||anchor="HNutzunggenerativerKI-Werkzeuge"]] 170 +* 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. 171 +* Beachten Sie auch die Hinweise zur [[Verwendung von KI>>doc:Main.Softwareentwicklung.WebHome||anchor="HAnforderungen:NutzungvonKITools"]] 172 +
- Warnung.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.mgrawunder - Size
-
... ... @@ -1,1 +1,0 @@ 1 -20.4 KB - Content