MAS Software Engineering

Der berufsbegleitende Master of Advanced Studies Software Engineering vermittelt Ihnen modernes Technologiewissen und umfangreiche Methodenkompetenzen. Ihre Dozierenden aus Hochschule und Wirtschaft sichern Ihnen Hands-on experiences: Sie lernen, indem Sie selbst anwenden und profitieren von einem nachhaltigen Lernerlebnis.

Beim Lernen sind uns Konzepte wichtiger als konkrete Technologien. Doch Konzepte können Sie nur anhand konkreter Technologien erlernen – deshalb arbeiten Sie im MAS Software Engineering mit aktuellen Technologien. Wir setzen Java und Java-Technologien als Schulsprache ein.

Wie Ihr Studium strukturiert ist

Der Weiterbildungsmaster MAS Software Engineering besteht aus 3 Zertifikatskursen „Certificate of Advanced Studies“ (CAS) und der Master Thesis. Insgesamt umfasst Ihr Studium 60 Kreditpunkte (15 pro Semester), die Sie durch Präsenzunterricht (inklusive Team-Arbeiten und Übungen), Selbststudium und Ihrer Master Thesis erarbeiten.

Die 3 Zertifikatskurse können Sie auch einzeln besuchen, ohne den gesamten MAS zu absolvieren.

Alle 3 Semester beinhalten zu einem wesentlichen Teil praktische Übungen und Teamarbeiten. Für die Übungen benötigen Sie ein eigenes Notebook. Während der unten angegebene Dauer finden auch Ferien statt.

1. Semester: Software Engineering Foundation – 15 ECTS

Dauer: Etwa 25 Wochen
10 Lektionen pro Woche (dienstags und donnerstags 17:15 bis 21:50 Uhr) und Selbststudium Kurszertifikat Certificate of Advanced Studies (CAS) mit 15 ECTS

Unix Betriebssysteme

  • Einführung: Entstehung, Derivate, Normierung
  • UNIX-Philosophie und Architektur
    (Kern und GUI-Aufsätze)
  • Unix Shell und Shell Scripts, Unix Programmierung
  • Parallelverarbeitung und Interprozess-Kommunikation, Prozesszustände, Scheduling
  • POSIX Threads, Interprozesskommunikation (IPC): Unix Signale, Unix Pipes

Programmieren in C++

  • Datentypen, Operatoren, Anweisungen, Kontrollstrukturen
  • Blöcke, Funktionen, Klassen, friend Klassen, Templates, Namespaces
  • Vererbung, Virtuelle Funktionen, Mehrfachvererbung
  • Dynamische Speicherverwaltung
  • Schnittstelle zu C, Runtime-Type-Information RTTI
  • Exception Handling, Input- und Output in C++
  • ANSI/ISO C++ und Klassenbibliotheken

Web Engineering 1

  • HTML 5
  • CSS
  • JavaScript/EcmaScript 6
  • DOM
  • jQuery
  • Serverles Web App

Software Prozesse

  • Software-Vorgehensmodelle
  • Wasserfall- und V-Modell
  • Iterative Modelle (Unified Process)
  • Agile Prozesse (Scrum, XP)
  • Kombination von Prozessen („balanced approach“)

Windows Betriebssysteme

  • Einführung: Entstehung, Versionen und Architektur
  • Windows Registry und Services
  • Zugriffsrechte
  • Prozesse, Threads und Scheduling, Interprozesskommunikation
  • Windows Graphical User Interface
  • Dateisysteme: FAT, NTFS und Festplattenpartitionierung

Einführung in Requirements Engineering

  • Übersicht Requirements Engineering Methoden
  • Use Cases für Funktionale Anforderungen
  • Qualitätsmodell für Nichtfunktionale Anforderungen
  • Requirements Management: Verwalten, Priorisieren, Changemanagement
  • Quellen und Erhebungstechniken für Requirements

