64-858-P Masterprojekt Kollaborative verteilte Software-Entwicklung
Lehrende:
Dr. Daniel Moldt
Zeit/Ort:
Do., 12 bis 16 Uhr, D-115, D-118/119
Fr., 12:15 bis 13:45, D-115, D-118/119
Die Veranstaltung wird vor Ort stattfinden. Es stehen am Informatikum mehrere Rechnerräume zur Verfügung.
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 aktiv in verantwortungsvoller Weise mitzugestalten.
Während des Projektes wird in einzelnen Scrum Teams an unterschiedlichen Features gearbeitet. Begleitet werden die Teams von erfahrenen Renew Nutzern und Entwicklern, so dass eine permanente Feedback-Schleife entsteht. Weiterhin wird eng mit den beiden BSc Projekt 64-184 Kollaborative verteilte Software-Entwicklung und 64-192 Projekt Einsatz von Kubernetes, Docker und Co für die Entwicklung einer Open-Source Software zusammengearbeitet, so dass Scrum@Scale praktisch durchgeführt wird.
Lernziel:
- Kollaboratives praktisches Arbeiten mit Scrum@Scale
- Vertiefung der Entwicklungsfähigkeiten (z.B. Architekturdesign)
- Arbeiten in bestehenden Entwicklungsumgebungen
- Selbstständiges Lösen von Problemen im Team
- Entwicklung neuer Softwarekomponenten
- Übernahme von Verantwortung im Team / Projektmanagement / Produktdesign
- Vertiefung der eigenen Interessen
Vorgehen:
Nach einer kurzen Einführung in Renew und die Entwicklungsumgebung werden Scrum Teams gebildet, die sich verschiedenen Herausforderungen der Entwicklung einer komplexen Software widmen. Renew wird dort als konkreter Kontext gewählt.
Personen, die bereits umfangreiche Erfahrungen in der Nutzung und Entwicklung im Projektkontext haben, werden mit euch zusammen als Teil Eures Teams an Renew entwickeln. Weiterhin sind zwei BSc-Projekte beteiligt. Somit wird neben der Größe des Projekts die Heterogenität der Teilnehmenden eine wichtige Erfahrung sein und so auch eine sehr praxisnahe Durchführung des Projekts ermöglichen.
Alle Rollen und Tätigkeiten im Projekt werden auf Interesse, Fähigkeiten und Kenntnisse im Einvernehmen aller Beteiligten abgestimmt.
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, Gradle, Maven, Docker, Kubernetes, Intellij Idea etc., je nach Themenausrichtung.
Begleitet wird das Projekt vom integrierten Seminar 64-858-S Kommunikation, Koordination, Kooperation und Kollaboration in der verteilten Software-Entwicklung, in dem die eigenen fachlichen Interessen bezüglich des Projektes vertieft werden, um wissenschaftliche und praktische Grundlagen zu liefern.
Neben der Entwicklung an Renew besteht zusätzlich die Möglichkeit am Projektmanagement mitzuwirken.
Beispiele für Features, 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äufig auf Basis der neuen virtuellen Threads in Java
- Entwicklung neuer Plugins als Modul / Layer
- Einsatz neuer Entwicklungswerkzeuge
- Qualitätssicherung, Testen und Dokumentation
- DevOps
- Releasemanagement und -durchführung
- Benutzbarkeit
- Entwicklung einer webbasierten graphischen Oberfläche
- Geschäftsprozessmodellierung
- Entwicklung eines verteilten Spiels (Siedler von Catan)
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.
Erwartet werden, neben der aktiven Mitarbeit und einem Abschlussbericht, eine nachhaltige Dokumentation der Arbeitsschritte und Ergebnisse sowie die Vorstellung der Ergebnisse/Lösungsansätze.
Das Projekt eignet sich aufgrund der allgemeinen Themenstellung für alle Masterstudiengänge!
Das Modul kann dem Schwerpunkt Software Systems Engineering im Masterstudium zugeordnet werden.