[{"body":"","link":"https://pos.se.uni-hannover.de/","section":"","tags":null,"title":""},{"body":"","link":"https://pos.se.uni-hannover.de/series/einstieg/","section":"series","tags":null,"title":"Einstieg"},{"body":"","link":"https://pos.se.uni-hannover.de/tags/index/","section":"tags","tags":null,"title":"Index"},{"body":"","link":"https://pos.se.uni-hannover.de/tags/pos/","section":"tags","tags":null,"title":"POS"},{"body":"","link":"https://pos.se.uni-hannover.de/post/","section":"post","tags":["index"],"title":"Posts"},{"body":"","link":"https://pos.se.uni-hannover.de/series/","section":"series","tags":null,"title":"Series"},{"body":"","link":"https://pos.se.uni-hannover.de/tags/","section":"tags","tags":null,"title":"Tags"},{"body":"POS steht für Point-of-Sale. Das SE-POS-System ist das neue und innovative Kassensystem des aufstrebenden Gourmetreastaurants SWQitchen für SEnsationelle SPEzialitäten.\nAufgabe des POS-Systems Das POS-System wurde konzipiert, um Bestellungen von Gästen aufzunehmen und die üblichen Aufgaben wie das Berechnen von Steuern und Preisen zu übernehmen. Dazu verwendet das System eine Hauptansicht, in der Sie ein Nummernfeld finden, über welches Gerichte durch interne Nummer eingegeben werden können. Alternativ gibt es auf der rechten Seite eine Liste mit allen Gerichten, die vom Restaurant angeboten werden.\nWenn Gerichte zur Bestellung hinzugefügt wurden, kann mithilfe der Knöpfe unten rechtes abgerechnet werden. Dabei ist zu beachten, dass die richtige Auswahl \u0026quot;Hier essen\u0026quot; oder \u0026quot;Mitnehmen\u0026quot; gewählt wird, denn dies hat einen großen Einfluss auf die Steuern!\nNatürlich soll die Bedienung der App dabei die Mitarbeiter unterstützen und nicht unnötig aufhalten. Beispielsweise können zu Gerichten weitere Optionen dazugebucht werden, indem diese auf der Bestellliste angeklickt werden. Beispielsweise kann so direkt angegeben werden, dass ein Getränk ohne Eis oder mit extra Eis bestellt wurde. Wenn der Gast sich jedoch umentscheidet, können Optionen wieder einfach gelöscht werden.\nHoffnung an das POS-System Da das System für die SWQitchen neu ist, hoffen wir, dass die Software gut funktioniert und die Arbeit in unserem bescheidenen Restaurant positiv beeinflusst. Schwerwiegende Fehler können wir uns als mittelständisches Unternehmen auf Dauer nicht leisten. Stellen Sie sich beispielsweise vor, Preise würden inkorrekt berechnet werden oder Bestellungen müssten neu gestartet werden, wenn man falsche Zusatzoptionen bestellt... Dies wäre eine absolute Katastrophe für uns.\n","link":"https://pos.se.uni-hannover.de/post/explain/","section":"post","tags":["POS"],"title":"Was ist das POS-System?"},{"body":"","link":"https://pos.se.uni-hannover.de/categories/","section":"categories","tags":null,"title":"Categories"},{"body":"","link":"https://pos.se.uni-hannover.de/tags/docs/","section":"tags","tags":null,"title":"Docs"},{"body":"","link":"https://pos.se.uni-hannover.de/categories/erste-schritte/","section":"categories","tags":null,"title":"Erste-Schritte"},{"body":"","link":"https://pos.se.uni-hannover.de/tags/javadoc/","section":"tags","tags":null,"title":"Javadoc"},{"body":"","link":"https://pos.se.uni-hannover.de/tags/spezifikation/","section":"tags","tags":null,"title":"Spezifikation"},{"body":"Die Dokumentation wird Ihnen in Form der üblichen JavaDoc zur Verfügung gestellt. Diese finden Sie online unter JavaDoc. Die JavaDoc ist Ihre wichtigeste Bezugsquelle. Alle funktionellen Anforderungen an die Software sind darin erklärt.\nSpezifikation Betrachten Sie die JavaDoc als Ihre Spezifikation. Wenn Sie wissen möchten, wie sich eine Methode verhält, schauen Sie in der JavaDoc nach. Wenn Sie der Meinung sind, dass eine Methode nicht ausreichend erklärt ist, dann ist dies von unserer Seite aus so beabsichtigt. Versuchen Sie den Kontext zu verstehen und debuggen Sie im Zweifel manuell, um tiefergehende Funktionsweisen der einzelnen Methoden und Klassen zu erahnen, wenn Sie die Dokumentation nicht nachvollziehen können.\nDie Code-Basis des POS Systems ist sehr umfangreich. Wir haben die Dokumentation für Sie abgespeckt auf die Inhalte, welche für Sie relevant sind. Fertigen Sie nur zu den Methoden Tests an, welche in der JavaDoc kommentiert wurden. Wenn eine Methode nicht kommentiert wurde, können Sie davon ausgehen, dass Sie diese nicht verstehen müssen und entsprechend keine Tests dazu schreiben müssen.\nViele der kommentierten Methoden haben einen oder keinen Parameter. Das bedeutet, dass sie höchstwahrscheinlich mit internen Zuständen der Klasse arbeiten. Schätzen Sie anhand der Beschreibungen der Klasse und der Methoden ab, wie sich Zustände innerhalb einer Klasse ändern und testen Sie dieses ebenfalls. Erinnern Sie sich dabei an die Vorlesung. Dort wurde der Unterschied zwischen tranformativen und reaktiven Systemen erläutert.\nErste Schritte mit der Dokumentation Um sich in der Code-Basis umzusehen, verwenden Sie die Tree-Ansicht. Dort werden alle für Sie relevanten Klassen aufgelistet. Eine Main-Klasse gibt es für Sie nicht, da Sie die Funktionsweise des Gesamtsystems nicht verstehen müssen.\nSuchen Sie sich eine Klasse in der Tree-Ansicht aus und versuchen Sie sich zu überlegen, wozu diese gedacht ist. Schreiben Sie dann anhand der Kommentare Ihre Tests. Beispielsweise ist die Signal-Klasse ein guter Punkt, um einzusteigen, da diese vom Umfang her sehr gering ist.\nEs ist außerdem dringend empfohlen, dass Sie sich mit der ProductDatabase auseinandersetzen.\nSchlussbemerkung Natürlich dürfen Sie gerne Fragen stellen, aber wir werden keine näheren Erläuterungen der Funktionsweise von Klassen oder Methoden preisgeben, da es Ihre Aufgabe ist, sich effektiv mit Dokumentationen und dem explorativen Testen zu befassen. Um lernen. wie Sie ein Projekt aufsetzen können, schauen Sie sich Projektaufsetzen - Beispiel an.\n","link":"https://pos.se.uni-hannover.de/post/howtodocs/","section":"post","tags":["docs","javadoc","spezifikation"],"title":"Wie verwende ich die Dokumentation"},{"body":"","link":"https://pos.se.uni-hannover.de/tags/git/","section":"tags","tags":null,"title":"Git"},{"body":"","link":"https://pos.se.uni-hannover.de/tags/gradle/","section":"tags","tags":null,"title":"Gradle"},{"body":"","link":"https://pos.se.uni-hannover.de/tags/java/","section":"tags","tags":null,"title":"Java"},{"body":"","link":"https://pos.se.uni-hannover.de/tags/projekt/","section":"tags","tags":null,"title":"Projekt"},{"body":"","link":"https://pos.se.uni-hannover.de/tags/setup/","section":"tags","tags":null,"title":"Setup"},{"body":"AAAAAAAAAAAAAAAAA\nDamit Sie an der Teamaufgabe teilnehmen können, müssen Sie ein bisschen Vorarbeit leisten. In dieser Anleitung wird Ihnen Schritt-für-Schritt erklärt, welche Vorbedingungen notwendig sind. Da es eine Vielzahl von IDEs gibt, wird diese Anleitung keine IDE verwenden. Das heißt,Sie können entweder eine beliebige IDE verwenden, mit der Sie sich bereits auskennen, oder Sie verwenden einen Text-Editor wie Visual Studio Code oder Notepad++. Sie werden ein Terminal benötigen. Wenn Sie ein Linux- oder Mac-Benutzer sind, werden Sie sich wie zu Hause fühlen. Windows-Benutzer müssen auf CMD oder das \u0026quot;neue\u0026quot; Windows Terminal zurückgreifen.\nJava Damit Sie überhaupt mit JUnit arbeiten können, brauchen Sie entsprechend Java. Wir verwenden die Version 21. Erkundigen Sie sich selbstständig, wie Sie Java 21 für Ihr System herunterladen können.\nWindows-Benutzer können beispielsweise of OpenJDK 21 zurückgreifen, welches Sie im Archiv finden können.\nLinux-Benutzer werden wahrscheinlich ausschließlich OpenJDK verwenden, welches Sie unter Debian herunterladen können mit\n1sudo apt install openjdk-21-jdk Achten Sie darauf, dass Ihre PATH Variable korrekt gesetzt wird. Um dies zu prüfen, geben Sie ins Terminal den folgenden Befehl ein:\n1java --version Dies sollte zurückgeben, dass Java 21 verwendet wird.\nGit Sie werden Git benötigen, um das Projekt herunterzuladen und mit Ihren Teammitgliedern kollaborativ zu arbeiten. Wennn Sie Linux- oder Mac-Benutzer sind, werden Sie git höchstwahrscheinlich bereits installiert haben.\nWindows-Benutzer können Git for Windows oder Cygwin verwenden.\nWir hoffen, dass Sie mit Git vertraut sind. Alle notwendigen Befehle, die Sie kennen müssen, lauten:\n1git clone 2git branch 3git switch 4git checkout 5git remote add/remove 6git fetch 7git pull Verwenden Sie die git Man Pages um mehr über diese Befehle zu erfahren.\nGradle Das Projekt wurde für Sie in Gradle aufgesetzt. Grundsätzlich müssen Sie Gradle nicht installieren, da sich ein Wrapper im Projekt befindet, den Sie nutzen können. Der Gradle-Wrapper wird im Projektverzeichnes über gradlew angesprochen. Wenn Sie allerdings Gradle ohne Wrapper verwenden möchten, können Sie sich dieses ebenfalls installieren. Folgen Sie dazu der Anleitung.\nProjekt herunterladen Clonen Sie sich das für Sie bereitgestellte POS-Test-Projekt.\nWenn Sie das System debuggen oder einfach nur nutzen möchten, dann verwenden Sie:\n1./gradlew run -x test Wenn Sie Ihre Tests ausführen möchten, verwenden Sie:\n1./gradlew clean test Damit alles korrekt funktioniert, können Sie nach Änderungen zunächst das Projekt builden:\n1./gradlew clean build Tests schreiben Tests werden im Verzeichnis app/src/test/java/pos_system geschrieben. Legen Sie dort Klassen an, in denen Sie Ihre Tests schreiben. Achten Sie darauf, dass die Tests in einer Klasse sinnvoll zusammenhängen sollte. Denken Sie an Kohäsion und Kopplung.\n","link":"https://pos.se.uni-hannover.de/post/howtosetup/","section":"post","tags":["setup","java","git","gradle","projekt"],"title":"Voraussetzungen der Entwicklungsumgebung"},{"body":"","link":"https://pos.se.uni-hannover.de/tags/aufgabe/","section":"tags","tags":null,"title":"Aufgabe"},{"body":"Ihre Aufgabe Die Aufgabenbeschreibung und die Folien zur Teamaufgabe 2 finden Sie im Stud.IP unter\nÜbung: SWQ/Dateien/Teamaufgaben/Teamaufgabe 2\nDie Folien erklären Ihnen die nötigen Grundlagen zum Bearbeiten der Aufgabe. So wird Ihnen der Einstieg in das Testen mit JUnit und Mockito erleichtert. Es ist also ratsam, sich erst mit den Folien zu beschäftigen, bevor Sie die Aufgabe bearbeiten. Wenn Sie Fragen haben oder nach Teampartnern suchen wollen, nutzen Sie das Forum.\nJUnit Wie man JUnit konkret verwendet, können Sie auf der JUnit User-Guide Seite finden. Ansonsten stellen Sie Ihre Fragen gerne ins Forum und wir werden versuchen, diese zu beantworten.\nSollten Sie sehr spezifische Fragen haben, die nicht über das Forum klärbar sind, schreiben Sie gerne Ihrem Tutor eine Nachricht. Dies sollte allerdings nicht der Regelfall sein.\nMockito Lesen Sie für weitere Informationen den Guide von Baeldung zu Mockito oder das Tutorial von vogella.\nSollten Sie sehr spezifische Fragen haben, die nicht über das Forum klärbar sind, schreiben Sie gerne Ihrem Tutor eine Nachricht. Dies sollte allerdings nicht der Regelfall sein.\nGradle Wenn Sie Gradle nicht selbst installiert haben, was in Ordnung ist, da wir Ihnen einen Wrapper mitliefern, dann verwenden Sie Gradle über das Terminal mit gradlew [commands]. Wenn Sie weitere Hilfe brauchen, lesen Sie die Hilfeseite gradle --help oder die Command-Line Reference.\nGit Lesen Sie den Setup Guide.\n","link":"https://pos.se.uni-hannover.de/post/ressources/","section":"post","tags":["setup","aufgabe","projekt"],"title":"Ressourcen"},{"body":"Dieses Beispiel setzt ein Projekt mit Visual Studio Code auf. Dazu muss zunächst VSCode installiert werden. Diesen Schritt werden wir in der Anleitung allerdings überspringen. Ebenfalls werden wir die Installation von Java und Git überpringen. Mehr dazu finden Sie im Setup Guide.\nSchritt 1 - Projekt mit Gitlab aufsetzen. Stellen Sie sicher, dass Sie einen Account im LUH Gitlab besitzen und richten Sie sich einen SSH Key ein.\nKlonen Sie das POS-Test Projekt aus dem SE-Gitlab mit folgendem Befehl:\n1git clone https://git.se.uni-hannover.de/swq-teamabgabe2/pos-system-test.git pos-system-test Nachdem Sie das Projekt gecloned haben, müssen Sie es mit Ihrem Projekt im Gitlab verknüpfen. Wichtig ist, dass Sie noch kein Projekt im Gitlab angelegt haben. Diesen Schritt unternehmen wir nun gemeinsam.\nFinden Sie Ihren persönlichen Namespace heraus oder erstellen Sie im LUH Gitlab eine Gruppe. Beispielsweise ist mein persönlicher Namespace unter dem Pfad /cedric.wellhausen/.\nWechseln Sie das Verzeichnis in das von Ihnen geklonte Projekt pos-system-test und wechseln Sie das remote-origin mit dem folgenden Befehl.\n1git config user.name \u0026#34;IHR NAME\u0026#34; 2git config user.email \u0026#34;IHRE@EMAIL\u0026#34; # Sollte die E-Mail sein, die auch im LUH Gitlab hinterlegt ist. 3git remote remove origin 4git remote add origin git@gitlab.uni-hannover.de:/IHR.NAMESPACE/pos-system-test.git Jetzt haben Sie das Origin umgebogen und können Ihr Remote-Repository im LUH Gitlab anlegen, indem Sie einfach die Dateien pushen mit:\n1git add -A 2git commit 3git push --set-upstream origin master Wenn Sie das Remote nicht wechseln, werden Sie Probleme bekommen, da Sie mit einem push versuchen auf das für Sie nicht schreibbare Original-Projekt zu pushen.\nJetzt ist es für Sie möglich, VSCode in dem Projektverzeichnis zu öffnen und loszulegen. Es macht Sinn, für VSCode Extensions zu installieren. Für Java können Sie diesem Tutorial folgen.\nUm zu testen, ob alles funktioniert, können Sie ein neues Terminal öffnen, indem Sie oben in der Menüleiste auf Terminal \u0026gt; New Terminal klicken oder den Shortcut Ctrl+Shift+ö verwenden. Geben Sie im Terminal den Befehl gradlew build run -x test ein. Es sollte sich die POS Anwendung öffnen.\n","link":"https://pos.se.uni-hannover.de/post/example/","section":"post","tags":["setup","java","git","projekt"],"title":"Projekt aufsetzen - Ein Beispiel"},{"body":"","link":"https://pos.se.uni-hannover.de/tags/ssh/","section":"tags","tags":null,"title":"Ssh"},{"body":"Sie sollten einen SSH-Key verwenden, da dies das Leben sehr einfach macht. Unter allen Betriebssystemen richten Sie sich einen SSH-Key folgendermaßen ein:\n1ssh-keygen # geben Sie hier einfach keine Passwörter ein, wenn Sie gefragt haben. Lassen Sie leer und drücken Sie einfach Enter. 2cd ~/.ssh 3cat id_rsa.pub Kopieren Sie die Ausgabe und fügen Sie den kopierten Text (welcher Ihr ssh Public-Key ist) in Gitlab ein unter\n1Gitlab/Preferences/SSH-Keys/New-Key ","link":"https://pos.se.uni-hannover.de/post/sshkey/","section":"post","tags":["setup","ssh"],"title":"Wie richte ich einen SSH-Key ein?"}]