Das CAS Software Engineering vermittelt Ihnen die Grundlagen, um ein Informatiksystem oder -produkt systematisch, d. h. unter Verwendung von bewährten Prinzipien, Methoden und Werkzeugen, zu realisieren. Das CAS Software Engineering kann als Wahlpflicht-CAS im Rahmen des DAS Informatik und des MAS Informatik angerechnet werden.
Zielpublikum:Sie möchten lernen, wie systematisch von der Idee über die Anforderungen zum Design und der Realisierung ein Informatiksystem oder -produkt entsteht?
Oder Sie möchten Ihre bestehenden Kompetenzen im Software Engineering mit modernen Software-Entwicklungsprozessen, Methoden und Techniken erweitern oder aktualisieren?
Ziele:Folgende Fragestellungen stehen im Zentrum des CAS Software Engineering:
- Wie müssen Projektteams und der Softwareprozess organisiert werden, um effizient und effektiv Software entwickeln zu können?
- Wie werden Anforderungen erhoben, verhandelt und beschrieben?
- Wie werden eine zweckmässige und wartbare Softwarearchitektur und ein Design erstellt?
- Wie kann sichergestellt werden, dass das Softwareprodukt die geforderte Qualität aufweist?
Inhalt:
Modul "Menschen, Prozesse und Requirements Engineering"
- Einführung in das Thema Software Engineering (Historie, Disziplinen)
- Softwareentwicklungsprozesse in der Praxis
- Techniken und Methoden der plangetriebenen Softwareentwicklung (Projektmanagement)
- Agile Softwareentwicklung mit Scrum
- Prozesse, Rollen und Zeremonien von skalierter, agiler Softwareentwicklung allgemein und mit SAFe
- Kriterien und Vorgehen für das Tailoring eines Softwareentwicklungsprozesses
- Einführung ins Requirements Engineering
- System- und Systemkontextabgrenzung
- Stakeholder- und Riskmanagement
- Ermittlungstechniken (Befragungs-, Kreativitäts-, Beobachtungs- und unterstützende Techniken)
- Workshops (physisch und virtuell) vorbereiten und durchführen
- Anforderungen natürlichsprachlich erarbeiten und dokumentieren
- Anforderungen mit dem Use-Case-Ansatz modellieren
- Anforderungen mit UML modellieren, dokumentieren und kommunizieren
- Anforderungen im agilen Umfeld (Scrum) prüfen, abstimmen und verwalten (Qualitätsaspekte, Prinzipien und Techniken)
Modul "Softwarearchitektur und -design"
- Grundlagen von Softwarearchitekturen (Tätigkeiten, grundlegende Konzepte, Typen von softwareintensiven Systemen)
- Entwurf von Architekturen (Vorgehens-, Architektur- und Design Patterns, Domain-Driven-Design, Clean Architecture)
- Use Case Realisierung und Klassendesign (Responsability Driven Design)
- Modellierung, Beschreibung und Kommunikation von Softwarearchitekturen mit gängigen Methoden
- Qualität und Bewertung von Softwarearchitekturen (Werkzeuge für Softwarearchitekten)
Modul "Softwaretest"
- Grundlagen und Begrifflichkeit des Softwaretestens
- Testprozess, Teststrategien und -Stufen (Unit-, Integrations-, System- und Akzeptanztests)
- Testing im agilen Umfeld (Scrum)
- Überblick und Einsatz von Test-Techniken für statische und dynamischer Tests
- Einführung ins Test-Management (Organisation, Planung, Strategie, Wirtschaftlichkeitsaspekte)
- Testautomatisierung (für unterschiedliche Anwendungen und die höheren Teststufen wie z. B. Systemtest)