Programmieren Java

  • Datentypen, Operatoren, Anweisungen und Kontrollstrukturen
  • Programmstruktur (Blöcke, Methoden, Klassen, innere Klassen, Anwendung von Generics, Packages)
  • Schnittstellen, Vererbung und Polymorphismus,
  • Exception Handling
  • Ein- /Ausgabe und Streams
  • Architektur der Java Virtual Machine

Objektorientierte Modellierungspraxis

  • Grundlagen der Domainmodellierung
  • UML für Domainmodellierung
  • Modellierungstraining an mehreren Fallstudien

Projektarbeit Objektorientierte Softwareentwicklung

  • Objektorientierte Analyse, Objektorientiertes Design und Objektorientierte Programmierung eines Warenautomaten in Java
  • Arbeit wird in kleinen Teams ausgeführt

Grundlagen Betriebssysteme

  • Programmausführung und Hardware
  • Systemprogrammierung
  • Prozesse, Threads und Interprozesskommunikation
  • Ein- /Ausgabe

Teambuildingsabend

  • Teambildung und Teamdesign
  • Teamdiagnose und Teamentwicklung

Einführung Objektorientierte Softwareentwicklung

  • Grundbegriffe: Klassen, Vererbung, Polymorphismus
  • Einführung in UML
  • Objektorientierte Analyse (OOA) und Objektorientiertes Design (OOD) mit UML
  • Umsetzung des Objektorientierten Designs in Programmiersprache Java

Algorithmen und Datenstrukturen

  • Rekursion
  • Sortierung: Selection-, Insertion-, Merge-, Quick-Sort
  • Collections: Vector, ArrayList, Stack, Queue, Linked List, Hashtable, Map und Dictionary, Bäume, Graphen
  • Analyse von Algorithmen: O-Notation, Arithmetische Progression
2. Semester: Software Engineering Intermediate – 15 ECTS

Dauer ca. 25 Wochen
10 Lektionen pro Woche (dienstags und donnerstags 17:15 bis 21:50 Uhr) und Selbststudium
Kurszertifikat Certificate of Advanced Studies (CAS) mit 15 ECTS

Agile Software Development

  • Grundkonzepte, Agile Manifesto
  • Agile Prozesse: XP, Crystal Clear, Adaptive Software, Development (ASD), Feature Driven Development (FDD), Scrum
  • Agile Unified Process
  • Vergleich und Einordnung Agiler Prozesse

Kommunikation in verteilten Systemen

  • Grundlagen: Basisarchitekturen, Interprozesskommunikation, Service-Architekturen
  • Middleware: Synchrone Kommunikation (RMI, CORBA, REST, Webservices), Asynchrone Kommunikation (JMS)
  • Enterprise Service Bus

Project Automation

  • Verständnis der Grundprinzipien der Projektautomatisierung
  • Sicherstellung der Qualität durch Automatisierung und Continuous Integration
  • Einsatz moderner Werkzeuge zur Automatisierung von Build-, Release- und Deploymentprozessen und deren Anwendung im Projektalltag
  • Kennenlernen von Continuous Deployment und Betriebsszenarien auf Basis von Containerization-Technologien wie Docker 

Web Engineering 2

  • HTML5 inkl. Formulare, Tabellen
  • Ajax
  • CSS3: Selektoren, Eigenschaften, Box-Modell
  • JavaScript: ES5, ES6
  • DOM-API
  • Architektur von Single-Page Anwendungen

.NET Core und C#

  • .NET Grundlagen: Architektur, Laufzeitumgebung CLR, MSIL, Assemblies, Typensystem CTS
  • C # Grundlagen: Namespaces, zentrale Klassen (Objekt, Array, String), Enums,
  • Klassen und Structs: Methoden, Properties, Indexers, Konstruktoren, Operatoren
  • Vererbung: Methoden und Vererbung, Abstrakte Klassen, Interfaces
  • Delegates & Events: Multicast-Delegates, Hands-on Beispiele, Events, Anonyme Methoden
  • Generics: Type Constraints, Nullable Types, Generische Delegates
  • Language Integrated Queries LINQ: Lambda-Ausdrücke, Extension Methods, Initializers, Anonymous Types, Query Expressions
  • Protocol Buffers
  • gRPC mit .NET und C# 

