64-184 Projekt Kollaborative verteilte Software-Entwicklung
Lehrende:
Dr. Daniel Moldt
Zeit/Ort:
Do, 12:15 bis 15:45 Uhr, D-115, D-118/119, D-117
Fr, 12:15 bis 13:45 Uhr, D-118/119, D-117, D-118
Kommentare/ Inhalte:
Hast Du Interesse an professioneller Softwareentwicklung in einem verteilten Kontext?
Möchtest du mit Scrum arbeiten oder Scrum kennenlernen?
Bei uns im Projekt lernst du gemeinsam im Team eine bestehende Java Modellierungsanwendung (Renew) kollaborativ weiterzuentwickeln, mit der Möglichkeit dich selbst einzubringen und den Verlauf des Projektes mitzugestalten.
Während des Projektes wird in einzelnen Scrum Teams an unterschiedlichen Themenblöcken gearbeitet. Begleitet werden die Teams von erfahrenen Renew Nutzern und Entwicklern, so dass eine permanente Feedback-Schleife entsteht.
Lernziel:
- Kollaboratives praktisches Arbeiten mit Scrum
- Vertiefung der Entwicklungsfähigkeiten (insb. Java)
- Einarbeiten in bestehende Entwicklungsumgebungen
- Kennenlernen des gesamten DevOps Prozesses
- Selbstständiges Lösen von Problemen im Team
- Vertiefung der eigenen Interessen, z.B. Entwicklung einer Web basierten Oberfläche eines graphischen Editors
Vorgehen:
Nach einer kurzen Einführung in Renew und die Entwicklungsumgebung werden verschiedene Scrum Teams gebildet, die verschiedene Features für Renew entwickeln. Personen aus höheren Semestern, die Erfahrungen in der Nutzung und Entwicklung im Projektkontext haben, werden mit euch zusammen als Teil Eures Teams arbeiten.
Alle 2 Wochen findet ein Sprintwechsel mit allen Projektbeteiligten statt. Hier werden jeweils kurz der Zwischenstand präsentiert, gegebenenfalls neue Releases erstellt und der nächste Sprint geplant.
Gearbeitet wird in einer professionellen Entwicklungsumgebung mit Werkzeugen wie Jira, Confluence, Git und Intellij Idea.
Begleitet wird das Projekt vom Seminar 64-160 Seminar Kommunikation, Koordination, Kooperation und Kollaboration in der verteilten Software-Entwicklung, in dem die eigenen fachlichen Interessen bezüglich des Projektes vertieft werden können und welches parallel zum Projekt belegt werden kann.
Neben allgemeinen Entwicklungstätigkeiten besteht zusätzlich die Möglichkeit am Projektmanagement mitzuwirken.
Beispiele für Themenblöcke, die von den Teams bearbeitet werden können:
- Neuste Java 17 - 22 Konzepte analysieren und einbauen
- Entkopplung von Schnittstellen und Implementationen (Architektur)
- Microservice Architektur für verteiltes Ausführen (Kubernetes, Docker etc.)
- Verteilung und Nebenläufigkeit auf Basis der neuen virtuellen Threads in Java
- Entwicklung neuer Plugins als Modul / Layer
- Einsatz neuer Entwicklungswerkzeuge
- DevOps
- Releasemanagement und -durchführung
- Qualitätssicherung, Testen und Dokumentation
- Benutzbarkeit
- Entwicklung einer webbasierten graphischen Oberfläche
- Geschäftsprozessmodellierung
- Entwicklung eines verteilten Spiels (Siedler von Catan)
- Entwicklung einer Weboberfläche eines graphischen Editors
Literatur:
Scrum Guide: https://scrumguides.org/
Renew Handbuch: https://www.informatik.uni-hamburg.de/TGI/renew/renew.pdf
Weitere Literatur kann vorab bei den Veranstaltern erfragt werden und wird zudem in der Veranstaltung bekanntgegeben.
Zusätzliche Hinweise zu Prüfungen:
Diese Veranstaltung ist Bestandteil des semesterübergreifenden Forschungsprojekts "Agentenorientierung" des Labors für agenten- und organisationsorientierte Softwareentwicklung (Laos). Im Rahmen des Forschungsprojektes besteht die Möglichkeit zur Abfassung von Projekt-, Bachelor-, Baccalaureats-, Master- und Diplomarbeiten.
Scheine und Noten können entsprechend der jeweiligen Prüfungsordnungen erworben werden.
Das Projekt eignet sich für alle Bachelorstudiengänge!
Erwartet werden, neben der aktiven Mitarbeit, eine nachhaltige Dokumentation der Arbeitsschritte und Ergebnisse sowie die Vorstellung der Ergebnisse/Lösungsansätze.