Hausaufgabe: Unterschied zwischen den Versionen

Aus Das Sopra Wiki
Langenfeld (Diskussion | Beiträge)
Langenfeld (Diskussion | Beiträge)
KKeine Bearbeitungszusammenfassung
Zeile 25: Zeile 25:
Die folgenden Dienste sollten Sie eingerichtet und getestet haben:  
Die folgenden Dienste sollten Sie eingerichtet und getestet haben:  
* Zugang zum [[Gitea]] ihrer Gruppe auf [https://sopragit.informatik.uni-freiburg.de Sopra Git].
* Zugang zum [[Gitea]] ihrer Gruppe auf [https://sopragit.informatik.uni-freiburg.de Sopra Git].
* [[GIT#Git für das SOPRA vorbereiten|Einrichten des Git repository]].
* [[GIT#Git für das SOPRA vorbereiten|Einrichten des Git Repository]].
* Die Gruppenmailingliste.
* Die Gruppenmailingliste.


Zeile 36: Zeile 36:
* Klicken Sie auf <code>Issues -> Labels</code>.
* Klicken Sie auf <code>Issues -> Labels</code>.
* Wenn noch keine Labels eingerichtet wurden, werden Sie gefragt ob eines der vorkonfigurierten Menge von Labels verwendet werden soll. Wählen Sie hier das vorkonfigurierte Set <code>Sopra</code>.
* Wenn noch keine Labels eingerichtet wurden, werden Sie gefragt ob eines der vorkonfigurierten Menge von Labels verwendet werden soll. Wählen Sie hier das vorkonfigurierte Set <code>Sopra</code>.
* Prüfen sie ob Labels für Priorität und Zeitabschätzung vorhanden sind, wie auf dem Bild zu sehen (Details können variieren). Wenn keine Labels zur Zeitabschätzung und Prorisierung vorhanden sind, löschen Sie alle labels. Wählen Sie dann wie oben beschrieben das vorkonfigurierte Labelset für das Sopra.
* Prüfen sie ob Labels für Priorität und Zeitabschätzung vorhanden sind, wie auf dem Bild zu sehen (Details können variieren). Wenn keine Labels zur Zeitabschätzung und Priorisierung vorhanden sind, löschen Sie alle Labels. Wählen Sie dann wie oben beschrieben das vorkonfigurierte Labelset für das Sopra.
<br clear="all">
<br clear="all">


Zeile 52: Zeile 52:
* Klicken Sie auf den Reiter <code>Issues</code>.
* Klicken Sie auf den Reiter <code>Issues</code>.
* Prüfen Sie ob bereits ein Item <code>Alle Studenten in der Gruppe sollen Git und Gitea bedienen können, damit sie in Zukunft produktiver arbeiten.</code> existiert und mit <code>user story</code> getaggt ist.  
* Prüfen Sie ob bereits ein Item <code>Alle Studenten in der Gruppe sollen Git und Gitea bedienen können, damit sie in Zukunft produktiver arbeiten.</code> existiert und mit <code>user story</code> getaggt ist.  
** Wennicht legen Sie eine entsprechende Userstory an indem Sie den weiteren Punkte folgen.  
** Wenn nicht legen Sie eine entsprechende Userstory an indem Sie den weiteren Punkten folgen.  
* Klicken Sie <code>Neuer Issue</code>.
* Klicken Sie <code>Neuer Issue</code>.
* Tragen sie als Titel <code>Alle Studenten in der Gruppe sollen Git und Gitea bedienen können, damit sie in Zukunft produktiver arbeiten.</code> ein.
* Tragen sie als Titel <code>Alle Studenten in der Gruppe sollen Git und Gitea bedienen können, damit sie in Zukunft produktiver arbeiten.</code> ein.
* Weisen Sie die Label <code>user story</code> und <code>priority: high</code> zu, indem Sie auf das Zahnrad neben dem Schrifzug ''Label'' drücken und die entsprechenden Label auswählen.
* Weisen Sie die Label <code>user story</code> und <code>priority: high</code> zu, indem Sie auf das Zahnrad neben dem Schrifzug ''Label'' drücken und die entsprechenden Label auswählen.
* Weisen Sie den Sprint (Meilenstein) ''Hausaufgabe'' zu.
* Weisen Sie dem Sprint (Meilenstein) ''Hausaufgabe'' zu.
* Dürcken sie auf <code>Issue Erstellen</code>.
* Drücken sie auf <code>Issue Erstellen</code>.
* Fügen Sie außerdem noch die beiden User Stories:
* Fügen Sie außerdem noch die beiden User Stories:
** <code>Alle Studenten in der Gruppe sollen das soll die Texte verstehen, damit sie besser Spiele entwickeln können.</code> und  
** <code>Alle Studenten in der Gruppe sollen die Texte verstehen, damit sie besser Spiele entwickeln können.</code> und  
** <code>Alle Studenten in der Gruppe sollen soll ein MonoGame Programm schreiben um zu prüfen ob alles funktioniert.</code> auf dieselbe Art hinzu.
** <code>Alle Studenten in der Gruppe sollen sollen ein MonoGame Programm schreiben um zu prüfen ob alles funktioniert.</code> auf dieselbe Art hinzu.
<br clear="all">
<br clear="all">


Zeile 78: Zeile 78:
* <code> ... 'Usability-Prinzipien beim Spieldesign' Artikel lesen</code>
* <code> ... 'Usability-Prinzipien beim Spieldesign' Artikel lesen</code>
* <code> ... 'Git' und 'Git Workflow' Artikel lesen </code>
* <code> ... 'Git' und 'Git Workflow' Artikel lesen </code>
* Weisen sie der User Story <code>Alle Studenten in der Gruppe sollen das soll die Texte verstehen, damit sie besser Spiele entwickeln können.</code> alle vier Tasks als abhängigkeit zu.
* Weisen sie der User Story <code>Alle Studenten in der Gruppe sollen die Texte verstehen, damit sie besser Spiele entwickeln können.</code> alle vier Tasks als abhängigkeit zu.
<br clear="all">
<br clear="all">


Zeile 88: Zeile 88:


Bevor Sie mit den Aufgaben beginnen, sollten Sie die entsprechenden Tasks akzeptieren.  
Bevor Sie mit den Aufgaben beginnen, sollten Sie die entsprechenden Tasks akzeptieren.  
* Wählen Sie einen ihrer Taks aus dem Sprintbacklog (<code>Issues -> Milestones -> Hasaufgabe</code>) aus, indem Sie auf den Titel des Tasks klicken.
* Wählen Sie einen ihrer Tasks aus dem Sprintbacklog (<code>Issues -> Milestones -> Hausaufgabe</code>) aus, indem Sie auf den Titel des Tasks klicken.
* Weisen Sie das Lebel <code>estimate: 1</code> zu, um eine Zeitabschätzung zu geben, wie lange Sie für diese Aufgabe brauchen werden. Wenn sie vermuten, Sie benötigen mehr als eine Stude, wählen Sie einen entsprechend höheren Wert aus.  
* Weisen Sie das Label <code>estimate: 1</code> zu, um eine Zeitabschätzung zu geben, wie lange Sie für diese Aufgabe brauchen werden. Wenn sie vermuten, Sie benötigen mehr als eine Stunde, wählen Sie einen entsprechend höheren Wert aus.  
* Weisen Sie sich dem Taks zu, indem Sie auf das Zahnrad neben dem Schriftzug ''Zuständig'' klicken, und ihren Benutzernamen auswählen.  
* Weisen Sie sich dem Task zu, indem Sie auf das Zahnrad neben dem Schriftzug ''Zuständig'' klicken, und ihren Benutzernamen auswählen.  
Die Änderungen werden sofort gespeichert (es ist nicht nötig einen Kommentar zu schreiben). Aktzeptieren Sie so alle Tasks die sie in den vorhergehenden Aufgaben erstellt haben.  
Die Änderungen werden sofort gespeichert (es ist nicht nötig einen Kommentar zu schreiben). Aktzeptieren Sie so alle Tasks die sie in den vorhergehenden Aufgaben erstellt haben.  
<br clear="all">
<br clear="all">
Zeile 98: Zeile 98:
Bevor Sie mit der Arbeit zu beginnen, prüfen Sie noch einmal ob alle Tasks und Userstories im Sprintbacklog vorhanden sind.
Bevor Sie mit der Arbeit zu beginnen, prüfen Sie noch einmal ob alle Tasks und Userstories im Sprintbacklog vorhanden sind.
* Klicken sie auf den Reiter <code>Issues -> Meilensteine -> Hausaufgabe</code>
* Klicken sie auf den Reiter <code>Issues -> Meilensteine -> Hausaufgabe</code>
* Schränken Sie die Anzeige auf Userstories ein, indem sie in dem Sie den Button <code>Label ⯆</code> drücken und das Label <code>user story</code> auswählen. Prüfen Sie ob alle Userstories vorhanden sind.  
* Schränken Sie die Anzeige auf Userstories ein, indem Sie den Button <code>Label ⯆</code> drücken und das Label <code>user story</code> auswählen. Prüfen Sie ob alle Userstories vorhanden sind.  
* Schränken Sie die Anzeige auf ihnen Zugewiesene Tasks ein, indem sie unter <code>Label ⯆</code> <code>alle Labels</code> wählen, und unter <code>Zuständig ⯆</code> ihren Usernamen. Prüfen Sie ob alle Tasks vorhanden sind.
* Schränken Sie die Anzeige auf ihnen zugewiesene Tasks ein, indem sie unter <code>Label ⯆</code> <code>alle Labels</code> wählen, und unter <code>Zuständig ⯆</code> ihren Usernamen. Prüfen Sie ob alle Tasks vorhanden sind.
* Erstellen Sie eventuell nicht vorhandene Userstories und Tasks wie in den vorhergehenden Aufgaben beschrieben.
* Erstellen Sie eventuell nicht vorhandene Userstories und Tasks wie in den vorhergehenden Aufgaben beschrieben.


Zeile 108: Zeile 108:
* Machen Sie sich mit den anderen Funktionen von [[Gitea]] vertraut und lesen Sie den Artikel [[Scrum und Gitea]]
* Machen Sie sich mit den anderen Funktionen von [[Gitea]] vertraut und lesen Sie den Artikel [[Scrum und Gitea]]
* Beschreiben Sie in einem Kommentar  zu Task ''Student <username> soll 'Scrum' verstehen'' (Kommentarfeld unter <code>Issues -> Meilensteine -> Hausaufgabe -> Student <username> soll 'Scrum' verstehen</code>) kurz und prägnant wie Scrum funktioniert, und wie Scrum im SoPra auf Gitea realisiert wird.
* Beschreiben Sie in einem Kommentar  zu Task ''Student <username> soll 'Scrum' verstehen'' (Kommentarfeld unter <code>Issues -> Meilensteine -> Hausaufgabe -> Student <username> soll 'Scrum' verstehen</code>) kurz und prägnant wie Scrum funktioniert, und wie Scrum im SoPra auf Gitea realisiert wird.
* Schießen Sie danach den Task.
* Schließen Sie danach den Task.


== Aufgabe 4: Texte lesen ==  
== Aufgabe 4: Texte lesen ==  
Lesen Sie sich die folgenden Artikel durch, und kommentieren Sie ihr entsprechendes Ticket:
Lesen Sie sich die folgenden Artikel durch, und kommentieren Sie ihr entsprechendes Ticket:
* Lesen Sie [[CleanCode|Clean Code Development]]  
* Lesen Sie [[CleanCode|Clean Code Development]]  
** Beschreiben Sie in einem Kommentar zum entsprechenden Task ein Cleancodeprinzip dass noch keiner aus ihrer Gruppe beschrieben hat.
** Beschreiben Sie in einem Kommentar zum entsprechenden Task ein Cleancodeprinzip das noch keiner aus ihrer Gruppe beschrieben hat.
* Lesen Sie [[Dokumentation]]
* Lesen Sie [[Dokumentation]]
* Lesen Sie [[UsabilityForGames|Usability-Prinzipien beim Spieldesign]]  
* Lesen Sie [[UsabilityForGames|Usability-Prinzipien beim Spieldesign]]  
** Beschreiben Sie in einem Kommentar zum entsprechenden Task ein Usabilityprinzip dass noch keiner aus ihrer Gruppe bschrieben hat.
** Beschreiben Sie in einem Kommentar zum entsprechenden Task ein Usabilityprinzip das noch keiner aus ihrer Gruppe beschrieben hat.
* Lesen sie die Artikel [[GIT|Git]] und [[GitWorkflow| Git Workflow]]
* Lesen sie die Artikel [[GIT|Git]] und [[GitWorkflow| Git Workflow]]
** [[Git#Repository clonen|Clonen]] sie das Gruppenrepository.
** [[Git#Repository clonen|Klonen]] sie das Gruppenrepository.
** Schreiben ihren Namen (und falls noch nicht eingetragen den Termin für das Gruppentreffen) in die <code>README.md</code>. Verwenden Sie hierfür nicht den Editor in Gitea, sondern editieren sie die Datei in ihrem lokalen Git-Repository.
** Schreiben Sie Ihren Namen (und falls noch nicht eingetragen den Termin für das Gruppentreffen) in die <code>README.md</code>. Verwenden Sie hierfür nicht den Editor in Gitea, sondern editieren sie die Datei in ihrem lokalen Git-Repository.
** [[Git#Änderungen an einer Datei| Comitten]] sie ihre Änderungen. Benutzen sie die Commitnachricht <code>Added Name to Readme.md (closes <ticketnummer>)</code> um den entsprechenden Task in Gitea [[Git#Git und Gitea | per Commitnachricht zu schließen]].
** [[Git#Änderungen an einer Datei| Committen]] sie ihre Änderungen. Benutzen sie die Commitnachricht <code>Added Name to Readme.md (closes <ticketnummer>)</code> um den entsprechenden Task in Gitea [[Git#Git und Gitea | per Commitnachricht zu schließen]].
** [[Git#Änderungen in das remote Repository laden (pushen)| Syncronisieren]] sie ihre Änderugen mit dem Server. Beachten Sie dabei [[GitWorkflow#Tägliche Arbeit Synchronisieren| den vorgeschlagenen Git-Workflow]].
** [[Git#Änderungen in das remote Repository laden (pushen)| Synchronisieren]] sie ihre Änderungen mit dem Server. Beachten Sie dabei [[GitWorkflow#Tägliche Arbeit Synchronisieren| den vorgeschlagenen Git-Workflow]].


=== Tasks bearbeiten ===
=== Tasks bearbeiten ===
Bearbeiten sie die Tasks und tragen sie entsprechende Zeiten in den Tickets ein. Besonders bei Programmieraufgaben ist dies sinnvoll, da so eine Historie der Bearbeitung und der verbrauchten Zeit erstellt wird. Dies hilft nicht nur Ihnen bei der Planung weiterer Aufgaben und Abschätzung der dafür benötigten Zeit, sondern dient auch als Nachweis für Ihre kontinuierliche Mitarbeit (siehe [[Formalien]]).
Bearbeiten sie die Tasks und tragen Sie entsprechende Zeiten in den Tickets ein. Besonders bei Programmieraufgaben ist dies sinnvoll, da so eine Historie der Bearbeitung und der verbrauchten Zeit erstellt wird. Dies hilft nicht nur Ihnen bei der Planung weiterer Aufgaben und Abschätzung der dafür benötigten Zeit, sondern dient auch als Nachweis für Ihre kontinuierliche Mitarbeit (siehe [[Formalien]]).


'''Achtung''': Geben Sie acht beim Zeit eintragen, da Sie die Summe nachträglich nur nach oben verändern können.
'''Achtung''': Geben Sie Acht beim Zeit eintragen, da Sie die Summe nachträglich nur nach oben verändern können.


=== Tasks schließen ===
=== Tasks schließen ===
Wenn Sie mit einer Aufgabe fertig sind, sollten Sie Ihren entsprechenden Task schließen. Gehen Sie ähnlich wie beim Akzeptieren eines Tasks vor und drücken Sie auf den Button ''Schießen''.
Wenn Sie mit einer Aufgabe fertig sind, sollten Sie Ihren entsprechenden Task schließen. Gehen Sie ähnlich wie beim Akzeptieren eines Tasks vor und drücken Sie auf den Button ''Schließen''.


Vergessen Sie nicht die Zeit die Sie für den Task benötigt haben, einzutragen (falls Sie das noch nicht gemacht haben).
Vergessen Sie nicht die Zeit, die Sie für den Task benötigt haben, einzutragen (falls Sie das noch nicht gemacht haben).


== Aufgabe 5: Programm schreiben ==  
== Aufgabe 5: Programm schreiben ==  
Zeile 180: Zeile 180:
=== Abgabe Finalisieren ===
=== Abgabe Finalisieren ===
{{RefImg|gitea_mergehomework.png|300px|12|Einen Pullrequest erstellen.}}
{{RefImg|gitea_mergehomework.png|300px|12|Einen Pullrequest erstellen.}}
Wenn Sie in Ihrer Gruppe die Aufgaben als Leztes abschließen (d.h. sie den lezten offenen Task (nicht Userstory) im Sprint schießen, müssen Sie noch folgende Schritte ausführen.
Wenn Sie in Ihrer Gruppe die Aufgaben als letztes abschließen (d.h. Sie den letzten offenen Task (nicht Userstory) im Sprint schließen, müssen Sie noch folgende Schritte ausführen.
* Schießen Sie alle Userstories für die die entsprechenden Tasks abgeschlossen wurden (da alle Tasks geschlossen sind, sollten das alle Userstories sein).
* Schließen Sie alle Userstories für die entsprechende Tasks abgeschlossen wurden (da alle Tasks geschlossen sind, sollten das alle Userstories sein).
* Erstellen sie einen [[Gitea#Pullrequest|Pullrequest]], sodass der aktuelle Stand von <code>dev</code> nach <code>master</code> gemerged wird. Gehen Sie wie folgend vor:
* Erstellen sie einen [[Gitea#Pullrequest|Pullrequest]], sodass der aktuelle Stand von <code>dev</code> nach <code>master</code> gemerged wird. Gehen Sie wie folgt vor:
** Klicken Sie in Gitea auf den Reiter <code>Code -> Branch: dev</code>.
** Klicken Sie in Gitea auf den Reiter <code>Code -> Branch: dev</code>.
** Drücken Sie auf den Grünen Button neben dem Branch-dropdown.
** Drücken Sie auf den grünen Button neben dem Branch-dropdown.
** Prüfen Sie im folgenden Dialog, dass als Ziel <code>master</code> und als pullen von <code>dev</code> gewählt sind. Geben Sie dem Pullrequest den Titel ''Hausaufgabe''.  
** Prüfen Sie im folgenden Dialog, dass als Ziel <code>master</code> und als pullen von <code>dev</code> gewählt sind. Geben Sie dem Pullrequest den Titel ''Hausaufgabe''.  
** Drücken Sie auf <code>Pullrequest Erstellen</code>.
** Drücken Sie auf <code>Pullrequest Erstellen</code>.
** Gitea wird feststellen, dass <code>dev</code> automatisch in <code>master</code> gemergt werden kann. Ein weiteres Drücken auf <code>Pull-Request Zusammenführen</code> öffnet ein Kommentarfenster, noch einmal drücken schließt den Pull-request ab.
** Gitea wird feststellen, dass <code>dev</code> automatisch in <code>master</code> gemerged werden kann. Ein weiteres Drücken auf <code>Pull-Request Zusammenführen</code> öffnet ein Kommentarfenster, noch einmal drücken schließt den Pull-Request ab.


Die Änderungen die Sie und ihre Gruppe Während des Hausaufgabensprints gemacht haben, wurden nun in den Masterbranch übertrangen.
Die Änderungen die Sie und ihre Gruppe während des Hausaufgabensprints gemacht haben, wurden nun in den Masterbranch übertrangen.


=== Hinweise ===
=== Hinweise ===