Software Engineering: UML, Clean Architecture & CI/CD

Praxisorientierter Hochschulkurs im Software Engineering: Agile Anforderungsanalyse mit Scrum, UML-Systemmodellierung, Design Patterns und TDD in C#.

Softwareentwicklung im industriellen Maßstab erfordert weit mehr als Programmierkenntnisse: Sie verlangt systematische Anforderungsanalyse, robuste Architekturmuster, agile Prozesse und kompromisslose Testautomatisierung. Der Kurs vermittelt die ingenieurmäßigen Methoden zur Konstruktion wartbarer, langlebiger Softwaresysteme in C#.

Target Audience

Bachelor- und Master-Studierende der Fachrichtung Informatik sowie Berufspraktiker und Softwareentwickler, die systematische Architektur- und Testkompetenz vertiefen möchten.

Course Prerequisites

  • Gute Programmierkenntnisse in einer modernen objektorientierten Sprache (vorzugsweise C# oder Java)
  • Grundverständnis relationaler Datenbanken und Datenstrukturen
  • Erste Erfahrungen mit der Versionsverwaltung Git

Learning Goals

  • Agile Prozessmodelle: Praktische Steuerung von Entwicklungsprojekten mit Scrum, Kanban und User Story Mapping.
  • Architektur & Design Patterns: Systementwurf mit UML-Diagrammen, GoF-Mustern, SOLID-Prinzipien und Clean Architecture.
  • Test-Driven Development (TDD): Automatisierte Qualitätssicherung mit NUnit, Mocking-Frameworks und systematischem Refactoring.
  • Continuous Integration & DevOps: Automatisierte Build- und Test-Pipelines mit GitHub Actions und statischer Code-Analyse.

Course Syllabus

  1. Agiles Vorgehen & Anforderungsanalyse: Agile Softwareentwicklung und Requirements Engineering: Scrum-Rollen und Artefakte, User Stories nach INVEST, Akzeptanzkriterien und Aufwandschätzung.
  2. Systemarchitektur & UML-Modellierung: Modellbasierter Architekturentwurf mit der Unified Modeling Language (UML 2): Use-Case-, Klassen-, Komponenten-, Sequenz- und Zustandsdiagramme im Detail.
  3. Clean Architecture & Design Patterns: Prinzipien wartbarer Softwarearchitektur: Hohe Kohäsion und lose Kopplung, SOLID-Designprinzipien, Dependency Inversion sowie klassische GoF-Entwurfsmuster.
  4. Testautomatisierung, Unit-Testing & TDD in C#: Systematische Qualitätssicherung in C# und .NET: Testpyramide, Unit-Tests nach dem Arrange-Act-Assert-Muster, Test-Driven Development und Mocking-Frameworks.
  5. Build-Automatisierung & CI/CD-Pipelines: Versionsverwaltung und Continuous Integration: Git-Branching-Strategien (Feature-Branch, Pull-Request), Code-Reviews und automatisierte GitHub Actions.

Course Modules

Structured learning units covering theoretical foundations, practical implementations, and industry tooling.

Module 01

Agiles Vorgehen & Anforderungsanalyse

Agile Softwareentwicklung und Requirements Engineering: Scrum-Rollen und Artefakte, User Stories nach INVEST, Akzeptanzkriterien und Aufwandschätzung.

Read More
Module 02

Systemarchitektur & UML-Modellierung

Modellbasierter Architekturentwurf mit der Unified Modeling Language (UML 2): Use-Case-, Klassen-, Komponenten-, Sequenz- und Zustandsdiagramme im Detail.

Read More
Module 03

Clean Architecture & Design Patterns

Prinzipien wartbarer Softwarearchitektur: Hohe Kohäsion und lose Kopplung, SOLID-Designprinzipien, Dependency Inversion sowie klassische GoF-Entwurfsmuster.

Read More
Module 04

Testautomatisierung, Unit-Testing & TDD in C#

Systematische Qualitätssicherung in C# und .NET: Testpyramide, Unit-Tests nach dem Arrange-Act-Assert-Muster, Test-Driven Development und Mocking-Frameworks.

Read More
Module 05

Build-Automatisierung & CI/CD-Pipelines

Versionsverwaltung und Continuous Integration: Git-Branching-Strategien (Feature-Branch, Pull-Request), Code-Reviews und automatisierte GitHub Actions.

Read More