Software Engineering (252-0232)

Course at D-MATH (CSE) of ETH Z├╝rich, Spring Semester 2020 , Felix Friedrich and Hermann Lehner

Date Message
24.2.2020 Project Description is online!
19.2.2020 Link to moodle course added. Added an option in moodle course to choose favourite project.
10.3.2020 added a link to the mailing list of the assistants (in Contact below )
25.5.2020 published mock exam
27.5.2020 published mock exam #2 with the solution. This is the exam discussed during the last exercise session.
25.7.2020 Here is the solution to the mock exam

All lectures and exercise sessions are conducted remotely. You can find all information under the link below.

Link to Online Lectures and Exercises


LecturesTuesday 15:15 - 17:00 CAB G 51
ExercisesTuesday 17:15 - 18:00 CAB G 51

Moodle course

link : includes a forum to ask questions, options to enroll for the projects groups etc:

Learning Objective

The course has two main objectives:

Prerequisites: Lecture Series 252-0856 Computer Science or equivalent knowledge in programming with C++.


This is a plan. No plan survives contact with reality. We will constantly update lecture material before the lectures.

Number Date Topic and Slides Exercise Material
1 Tue 18.02. FF/HL: Introduction: Software Failures, Challenges, Solution Approaches Project Kickoff (PDF)
2 Tue 25.02. FF: Requirements Elicitation Requirement Elicitation and Documentation (solution)
3 Tue 03.03. HL: Modeling and Specification (1): Code Documentation
4 Tue 10.03. HL: Modeling and Specification (2): Informal Models (UML) Specification and Modeling (solution)
5 Tue 17.3. FF: Modeling and Specification (3): Formal Models (Alloy): Examples and Logic
Alloy examples: Spouse CeilingsAndFloors LinkedList
6 Tue 24.03. FF: Modeling and Specification (4): Formal Models (Alloy) : Language and static Models
Alloy examples: FileSystem RefCountList
Modeling (solution)
7 Tue 31.03. FF: Modeling and Specification (5): Formal Models (Alloy) dynamic Models / Analyzing Models
Alloy examples: FileSystemStatic ArrayUpdate FileSystemDynamic ArrayFind FileSystemInvariants NodeConsistency NodeValidity
8 Tue 07.04. HL: Modularity: Coupling and Design Patterns Alloy (solution)
- Tue 14.04. -- Easter Break -- ---
9 Tue 21.04. HL: Modularity: Adaptation
10 Tue 28.04. HL: Testing: Test Stages and Strategies Design Patterns (solution)
11 Tue 05.05. HL: Testing: Functional Testing
Empirical Study on number of Variables that need to interact to trigger an error
Literature to Pairwise Testing
12 Tue 12.05. HL: Testing: Structural Testing Testing (solution)
13 Tue 19.05 HL: Testing: Structural Testing cont'd
14 Tue 26.05 Wrap-Up, Mock Exam, Projects


We will provide bi-weekly exercise sheets to solve at home. Solutions will be presented in the exercise hours after the lecture. The exercise sheets are not graded by default. However, if you need feedback, you can ask your assistant.


The project is an important aspect of this course that allows you to experience software engineering first hand.
The Project Description provides you with all required information.


Exam will take in the examination session in August. Here you find a mock exam in order to provide a feeling of what to expect.

Another mock exam #2 was discussed during the last exercise session. Its solution is also available.


For all kinds of questions, the first option is to contact your assistant.

If the assistant cannot help you, contact the assistants and chef assistants via this mailing list

If the chef assistant cannot help you, contact one of the lecturers.