Datenbanken Grundlagen

  • Grundlagen Datenbanken
  • Datenmodellierung, Relationales Datenmodell, Normalisierung
  • SQL als DDL und DML
  • Transaktionen

Software Architektur

  • Grundprinzipien guter Applikationsarchitekturen
  • Rolle des Architekten
  • Architekturtypen: Schichten, Pipes und Filters, Interaktive und Verteilte Systeme
  • Sichten auf Architekturen
  • Architektur-Patterns

Objektorientiertes Design (OOD)

  • Entwurf von Klassen mittels CRC-Karten nach Responsibility Driven Design (RDD) und Modellierung von Softwaresystemen nach Domain Driven Design (DDD)
  • Grundlegende und fortgeschrittene Design Patterns
  • Code Smells / Refactoring
  • Test Driven Development (TDD) Workshop

Parallele Programmierung

  • Multi-Thread-Programmierung
  • Monitor-Synchronisation und andere Synchronisationsprimitiven
  • Nebenläufigkeitsfehler erkennen und vermeiden
  • Effiziente Parallelisierung mit Thread Pools
  • Asynchrone Programmierung im Allgemeinen und im GUI
  • Java Memory Model und atomaren Instruktionen

Programmieren Java advanced

  • Enumerationen
  • Generics und Vererbung
  • Annotations
  • Java-Reflection API
  • Erweiterungen Java8
  • Lambdas
  • Soft-, Weak- und Phantom-Referenzen
  • Garbage-Collection  und Schwache Referenzen (Strong-, Weak-, Soft- und Phantom-Referenzen)
  • Java Native Interface (JNI)
  • Aspekt-Orientierte Prog. (AOP) mit AspectJ
  • Design-by-Contract mit Assertions und JML
  • Java Plattform Modul System JPMS
  • Java-Internationalization, Logging-Framework
3. Semester: Software Engineering Advanced – 15 ECTS

Dauer ca. 25 Wochen
10 Lektionen pro Woche (dienstags und donnerstags 17:15 bis 21:50 Uhr) und Selbststudium
Kurszertifikat Certificate of Advanced Studies (CAS) mit 15 ECTS

Software Engineering für Mobile Plattformen

  • Einführung in das Software Engineering für Android
  • Übersicht über die grundlegenden Challanges bei der Entwicklung für Mobile Plattformen
  • Entwickeln einer App für Android

Internet of Things Grundlagen

  • Hardwarenahe Programmierung
  • SE Methoden im IoT Umfeld
  • Internet Anbindung, Data/Event Hub
  • Arduino Entwicklung

Qualitätsmanagement

  • Grundlagen der Software-Prüfung
  • Messbare Merkmale von Software
  • Reviews
  • Qualitätsmanagementsysteme (ISO 9001 und 90003)
  • Qualitätssicherung
  • Prozessbewertung und -verbesserung (CMMI)
  • Prozessmetriken

Datenbanken advanced

  • DB-Security
  • Stored Procedures and Triggers
  • DB-Programmierung (JDBC, OR-Mapper JPA)

Architekturen verteilter Systeme

  • Herkunft und Basisarchitekturen
  • Grundlagen und Vorgehen
  • Bekannte Architektur-Strukturen und –Plattformen (SOA)
  • Service Architekturen
  • Anatomie verteilter Systeme, OMA, SOA, EDA Architekturen
  • Design, Implementation und Integration: Modularisierung, Schnittstellen-Design, Design eines Services

