Grundlagen der Softwarearchitektur: Skalierbare, wartbare und robuste Softwaresysteme entwerfen.
Hands‑on mit Architekturstilen, Designprinzipien und UML‑Diagrammen.
Domain‑Driven Design und Schichtenarchitekturen anwenden.
Praktische Erfahrung sammeln durch ~70% Labs mit Modellierung und Codierung.
Nutzen: Klarheit, Wartbarkeit und Skalierbarkeit von Projekten verbessern.
Für wen: gedacht für Entwickler/innen, die ihre Architekturskills erweitern möchten.
Mit optionalem Teil zu Microservices und Cloud‑nativen Architekturen.
Curriculum
Tag 1 — Anforderungen und Systemkontext
- Kickoff, Ziele und Scope; Stakeholder und Constraints
- Elicitation von Software Requirements (funktional & nicht-funktional) für ein Connected-Cars/IoT-Beispiel
- Traceability: Verknüpfung von Anforderungen mit Use Cases und Quality Attributes (Performance, Safety, Security, Portability)
- Systemkontext & Grenzen; Hauptakteure und externe Systeme
- UML Use Case Diagrams in Enterprise Architect; gute Use-Case-Narratives schreiben
- Leichtgewichtiges Risikotrade-off (ATAM-lite) und frühe Spikes/Prototypen
Tag 1 — Von Anforderungen zu Architektur-Views
- Views und Notation wählen (C4/UML): Context, Container/Component, Deployment
- Entscheidungen mit Architecture Decision Records (ADR) dokumentieren
- Quality-Attribute-Taktiken (Availability, Performance, Modifiability) und deren Abbildung auf Designentscheidungen
Tag 2 — Strukturelle Modellierung
- Component Diagrams: Verantwortlichkeiten und Schnittstellen; Mapping auf Teams
- Deployment Diagrams: Ziel-HW/OS, Prozesse und Netzwerke; Randbedingungen für Embedded/Automotive
- Klassenanalyse: Kernklassen, Aggregate und Grenzen (DDD-lite Perspektiven)
- UML Class Diagrams: Beziehungen, Multiplizitäten, Pakete, Layering und Abhängigkeitsregeln
- Designprinzipien: SOLID und Kopplungs/Kohäsions-Heuristiken; Refactoring zu klaren Grenzen
Tag 2 — Verhaltensmodellierung
- Sequence Diagrams für Schlüsselszenarien; Timing-Notizen und Lifelines
- State Machine & Activity Diagrams für kritische Logik und Workflows
- Objektmodellierung für konkrete Szenarien (Object & Sequence Diagrams); Walk-throughs
Tag 3 — Von Modellen zum Code (Forward Engineering)
- Modelle mit der Implementierungsstrategie ausrichten; Namespaces/Packages und Modulstruktur
- Minimales Anwendungsskelett aus Enterprise Architect generieren und Basiskomponenten verdrahten
- Build, Logging und Configuration integrieren; Stubs und Test Seams
- Traceability etablieren: Klassen/Tests mit Requirements und ADRs verknüpfen
Tag 3 — Reverse Engineering und Review
- Fremdcode reengineeren, um Architektur zu rekonstruieren; Code auf Diagramme mappen
- Architektur-Peer-Review: Checklisten und Risk Burndown; Architecture Notebook pflegen
- Nächste Schritte: Governance, Versionierung der Modelle, lebende Dokumentation
Capstone — Offene Diskussion & Q&A
- Architektur ausgewählter Open-Source-Projekte (Top-Level Überblick)
- Kurzer Fokus auf 3–4 GoF Patterns zur Unterstützung des Designs (z. B. Builder, Abstract Factory, Decorator, Visitor)
- Wrap-up: individueller Verbesserungsplan
Optionale Module
Optional — Automotive-Akzente
- Safety & Security Touchpoints (ISO 26262/21434 Awareness) im Architekturprozess
- Performance-Budgets und Scheduling-Constraints für Embedded-Ziele
- Lieferantenintegration und Schnittstellenverträge
Kursablauf
- Part 1: 09:00–10:30
- Break: 10:30–10:45
- Part 2: 10:45–12:15
- Lunch break: 12:15–13:15
- Part 3: 13:15–15:15
- Break: 15:15–15:30
- Part 4: 15:30–17:30