Hausaufgabe: Unterschied zwischen den Versionen
Aus Das Sopra Wiki
Keine Bearbeitungszusammenfassung |
|||
| Zeile 14: | Zeile 14: | ||
Sie finden die relevanten Download-Links unter [[Downloads]]. | Sie finden die relevanten Download-Links unter [[Downloads]]. | ||
* [[.NET]] 4.6.1 | * [[.NET]] 4.6.1 | ||
* [[Visual Studio]] 2015 Enterprise | * [[Visual Studio]] 2015 Enterprise | ||
* [[MonoGame]] 3.6 | * [[MonoGame]] 3.6 | ||
* [[Resharper]] (beachten Sie die [[Resharper#Konfiguration|Hinweise zur Konfiguration]]) | * [[Resharper]] (beachten Sie die [[Resharper#Konfiguration|Hinweise zur Konfiguration]]) | ||
* Ein [[ | * Ein [[GIT|GIT]]-Client ihrer Wahl | ||
* Wenn Sie auf einem der Poolrechner entwickeln möchten, beachten Sie die Installationshinweise für Poolrechner auf der [[Downloads#Installation_im_Pool|Downloads-Seite]]. | * Wenn Sie auf einem der Poolrechner entwickeln möchten, beachten Sie die Installationshinweise für Poolrechner auf der [[Downloads#Installation_im_Pool|Downloads-Seite]]. | ||
=== Dienste === | === Dienste === | ||
Um auf die Dienste zugreifen zu können, brauchen Sie einen gültigen Poolaccount. | Um auf die Dienste zugreifen zu können, brauchen Sie einen gültigen Poolaccount. | ||
Die folgenden Dienste sollten Sie getestet haben: | Die folgenden Dienste sollten Sie getestet haben: | ||
| Zeile 27: | Zeile 27: | ||
* Zugang zum Trac ihrer Gruppe | * Zugang zum Trac ihrer Gruppe | ||
* Die Gruppenmailingliste | * Die Gruppenmailingliste | ||
* TODO | |||
Die Adressen dieser Dienste finden sich auf der [[Gruppeneinteilung]]sseite. | Die Adressen dieser Dienste finden sich auf der [[Gruppeneinteilung]]sseite. | ||
== Aufgabe 2: Gitea == | |||
Bereiten Sie ihr Gitea auf den Hausaufgabensprint und die Aufgaben ihrer Gruppe vor. Gehen Sie dazu wie folgt vor. | |||
== | === Gitea vorbereiten === | ||
Um Gitea in Verbindung mit Scrumm verwenden zu können, müssen vorher bestimmte Labels für die Items im Backlog (Issuetracker) eingerichtet werden. | |||
{{RefImg|gitea_setuptags.png|600px|2|Auswahl der vorkonfigurierten Labels.}} | |||
* Klicken Sie auf ''Issues''. | |||
* Klicken Sie auf ''Labels''. | |||
{{RefImg| | * Wenn noch keine Labels eingerichtet wurden, werden Sie gefragt ob eines der vorkonfigurierten Menge von Labels verwendet werden solln. Wählen Sie hier das vorkonfigurierte Set ''Sopra''. | ||
* Klicken | |||
* | |||
=== Sprint für Hausaufgabe anlegen === | === Sprint für Hausaufgabe anlegen === | ||
{{RefImg| | {{RefImg|gitea_firstsprintmilestone.png|600px|2|Das Formular für die Erstellung eines neuen Milestones.}} | ||
Prüfen | Prüfen sie ob in Gitea ein Sprint (Milestone) für die Hausaufgabe angelegt wurde. | ||
* Klicken Sie | * Klicken Sie auf den Reiter ''Issues''. | ||
* Klicken Sie | * Klicken Sie auf den Button ''Milestones'' | ||
* | * Falls noch keinen Sprint (Milestone) für die Hausaufgabe angelegt wurde, legen sie diesen an. Verwenden Sie das Datum für das Ende des Sprints die Abgabe auf der [[Roadmap]]. | ||
<br clear="all"> | <br clear="all"> | ||
=== | === Userstory für die Hausaufgabe anlegen === | ||
{{RefImg| | {{RefImg|gitea_firstuserstory.png|600px|4|Neue Userstory anlegen.}} | ||
Prüfen Sie | Prüfen Sie ob für die Hausaufgabe bereits alle Userstories existieren. Wenn nicht, legen Sie diese an. | ||
* Klicken Sie | * Klicken Sie auf den Reiter ''Issues''. | ||
* | * Prüfen Sie ob bereits ein Item ''Alle Studenten in der Gruppe sollen Git und Gitea bedienen können, damit sie in Zukunft produktiver arbeiten.'' existiert und mit ''user story'' getaggt ist. Wennicht legen Sie eine entsprechende Userstory an indem Sie den weiteren Punkte folgen. | ||
* Klicken Sie auf den Button ''Neuer Issue''. | |||
* Tragen sie als Titel ''Alle Studenten in der Gruppe sollen Git und Gitea bedienen können, damit sie in Zukunft produktiver arbeiten.'' ein. | |||
* Weisen Sie die Label ''user story'' und ''priority: high'' 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. | |||
* Dürcken sie auf ''Issue Erstellen''. | |||
* Fügen Sie außerdem noch die beiden User Stories ''Alle Studenten in der Gruppe sollen das soll die Texte verstehen, damit sie besser Spiele entwickeln können.'' und ''Alle Studenten in der Gruppe sollen soll ein MonoGame Programm schreiben um zu prüfen ob alles funktioniert.'' auf dieselbe Art hinzu. | |||
* Klicken Sie auf | |||
* | |||
* | |||
* Fügen Sie außerdem noch die beiden User Stories | |||
<br clear="all"> | <br clear="all"> | ||
=== Tasks für Aufgabe 3 erstellen === | === Tasks für Aufgabe 3 erstellen === | ||
Legen Sie nun einen Task "Student <username> soll 'Scrum' verstehen" an. | |||
* Klicken Sie auf den Reiter ''Issues''. | |||
Legen Sie nun einen Task | * Klicken Sie auf den Button ''Neuer Issue''. | ||
* Klicken Sie | * Tragen Sie als Titel ''Student <username> soll Scrum verstehen'' ein. | ||
* Klicken Sie auf | * Weisen Sie das Label ''priority: high'' zu. | ||
* | * Weisen Sie den Sprint (Meilenstein) ''Hausaufgabe'' zu. | ||
* | * Speichern Sie den Task ab, indem sie ''Issue Erstellen'' dürcken. | ||
* | |||
* Speichern Sie den Task ab | |||
<br clear="all"> | <br clear="all"> | ||
=== Tasks für Aufgabe 4 erstellen === | === Tasks für Aufgabe 4 erstellen === | ||
Erstellen Sie die Tasks für Aufgabe 4 | Erstellen Sie auf dieselbe Weise die Tasks für Aufgabe 4: | ||
* | * 'Clean Code Development' Artikel lesen | ||
* | * 'Dokumentation' Artikel lesen | ||
* | * 'Usability-Prinzipien beim Spieldesign' Artikel lesen | ||
* | * 'Git' Artikel lesen | ||
<br clear="all"> | <br clear="all"> | ||
=== Tasks für Aufgabe 5 erstellen === | === Tasks für Aufgabe 5 erstellen === | ||
Erstellen Sie einen Task für Aufgabe 5, z.B. "Programm schreiben", auf dieselbe Weise wie für Aufgaben 3 und 4 | Erstellen Sie einen Task für Aufgabe 5, z.B. "Programm schreiben", auf dieselbe Weise wie für Aufgaben 3 und 4. | ||
<br clear="all"> | <br clear="all"> | ||
=== Tasks akzeptieren === | === Tasks akzeptieren === | ||
{{RefImg|trac_resolve_ticket.png|600px|12|Detailansicht eines Tasks.}} | <!-- {{RefImg|trac_resolve_ticket.png|600px|12|Detailansicht eines Tasks.}} --> | ||
Bevor Sie mit den Aufgaben beginnen, sollten Sie Ihren entsprechenden Tasks akzeptieren. | Bevor Sie mit den Aufgaben beginnen, sollten Sie Ihren entsprechenden Tasks akzeptieren. | ||
* Wählen Sie auf | * Wählen Sie einen Taks aus dem Productbacklog (Issues) aus, indem Sie auf den Titel des Tasks klicken. | ||
* | * Weisen Sie das Lebel ''estimate: 1'' zu um eine abgeschätzte Arbeitszeit von einer Stunde anzugeben. | ||
* Weisen Sie den Sprint (Meilenstein) ''Hausaufgabe'' zu. | |||
* Weisen Sie sich dem Taks zu, indem Sie auf das Zahnrad neben dem Schriftzug ''Zuständig'' klicken, und ihren Benutzernamen auswählen. | |||
Die Änderungen werden sofort nach der Änderung gespeichert. Es ist nicht nötig einen Kommentar zu schreiben. | |||
<br clear="all"> | <br clear="all"> | ||
=== | === Überprüfen der Tasks === | ||
{{RefImg| | {{RefImg|gitea_hausaufgabe_tasks.png|600px|13|Tasks und Userstories für die Hausaufgabe.}} | ||
Bevor Sie beginnen sich Tickets zuzuweisen und mit der Arbeit zu beginnen, prüfen Sie noch einmal ob alle Tasks und Userstories im Sprintbacklog vorhanden sind. | |||
* Klicken sie auf den Reiter ''Issues''. | |||
* Klicken sie den Button ''Meilensteine''. | |||
* Klicken sie auf den Meilenstein ''Hausaufgabe''. | |||
* Schränken Sie die Anzeige auf Userstories ein, indem sie in dem Sie den Button ''Label ''⯆ drücken und das Label ''user story'' auswählen. Prüfen Sie ob alle Userstories vorhanden sind. | |||
* Schränken Sie die Anzeige auf ihnen Zugewiesene Tasks ein, indem sie unter ''Label ''⯆ ''alle Labels'' wählen, und unter ''Zuständig ''⯆ ihren Usernamen. Prüfen Sie ob alle Tasks vorhanden sind. | |||
* Erstellen Sie eventuell nicht vorhandene Userstories und Tasks wie in den vorhergehenden Aufgaben beschrieben. | |||
== Aufgabe 3: Scrum und | == Aufgabe 3: Scrum und Gitea verstehen == | ||
* Recherchieren Sie, was [[Scrum]] ist und wie Scrum funktioniert. | * Recherchieren Sie, was [[Scrum]] ist und wie Scrum funktioniert. | ||
* Lesen Sie außerdem den Wikipedia-Artikel zu [http://de.wikipedia.org/wiki/User_Story User Stories]. | * Lesen Sie außerdem den Wikipedia-Artikel zu [http://de.wikipedia.org/wiki/User_Story User Stories]. | ||
* Machen Sie sich mit den anderen Funktionen | * Machen Sie sich mit den anderen Funktionen von Gitea vertraut und lesen Sie den Artikel [[Scrumm und Gitea]] | ||
* Beschreiben Sie in einem Kommentar zu Task "Student <username> soll 'Scrum' verstehen" kurz und prägnant wie Scrum funktioniert. | |||
* Beschreiben Sie in | |||
== Aufgabe 4: Texte lesen == | == Aufgabe 4: Texte lesen == | ||
Lesen Sie sich die folgenden Artikel durch: | Lesen Sie sich die folgenden Artikel durch, und kommentieren Sie ihr entsprechendes Ticket: | ||
* [[CleanCode|Clean Code Development]] | * [[CleanCode|Clean Code Development]] und beschreiben sie __ein__ Cleancodeprinzip (dass sonst noch keiner aus Ihrer Gruppe gewählt hat) kurz und prägnant. | ||
* [[Dokumentation]] | * [[Dokumentation]] | ||
* [[UsabilityForGames|Usability-Prinzipien beim Spieldesign]] | * [[UsabilityForGames|Usability-Prinzipien beim Spieldesign]] und beschreiben Sie eine Verletzung der Usability-Prinzipien in einem Spiel (oder anderer Software). | ||
* [[ | * [[GIT#Gitea|Gitea und Git]] clonen Sie ihr Gruppenrepository. Verändern sie etwas in der Readme.md. Schließen Sie ihr Ticket für diese Aufgabe über die Commitmessage, und pushen sie den Commit. | ||
<br clear="all"> | <br clear="all"> | ||
=== 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]]). | |||
'''Achtung''': Geben Sie | '''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 | 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''. | ||
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 207: | Zeile 142: | ||
** Das Logo muss transparent sein, d.h. es dürfen keine weißen Ränder der verwendeten Grafik sichtbar sein. Außerdem muss durch alle nicht-schwarzen Stellen des Logos hindurchgesehen werden können. | ** Das Logo muss transparent sein, d.h. es dürfen keine weißen Ränder der verwendeten Grafik sichtbar sein. Außerdem muss durch alle nicht-schwarzen Stellen des Logos hindurchgesehen werden können. | ||
** Das Logo muss korrekt skaliert sein, damit es vollständig in den sichtbaren Bereich hinein passt. | ** Das Logo muss korrekt skaliert sein, damit es vollständig in den sichtbaren Bereich hinein passt. | ||
** Das Logo darf während der Bewegung nicht über die Ränder des sichtbaren Bereiches hinausragen. (Größenveränderung des Fensters ist zu vernachlässigen. Es gilt | ** Das Logo darf während der Bewegung nicht über die Ränder des sichtbaren Bereiches hinausragen. (Größenveränderung des Fensters ist zu vernachlässigen. Es gilt die Größe des Fensters bei Programmaufruf.) | ||
* Innerhalb des [[MonoGame]]-Fensters wird ein Maus-Cursor angezeigt.<br />'''Hinweis, falls Sie mit einer virtuellen Maschine arbeiten, in der Windows installiert ist:''' Normalerweise wird der Mauszeiger in MonoGame Fenstern standardmäßig ausgeblendet, wenn man ihn nicht explizit aktiviert. Beim Arbeiten mit einer virtuellen Maschine kann es jedoch sein, dass der Mauszeiger im Fenster immer angezeigt wird. In diesen Fällen wird nicht bemerkt, dass man den Mauszeiger eigentlich hätte anschalten müssen. Um sicher zu stellen, dass die Anforderung erfüllt ist, testen Sie Ihr Programm sicherheitshalber noch einmal an einem der Poolrechner unter Windows, um einen möglichen Punktabzug an dieser Stelle in der Hausaufgabe auszuschließen. | * Innerhalb des [[MonoGame]]-Fensters wird ein Maus-Cursor angezeigt.<br />'''Hinweis, falls Sie mit einer virtuellen Maschine arbeiten, in der Windows installiert ist:''' Normalerweise wird der Mauszeiger in MonoGame Fenstern standardmäßig ausgeblendet, wenn man ihn nicht explizit aktiviert. Beim Arbeiten mit einer virtuellen Maschine kann es jedoch sein, dass der Mauszeiger im Fenster immer angezeigt wird. In diesen Fällen wird nicht bemerkt, dass man den Mauszeiger eigentlich hätte anschalten müssen. Um sicher zu stellen, dass die Anforderung erfüllt ist, testen Sie Ihr Programm sicherheitshalber noch einmal an einem der Poolrechner unter Windows, um einen möglichen Punktabzug an dieser Stelle in der Hausaufgabe auszuschließen. | ||
* Wenn der Benutzer mit der Maus innerhalb des Fensters klickt, soll ein Sound abhängig von der Position des Cursors abgespielt werden: | * Wenn der Benutzer mit der Maus innerhalb des Fensters klickt, soll ein Sound abhängig von der Position des Cursors abgespielt werden: | ||
** Befindet sich der Cursor über dem Logo, soll ein Ton A erklingen. | |||
** | ** Befindet sich der Cursor nicht über dem Logo, soll ein Ton B erklingen. | ||
** | |||
** Ton A und Ton B müssen verschieden sein. | ** Ton A und Ton B müssen verschieden sein. | ||
=== Randbedingungen === | === Randbedingungen === | ||
| Zeile 245: | Zeile 174: | ||
=== Abgabe === | === Abgabe === | ||
Bitte verwenden Sie zur finalen [[Abgabe#Hausaufgabe|Abgabe]] der Hausaufgabe das [[Subversion|SVN]]-Repository ihrer Gruppe: {{:Abgabe/Hausaufgabe}} | Bitte verwenden Sie zur finalen [[Abgabe#Hausaufgabe|Abgabe]] der Hausaufgabe das [[Subversion|SVN]]-Repository ihrer Gruppe: {{:Abgabe/Hausaufgabe}} | ||
=== Abgabe Finalisieren === | |||
{{RefImg|gitea_mergehomework.png|600px|12|Detailansicht eines Tasks.}} | |||
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. | |||
* Schießen Sie alle Userstories für die die entsprechenden Tasks abgeschlossen wurden (da alle Tasks geschlossen sind, sollten das alle Userstories sein). | |||
* Erstellen sie einen [[Gitea#Pullrequest|Pullrequest]], sodass der aktuelle Stand von ''dev'' nach ''master'' gemerged wird. Gehen Sie wie folgend vor: | |||
** Klicken Sie in Gitea auf den Reiter ''Code''. | |||
** Wählen Sie im Branch-dropdown den Branch ''dev''. | |||
** Drücken Sie auf den Grünen Button neben dem Branch-dropdown. | |||
** Prüfen Sie im folgenden Dialog, dass als Ziel ''master'' und als pullen von ''dev'' gewählt sind. Geben Sie dem Pullrequest den Titel ''Hausaufgabe''. | |||
** Drücken Sie auf **Pullrequest Erstellen**. | |||
** Drücken Sie im Folgenden zwei mal auf ''Pull-Request Zusammenführen''. | |||
Die Änderungen die Sie und ihre Gruppe Während des Hausaufgabensprints gemacht haben, wurden nun in den Masterbranch übertrangen. | |||
=== Hinweise === | === Hinweise === | ||