Requirements Engineering advanced

  • Requirements Engineering Prozess
  • Qualitätsmodell für Anwendungssysteme
  • Essenzielle objektorientierte Analyse der funktionalen Anforderungen
  • Systemdesign der funktionalen und nicht-funktionalen Anforderungen

Web Engineering 3

  • Typescript
  • React als Frontend-Framework
  • Responsive Web Design

Software Testing

  • Checking und Testing
  • Exploratory Testing und Session Based Test Management
  • Quality Models und Test Strategie
  • Embedded Testing in agilen Projekten
  • Domain Testing und Test Case Design
  • Unit Testing, Mocking und TDD
  • Regressionstests und Systemtest Automatisierung

Rechtliche Aspekte

  • Überblick über das Immaterialgüterrecht
  • Software: Schutz und Überlassung (Übertragung und Lizenzierung)
  • Domain-Streitigkeiten
  • E-Commerce: Rechtliche, insbesondere Datenschutz und persönlichkeitsrechtliche Aspekte im Zusammenhang mit einer Internetplattform

Application Security

  • Information Security Management, Sicherheitsmassnahmen (präventiv, korrektiv)
  • Kryptologie Grundlagen (Verschlüsselung, Signatur, Zertifikate, Authentisierung)
  • Schwachstellen (Injections, Fehlkonfigurationen, Schutz sensibler Daten)
  • Best Practices (Datenbanken, Webanwendungen, Software Development, Authentisierung und Autorisierung

Funktionale Programmierung

  • Einführung des funktionalen Programmierparadigmas
  • Referenzielle Transparenz
  • Funktionen als "first-class citizens"
  • Funktionen höherer Ordnung
  • Algebraische Datentypen
  • "Pattern matching"
  • Rekursion
  • Typen und Typinferenz

Cloud Computing

  • Grundlegende Eigenschaften: Self Service, Pay-per-Use, Elastizität, Resource Pooling, CAP-Theorem
  • Cloud Deployment Types (z. B. Private Cloud, Public Cloud)
  • Service Models: SaaS, PaaS, SaaS
  • Service Level Agreements (Security, Billing) und rechtliche Rahmenbedingungen
  • Cloud Architecture Patterns für Processing, Storage, Communication und Application Architecutre
  • Technische Umsetzung der Patterns in aktuellen Cloud Offerings

Interaction Design

  • User-Centered Design 
  • Goal-Driven Design
  • Personas, Szenarien
  • User Interface Prototypen
  • Usability Tests

Performante Teams, Process Communication Model

  • Moderationsformen von Teams 
  • Konstruktive Kommunikation als Schlüssel zur Teamarbeit
  • Gruppenregeln zur Effizienzsteigerung in Gruppenarbeiten
  • Kommunikationsmodell der Process Communication: grundlegende Persönlichkeitsprofile, Dynamik der zwischenmenschlichen Kommunikation
4. Semester: Master-Arbeit – 15 ECTS

Zum Abschluss des MAS erarbeiten Sie im 4. Semester die Master-Arbeit. Sie bringen einen Antrag mit Ihrem Themenvorschlag bei der Studienleitung ein. Die Master-Arbeiten werden als Gruppenarbeit realisiert. Sie wählen aus Ihren Dozierenden einen Coach, der Sie bei der Erarbeitung der Master Thesis betreut. Ihr Coach unterstützt Sie bei der selbstständigen Durchführung Ihrer Arbeit. Von der Studienleitung sind nur wenige Meilensteine vorgegeben sowie eine Schlusspräsentation.

Weiter zu Dozierende

Infoabend CAS Raumplanung und CAS GIS in der Planung am 2. Dezember 2019

Die beiden berufsbegleitenden Weiterbildungen CAS...

Studierenden-Projekte gestalten das Limmattal

20.11.19 - Ein Ideenwettbewerb forderte Studierende verschiedener...

MedTech Workshop: User Experience am 28. November 2019

The workshop is designed for MedTech experts and focuses on:...