Seminar Software Engineering (BSc/MSc): Perspectives on Engineering Dependable Software Systems

Page content


Is testing enough? Sometimes it is not, especially when the systems we seek to build need to be dependable, when we need assurances on their behavior - that they operate in compliance to their requirements.

What is the underlying problem? Our life is increasingly reliant on the correct functioning of software systems - from distributed and cloud applications to automotive and autonomous robotic systems. The problem of how to engineer such software systems in a dependable manner will not go away – it will only become more pressing, as systems become more complex, have emergent behaviors and capturing their requirements into precise specifications (or programs) is hard and error-prone. It is clear that if we are going to use ad-hoc methods, we’ll end up with ad-hoc problems. Instead, we need to employ appropriate principles, representations and techniques that software engineering has long pursued.

This seminar will outline how engineering dependable software systems relates to wide themes inherent in an engineering lifecycle: from modeling, requirements and specification, to early design validation and formal verification, especially as they are reflected in practical, accompanying tools.

In this course, expect to both delve into state-of-the-art software engineering techniques and methods but also experiment with cutting-edge tools.

Presentations Spring ‘22

  • Veronika Wu. “The role of software documentation in Sustainable software engineering process”
  • Marco Tobia Cacciatore. “Software Model Checking with CBMC”
  • Andrea Giselle Keller Cruz. “Distributed Systems and TLA+”
  • Severin Buchser. “Satisfiability Modulo Theories”
  • Adrian Schmucker. “Software Model Checking C Source Code”
  • Mattia Pedrazzi. “How do code documentation efforts spread over class hierarchy?”
  • Irakli Kelbakiani. “Documentation practices of developers in Polyglot environments”
  • Roman Riesen. “Early validation of system requirements and design through BIP”
  • Simon Furrer. “Runtime Verification with Metric First Order Temporal Logic”
  • Albin Aliu. “Monitoring Spatially-Distributed Systems with Spatio-Temporal Logics”
  • Loris Witschard. “Software Modeling with Alloy”

Structure and Process

The course will begin lectures revolving around contemporary perspectives on engineering dependable software systems. Several concrete topics will be presented. You will then indicate topics you are interested in pursuing, and will be assigned one. Until the end of the course, work on the topic must be independent - we will however be available for discussions should any problems arise. Finally, you will give a presentation at a workshop we will organize, and discuss your (and their’s) findings with collegues.

Participation Requirements (Important!)

  • Topics will be classified as per ski trails (green, blue, red, and black), according to the level of complexity/difficulty of the topic. See below (“Evaluation”) on the different grading applied.
  • After the lecture, you have until 13 March to look up the list of topics and send an email with an (ordered) list of your 3 preferred topics to Dr. Christos Tsigkanos (christos dot tsigkanos at inf dot unibe dot ch). This deadline is hard - if you don’t contact us until that point in time, we will assume that you are dropping out of the seminar and we will prioritize students on the waiting list.
  • If more than one student is interested in a particular topic, we may assign topics at our discretion. The instructors will try to find a fair solution that suits everyone. There is no “first come, first serve” for the topic assignment.
  • You will get your individual topic assigned. Afterward, you may decide until 18 March whether or not you take this seminar, given the assigned topic. This decision will have no negative consequences (see the next list item).
  • If you accepted a topic but decided to not give the requested presentation, you will get a negative grade for the seminar. We may also give you lower priority next year, i.e., that you will be on the waiting list in any case.
  • If you are not 100% certain that you will do the seminar this semester, please be fair to your fellow students and cancel your registration for the course.


The final outcome of the course is the final presentation and participation in the workshop discussion. You will have 20 minutes to present your work on the topic, followed by a 5-10 minutes of discussion. The final presentation must be submitted before the workshop day. The evaluation of this course includes three components:

  • The quality of the presentation: 75%
  • The answers to questions during the presentation + overall engagement in the workshop: 25%
  • A classification coefficient applied to increasingly more challenging topics: work on more ‘difficult’ topics will reflect higher grade, while to achieve the same grade on ‘easier’ topics more ‘thoroughness’ will be required. This is left to the discretion of the lecturers.