Principles of Software Engineering#

Software Development is not a Jenga Game


The slides of this workshop are available here.

A major reason for the instability of software is that it is subject to continuous change. This is especially true for software in the scientific context, since the scientific discourse is open-ended. Change has caused difficulties for scientific software developers from the very beginning and it continuous to do so. In parallel, the software engineering community has discovered numerous methods and techniques that we as research software developers can take advantage of to significantly support our work. This workshop tries to bridge the gap between both worlds and shows practices, methods and principles to develop maintainable software and to make the software development process sustainable. If you have not heard of the SOLID principles this workshop is for you.


  • Preparation

  • Basic knowledge of Python

  • Basic knowledge of the OOP (advantageous)


  • Motivation for sustainable software design

  • Basic concepts for organizing complexity

  • Refresher: Object Orientation

  • Design principles: SOLID & Co. with application example

Targeted Audience#

All scientists from TU Braunschweig and their research partners involved or interested in the development of research software.