MIN301: Softwareentwicklungsprojekt 1: Systemverständnis und produktive Mitarbeit
Softwareentwicklungsprojekt
MIN301: Softwareentwicklungsprojekt 1: Systemverständnis und produktive Mitarbeit
Studiendekan:in des Fachbereichs
Professor:innen des Studiengangs Informatik
Master Informatik
Informatik
Deutsch
jedes Semester
1 Semester
5 ECTS
Deutsche Notenskala 1-5
2SL+2P
Software Development Project 1: System Understanding and Productive Contribution
Kompetenzen in Programmierung, Software Engineering, Softwareentwurf, Qualitätssicherung und Versionsverwaltung auf dem Niveau eines abgeschlossenen Bachelorstudiums der Informatik. Die Studierenden sollten in der Lage sein, bestehende Codebasen, technische Dokumentation und Entwicklungsprozesse eigenständig zu erschließen und in arbeitsteiligen Softwareentwicklungskontexten mitzuwirken.
WAS
Mit erfolgreichem Abschluss des Moduls sind die Studierenden in der Lage, sich innerhalb eines realitätsnahen Entwicklungsbetriebs systematisch in ein bestehendes, langlebiges und gewachsenes Softwareprodukt einzuarbeiten. Sie können dessen fachlichen und betrieblichen Zweck, Architektur, Codebasis und Entwicklungsprozesse erschließen und abgegrenzte Beiträge unter Berücksichtigung von Qualitätsanforderungen, Aufwand und Auswirkungen auf das Gesamtprodukt nachvollziehbar umsetzen.
WOMIT
Die Studierenden erreichen dieses Lernergebnis, indem sie
- Produktvision, fachliche Domäne, relevante Anspruchsgruppen und zentrale Nutzungsszenarien analysieren und den betrieblichen Zweck des Produkts erläutern,
- Architektur, Codebasis, Schnittstellen, technische Abhängigkeiten und bestehende Entwurfsentscheidungen für einen abgegrenzten Produktbereich nachvollziehen,
- sich anhand vorhandener Dokumentation, Entwicklungsartefakte und strukturierter Onboarding-Prozesse in Produkt, Team, Entwicklungsumgebung und Arbeitsabläufe einarbeiten,
- Anforderungen, Tickets und Akzeptanzkriterien für abgegrenzte Entwicklungsaufgaben verstehen, offene Fragen klären und den eigenen Aufwand schätzen,
- Änderungen an bestehenden Produktteilen entwerfen, lauffähig implementieren, versionieren und in den vorhandenen Build- und Integrationsprozess einbringen,
- ihre Beiträge durch geeignete Tests, Code Reviews und technische Dokumentation qualitätssichern und erhaltenes Feedback in die Weiterentwicklung einbeziehen,
- KI-gestützte Entwicklungswerkzeuge transparent und qualitätsbewusst einsetzen und deren Ergebnisse kritisch überprüfen,
- die Auswirkungen ihrer Änderungen auf angrenzende Systemteile, Wartbarkeit, Betrieb, Weiterentwicklungsfähigkeit und Wertbeitrag des Produkts einschätzen und ihren eigenen Beitrag reflektieren.
WOZU
Die Studierenden nutzen diese Kompetenzen, um in langlebigen Softwareprodukten auch bei unvollständigem Vorwissen fundiert handlungsfähig zu werden und produktiv an professioneller Softwareentwicklung mitwirken zu können.
- Produktvision, fachliche Domäne und Nutzungsszenarien
- Aufbau, Zweck und fachliche Grenzen eines Softwareprodukts im Produktportfolio eines fiktiven Unternehmens
- Architekturüberblick, zentrale Komponenten und Schnittstellen gewachsener Softwaresysteme
- Codebasis, technische Abhängigkeiten, Modulstruktur und bestehende Entwurfsentscheidungen
- Entwicklungsumgebung, Build-Prozess und lokale Ausführung
- Bewerbungs- und Onboarding-Simulation mit Kurzprofil, Gespräch, Teamzuordnung sowie Einrichtung von Arbeitsumgebung und Berechtigungen
- Projektorganisation, Kommunikationswege, organisatorische Abläufe und Entscheidungsprozesse im Planspielrahmen eines Softwareentwicklungsunternehmens
- Anforderungen, Tickets, Issues und vorhandene Projektdokumentation
- Lauffähige Umsetzung abgegrenzter Änderungen an bestehenden Produktteilen
- Code Reviews sowie -Tests, z.B. Unit- und Modultests
- Transparenter, datenschutz- und qualitätsbewusster Einsatz von LLMs und Softwareagenten
- Einschätzung von Auswirkungen eigener Änderungen auf angrenzende Systemteile, Wartbarkeit und Weiterentwicklungsfähigkeit sowie Dokumentation und Begründung eigener Beiträge im Produktkontext
Keine separate Prüfungsvorleistung. Die semesterbegleitenden Meilensteine, Präsentationen und Reflexionsanteile sind Bestandteil der Prüfungsleistung.
Studien- oder Projektarbeit. Sie wird als Projektportfolio mit Fachgespräch ausgestaltet. Das Portfolio dokumentiert die systematische Einarbeitung in Produkt, Architektur, Codebasis und Entwicklungsprozesse, die bearbeiteten Anforderungen und die Schätzung des eigenen Aufwands, die lauffähig umgesetzten und integrierten Softwarebeiträge, die angewandten Test-, Review- und Qualitätssicherungsmaßnahmen, die Einordnung der Beiträge in den fachlichen, technischen und betrieblichen Produktkontext sowie die Reflexion des eigenen Vorgehens und der Zusammenarbeit im Entwicklungsteam. Das Portfolio entsteht semesterbegleitend entlang vereinbarter Meilensteine. Die Studierenden stellen ihren Arbeitsstand und ihre Beiträge regelmäßig in Weeklys, Reviews und Retrospektiven vor und berücksichtigen erhaltenes Feedback bei der weiteren Bearbeitung. Das Fachgespräch dient der individuellen Prüfung des Systemverständnisses, der umgesetzten Beiträge, der Qualitätsmaßnahmen und der Einordnung der eigenen Arbeit in das Gesamtprodukt.
- Sommerville, Ian: Software Engineering. 10., aktualisierte Auflage. Pearson Studium, 2018. ISBN 978-3-86894-344-3.
- Sommerville, Ian: Modernes Software‑Engineering: Entwurf und Entwicklung von Softwareprodukten. 1. Auflage, Pearson Studium, 2020. ISBN 978-3-86894-396-2.
- Fowler, Martin: Refactoring: Improving the Design of Existing Code. 2nd Edition. Addison-Wesley Professional, 2018. ISBN 978-0-13-475759-9.
- Weitere produkt-, technologie- und kontextspezifische Fachliteratur sowie Dokumentation werden semesterbezogen in der jeweils aktuellen Fassung bereitgestellt.