Inhalt
- Einführung in die einzelnen Phasen der Softwareentwicklung: Anforderungsanalyse, Spezifikation, Entwurf, Implementierung, Test, Wartung - Prozessmodelle - Agile Softwareentwicklung - Anforderungsanalyse und -verwaltung - Modellierung von Systemen (u.a. mit UML) - Software-Architekturen und Designmuster - Teststrategien - Umgang mit Software-Alterung - Projektmanagement - Software-Engineering im Bereich Machine Learning - Refactoring zur Unterstützung der Wartungsphase
Literaturhinweise
- Software Engineering, Ian Sommerville, 10. Auflage, 2016 - Software-Engineering Kompakt, Anja Metzner, 2020 - The Essence of Software Engineering, Volker Gruhn, Rüdiger Striemer (Hrsg.), 2018
Lernziele und Kompetenzen
Die Studierenden - lernen sowohl plangesteuerte als auch agile Prozessmodelle kennen - modellieren komplexe Systeme und Prozesse mit UML-Diagrammen (wie Use Case-, Klassen-, Sequenz- und Kommunikationsdiagramme) - reproduzieren allgemeine Entwurfslösungen wiederkehrender Probleme des Software-Engineerings - erfassen funktionale und strukturelle Testansätze - setzen sich mit dem Management von Softwareprojekten auseinander