====== Praxis der Software Entwicklung ====== == im Sommersemester 2021 == * **Betreuung:** [[people:thomasblaesius|]], [[people:christopherweyand|]], [[people:marcuswilhelm|]] * **Teilnahme:** Die Teilnehmerzahl ist auf zwei Teams zu je 5 Personen beschränkt. Die Anmeldung erfolgt zentral während der ersten Vorlesungswochen. ===== Termine ===== Die Auftaktveranstaltung zu PSE findet dieses Semester am Freitag, den 16. April 2020, um 14:00 Uhr als Live-Stream (Zoom-Link befindet sich im [[https://ilias.studium.kit.edu/goto.php?target=crs_1477627&client_id=produktiv|ILIAS]])) statt. Hier werden die einzelnen Themen in Kurzpräsentationen vorgestellt. Die Teams werden dann via [[https://pse.informatik.kit.edu/|ODYSSEE]] eingeteilt. Es wird ein wöchentliches Treffen geben. Der Termin dafür wird in der Einführungsveranstaltung abgesprochen. Es ist geplant, dass die Einführungsveranstaltung sowie sämtliche Treffen online stattfinden, voraussichtlich über Zoom oder eine Jitsi Instanz. ===== Aufgabenstellung ===== In diesem Projekt soll ein Visualisierungstool für (große) Netzwerke mit zugrunde liegender hyperbolischer Geometrie entwickelt werden. Mit "zugrunde liegender hyperbolischer Geometrie" ist gemeint dass die Knoten der Graphen hyperbolische Koordinaten haben. Die hyperbolischen Koordinaten stammen dabei zum Beispiel aus (erstaunlich natürlichen) Einbettungen "echter Netzwerke" (z.B. [[https://www.nature.com/articles/ncomms1063|dieses Nature Paper]]) oder aus der Generierung künstlicher Netzwerke (z.B. [[https://en.wikipedia.org/wiki/Hyperbolic_geometric_graph|Hyperbolische Zufallsgraphen]]). Um hyperbolische Koordinaten im Euklidischen darzustellen, müssen diese in ein geeignetes Modell umgerechnet werden (z.B. natives Modell, zur Veranschaulichung siehe [[https://github.com/maxkatzmann/native-hyperbolic-ipelet/blob/main/example.png|hier]], oder das Poincaré Kreisscheibenmodell, siehe [[https://en.wikipedia.org/wiki/Poincar%C3%A9_disk_model|hier]]). Ziel des Projektes ist es, eine Desktopanwendung zu schreiben, in welcher Graphen mit hyperbolischen Knotenkoordinaten geladen und angezeigt werden können. Um verschiedene Regionen des Graphen genauer zu betrachten, soll es außerdem möglich sein den hyperbolischen Ursprung zu verschieben. Falls entsprechende Vorkenntnisse vorhanden sind, wäre es außerdem möglich das rendering der Graphen GPU-basiert zu implementieren (z.B. über OpenGL). Sofern nicht anders abgesprochen soll Java als Programmiersprache verwendet werden, nach Absprache und bei einstimmiger Zustimmung des gesamten Teams kann hiervon zugunsten von z.B. C++ abgewichen werden. Die wöchentlichen Besprechungen werden online über eine Jitsi Instanz des Lehrstuhls durchgeführt. ===== Ablauf und vorläufiger Zeitplan ===== Neben der Qualität des von Ihnen erstellten Systems, steht das Vorgehen nach einem Prozessmodell der Softwaretechnik bei diesem Projekt genauso im Vordergrund. /* Dies spiegelt sich auch im nachfolgenden Zeitplan wider. */ Zu jeder Projektphase ist ein Dokument zu erstellen, das den Ablauf der jeweiligen Phase bzw. deren Ergebnisse beschreibt. Ein genauer Ablaufplan wird noch bekannt gegeben. /* * **Erstes Gruppentreffen:** 31. Oktober 2018 * **Abgabe des Pflichtenhefts:** 23. November 2018, kurz danach müssen Sie ihr Pflichtenheft im Rahmen eines Kolloquiums erläutern (Termin nach Vereinbarung). * **Abgabe des Entwurfs:** 21. Dezember 2018, kurz danach müssen Sie ihren Entwurf im Rahmen eines Kolloquiums verteidigen (Termin nach Vereinbarung, voraussichtlich Anfang 2019). * **Abgabe Implementierungsbericht:** 1. Februar 2019, kurz danach findet das Implementierungskolloquium statt (Termin nach Vereinbarung). * **Klausurpause:** Individuelle 2 Wochen nach eigenem Ermessen während Validierung * **Abgabe des Testberichtes und Systemabnahme:** 8. März 2019 * **Abschlusspräsentation:** 22. März 2019 Die Abgabetermine sind verbindlich, die Kolloquien finden nach Vereinbarung statt. */ ===== Materialien ===== Materialien folgen. /* * {{:teaching:winter2018:pse:pse2018.pdf|Folien}} der Auftaktveranstaltung vom 23. Oktober 2018*/ /* * {{ :teaching:sommer2020:pse:introduction.pdf |Folien}} der Einführungsveranstaltung vom 6. Mai 2020 * {{ :teaching:sommer2020:pse:assignment.pdf |Allgemeine Aufgabenstellung}} * Phase 1: {{ :teaching:sommer2020:pse:funct-spec-document.pdf |Pflichtenheft}} */ /* * Phase 2: {{:teaching:winter2018:pse:design.pdf|Entwurf}} * Phase 3: {{:teaching:winter2018:pse:implementation.pdf| Implementierung}} * Phase 4: {{:teaching:winter2018:pse:validation.pdf|Validierung}} */ /* ===== Software ===== Die im Folgenden vorgestellten Werkzeuge und Frameworks sind Empfehlungen unsererseits. Sofern nicht anders abgesprochen soll Java als Programmiersprache verwendet werden. Wenn alle einverstanden sind und entsprechende Vorkenntnisse vorhanden sind kann auch C++ verwendet werden. Sollten Sie eine andere Programmiersprache bevorzugen, dann sprechen Sie dies bitte mit den Betreuern ab. Sie sind dabei in jedem Fall frei in der Wahl der verwendeten Frameworks und Bibliotheken, sofern diese die Aufgabenstellung nicht unverhältnismäßig vereinfachen. */ /* ====Plannungswerkzeuge====
Mindjet Campus - MindManager ist ein Werkzeug für Brainstorming, Strukturieren von Informationen, Planen von Projekten und vielem mehr.


Lucidchart ist ein Werkzeug vergleichbar mit Microsoft Visio nur, dass es für alle Plattformen geeignet ist. Es ist zum entwickeln von Diagrammen in verschiedenen Themenbereichen geeignet (z.B. UML) und bietet einen Änderungsverlauf, Gruppenchat und -kommentierung an. Es ist eine Echtzeitanwendung und bietet die Möglichkeit im Team zu arbeiten. Weiterhin bietet es verschiedene Formate zum Export und Import an.

//Ausschließlich Windows//
Microsoft Visio 2013 ist ein Tool zum entwickeln von Diagrammen für verschiedene Themenbereiche (unter anderem UML-Diagramme) mit vorhandenen Formen, Schablonen und verschiedenen Effekten. Weiterhin bietet Microsoft Visio 2013 eine gemeinsame Dokumentenerstellungsfunktion, die die Teamarbeit erleichtert.
Um die Lücke zwischen Microsoft Visio und Eclipse zu schließen existiert ein Werkzeug namens Visio-EMF Bridge. */ ===== Links ===== * [[https://pp.ipd.kit.edu/lehre/SS2021/pse/|Zentrale Hauptseite beim IPD Snelting]] * [[https://i11www.iti.kit.edu/teaching/sommer2020/pse|Projektseite ITI Wagner 2020]] * [[https://i11www.iti.kit.edu/information/ipe_tutorial|Ipe-Sammlung (Ipelets und KIT-Vorlagen)]]