MIN301: Softwareentwicklungsprojekt 1: Systemverständnis und produktive Mitarbeit

Softwareentwicklungsprojekt

MIN301: Softwareentwicklungsprojekt 1: Systemverständnis und produktive Mitarbeit

Kurzporträt MIN301: Softwareentwicklungsprojekt 1: Systemverständnis und produktive Mitarbeit
Worum geht es? Softwareentwicklungsprojekt 1 führt in ein bestehendes, langlebiges Softwareprodukt und dessen Entwicklungsorganisation ein. Die Studierenden analysieren Produktvision, Domäne, Architektur, Codebasis und Prozesse und leisten erste qualitätsgesicherte Beiträge.
Wofür braucht man es? Die Kompetenzen werden gebraucht, um in gewachsenen Softwareprojekten schnell handlungsfähig zu werden. Sie helfen beim Onboarding, beim Verstehen fremder Systeme und bei der Umsetzung abgegrenzter Änderungen ohne das Gesamtprodukt aus dem Blick zu verlieren.
Wieso ist es interessant? Spannend ist das Modul, weil reale Software selten vollständig erklärt oder perfekt strukturiert ist. Studierende lernen, mit vorhandenen Artefakten, unvollständigem Wissen und Teamprozessen produktiv umzugehen.
Modulverantwortung

Studiendekan:in des Fachbereichs

Lehrperson(en)

Professor:innen des Studiengangs Informatik

Verwendbarkeit

Master Informatik

Fächergruppe

Informatik

Modultyp
Pflicht
Sprache

Deutsch

Angebot

jedes Semester

Dauer

1 Semester

Credits

5 ECTS

Benotung

Deutsche Notenskala 1-5

SWS

2SL+2P

Workload
Präsenzstudium: 45 Std. Selbststudium: 90 Std.
Engl. Titel

Software Development Project 1: System Understanding and Productive Contribution

Empfohlene Voraussetzungen

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.

Lernergebnisse / Kompetenzen
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.

Inhalte
  • 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
Prüfungsvorleistung

Keine separate Prüfungsvorleistung. Die semesterbegleitenden Meilensteine, Präsentationen und Reflexionsanteile sind Bestandteil der Prüfungsleistung.

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.

Literatur
  • 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.