Software Engineering
Unternehmen, welche sich traditionell mit physischen Produkten beschäftigen, sehen sich bereits als Softwareunternehmen. Software ist außerdem zunehmend der entscheidende Faktor zur Differenzierung von Wettbewerbern. Das Beherrschen von Prozessen und Methoden der Softwareentwicklung ist daher essentiell. Unternehmen, welche sich traditionell mit physischen Produkten beschäftigen, sehen sich bereits als Softwareunternehmen. Software ist außerdem zunehmend der entscheidende Faktor zur Differenzierung von Wettbewerbern. Das Beherrschen von Prozessen und Methoden der Softwareentwicklung ist daher essentiell.
Software Engineering beschäftigt sich mit der systematischen Entwicklung komplexer Softwaresysteme. Kernaktivitäten der Entwicklung sind unter anderem:
- Requirements Engineering: Hier werden Geschäftsmodelle entwickelt und Systemziele festgelegt. Außerdem werden detaillierte Anforderungen erhoben, dokumentiert und priorisiert. Das Ergebnis ist eine Spezifikation der Anforderungen, die Softwarearchitekten und Entwicklern als Grundlage für alle weiteren Aktivitäten dient.
- Architektur und Design: Die Systemstruktur wird definiert, dokumentiert und evaluiert. Hierbei spielen besonders die spezifischen Anforderungen an die Softwarequalität eine Rolle (z.B. eine hohe Zuverlässigkeit und Sicherheit der Software).
- Implementierung: In dieser Aktivität wird das System implementiert, d.h. es wird der Quellcode für die Software geschrieben. Einzelne Einheiten der Software werden auch bereits getestet.
- Qualitätssicherung: Zur Überprüfung der Erfüllung der Qualitätsanforderungen wird die Software auf unterschiedlichen Ebenen getestet (z.B. Komponenten-, System- und Endnutzer-Tests).
Die Aktivitäten gestalten sich abhängig vom Kontext unterschiedlich. Im Software Engineering gibt es eine Vielzahl unterschiedlicher Prozesse und Methoden, welche zur Anwendung kommen können. Diese werden in einer Vielzahl von Modulen im WI-Studium erarbeitet.
Erstes Semester:
- Im Kurs „Programming Basics“ implementieren wir kleine Anwendungen mit der objektorientierten Programmiersprache C#.
Zweites Semester:
- „Programming User Interfaces“ beschäftigt sich mit der Gestaltung von Endnutzer-Schnittstellen und deren Implementierung.
Drittes Semester:
- Der Kurs „Advanced Programming“ beinhaltet spezialisierte Themen im Bereich der Programmierung.
Viertes Semester:
- Im Kurs „Software Engineering“ beschäftigen wir uns mit dem Entwicklungsprozess, welcher vollständig im Kurs durchlaufen wird.
- Im Kurs „Web Engineering“ werden Multi-Tier Webanwendungen entwickelt.
Fünftes Semester:
- Der Kurs „Software Projekt“ beinhaltet ein komplexeres Software Projekt, in dem ihr Software in einem Team entwickelt. Hier könnt ihr dann all Euer Wissen aus den vorherigen Modulen anwenden. Die zu entwickelnde Software wählt ihr selber aus. Eine gute Möglichkeit, um evtl. die Grundlagen für ein Startup zu schaffen.
Die obige Modulübersicht schafft eine solide Grundlage für eine berufliche Orientierung im Bereich Software Engineering. Ihr erlangt die Fähigkeit, in den Kernaktivitäten des Software Engineerings zu arbeiten. Jede Kernaktivität beinhaltet eine Vielzahl an Methoden und Werkzeugen, die ihr kennenlernt. Es wird außerdem mit vielen Praxisbeispielen gearbeitet. Wir betrachten die Vorgehen der Software Entwicklung in diversen Unternehmen, wie z.B. Microsoft, Ericsson, etc.
Relevante Module
Neben der technisch fokussierten Ausbildung in Software Engineering Kursen unterstützen weitere Kurse die ganzheitliche Betrachtung der Erstellung software-intensiver Produkte. Beispielsweise sind hier Kurse wie Business Model Transformation und Digitale Wirtschaft zu nennen. Auch Datenbanken und die Verwendung von KI für die Software-Entwicklung als auch die Entwicklung von KI-Systemen gewinnen an Bedeutung.
Bachelor
- Programming Basics
- Programming User Interfaces
- Software Engineering
- Advanced Programming
- Web Engineering
- Software Projekt
Master
- Softwarearchitektur
- Intelligente Systeme
- Digital User Experience
- Kontinuierliches Software Engineering