Advanced Software Engineering - FS 17


Update: the exam will be in the office of Prof. Gall (BIN 2.D.02). Please wait at the table in front of the room if the door is closed.




Prof. Dr. Harald Gall, Dr. Philipp Leitner

(with plenty of special guests)

Schedule: Mo, 10:15-12:00
Language: English
AP (ECTS): 4.0
Target audience: Students in MSc Informatik
Requirements: MSc Informatik: Master-Basismodul
Software Engineering, Programming, Distributed Systems
Registration: UZH Buchungstool
VVZ: organizational details in UZH online course catalog (VVZ)
Contact: Please email Philipp Leitner for any administrative matters

Learning Goals

Students shall be able to understand and apply advanced methods, techniques, and processes in software engineering. A special focus is set on engineering cloud- and Web-based software.

In this context, we primarily discuss architectural concerns of Web-based software, cloud computing, engineering for elasticity, advanced programming techniques often encountered in the context of Web-based software projects (i.e., aspect-oriented programming and domain-specific language engineering), performance management, and Web release engineering.


This course offers a combination of lectures and a project with a presentation. This structure allows the students to actively learn during the lecture and in preparation before and after the lecture using concrete examples. Grading will be based on the project, presentations, and the oral exam.


The project this year is done in teams of 3 students. Each team chooses one cloud computing technology (e.g., AWS EC2 or Microsoft Azure) and then builds an elastic Twitter sentiment analysis platform using the chosen technology.

The project is presented to the rest of the class on two presentation days. The first presentation should focus on the architecture of the solution, while the second presentation shall demo the final product.

More details to the project are in this PDF document (PDF, 178 KB).


Date Topic Documents/Assignments
20.02.2017 Kickoff and Introduction of Project (Leitner)

Lecture Kickoff Slides (PDF, 5 MB)

Project Description (PDF, 178 KB)

27.02.2017 Software Architecture 1 - Architectural Patterns and Styles (Leitner)

Slides (PDF, 11 MB)

Mandatory Reading

06.03.2017 Software Architecture 2 - Distributed Systems Architectures (Leitner) Slides (PDF, 8 MB)
13.03.2017 Software Architecture 3 - ATAM (Gall) Slides (PDF, 1 MB)
20.03.2017 Engineering Cloud Applications 1 - Cloud Computing (Leitner)

Slides (PDF, 5 MB)

Mandatory Reading (PDF, 617 KB)

27.03.2017 Engineering Cloud Applications 2 - Containerization and Cloud Deployment (Cito) Slides (PDF, 1 MB)
03.04.2017 Engineering Cloud Applications 3 - Scalability and Resilience (Leitner) Slides (PDF, 11 MB)
10.04.2017 Project Intermediary Presentations (Leitner)  
17.04.2017 No Lecture (Spring Break)  
24.04.2017 Quality Assurance and Releasing 1- Testing Software (Vassallo) Slides (PDF, 13 MB)
01.05.2017 No Lecture (Public Holiday)  

Language Engineering - Domain-Specific Languages (Gall)

Language Engineering - AOP (Gall)

Slides (PDF, 11 MB)
15.05.2017 Quality Assurance and Releasing 2 - Release Engineering (Schermann) Slides (PDF, 9 MB)
22.05.2017 Quality Assurance and Releasing 3 - Performance Testing (Laaber) Slides (PDF, 25 MB)
29.05.2017 Final Project Presentations (Leitner)  


Update: the exam will be in the office of Prof. Gall (BIN 2.D.02). Please wait at the table in front of the room if the door is closed.

The final exam is fixed for June 16th, 2017. Please register for a time slot in Doodle.

The examination in Advanced Software Engineering will be oral. The precise examination date will be announced in time, during the semester. It will be possible to register for an examination time slot of student's choice.