Fakultät Wirtschaftsinformatik und Angewandte Informatik

Lehrstuhl Softwaretechnik und Programmiersprachen

Announcement of Student Projects for Summer Semester 2018


SWT Student Projects in Summer Semester 2018



Documentation Tool for Agile Software Development Projects



The Software Technologies Research Group (SWT) is seeking to build a web-based documentation tool for supporting the Software Engineering Lab (SWT-SWL-B) team project. This tool shall (i) allow students to electronically submit the minutes of their incremental development sprints and accompanying artefacts, (ii) compile this information into appropriate sections of the students' project report, and (iii) enable staff to provide online feedback and to calculate bonus points.

This project shall design and build such a documentation tool, and is suited as an individual or team project of all kinds (Bachelor/Master, 6/9/12/15 ECTS).

Contact: Prof. Dr. Gerald Lüttgen (gerald.luettgen(at)uni-bamberg.de)



Building an Annotation Library for C and VeriFast 



Real-world programs heavily rely on the use of dynamic data structures (located on the heap) such as linked lists or trees. The formal verification of such programs requires a verification engineer to logically formalize these data structures and specify pre- and postconditions of the program's functions manually. To reduce this time-consuming activity, the SWT Research Group plans to compile an annotation library that maps a data structure, e.g., a singly-linked list, and its generic functions, e.g., removing an element from the list, to formal annotations. Such a library should be employed in the Data Structure Investigator (DSI) tool, developed at the SWT  Research Group, to automatically generate formal annotations based on a program's execution trace.

This project shall look at dynamic data structures from textbooks and real-world C programs and describe their functionality with the help of formulas stated in separation logic, a logic suitable for reasoning about heap structures. VeriFast, a formal verification tool, shall then be employed to establish whether the specified annotations are strong enough to prove the program's behavior correct. The project is suited as an individual project of all kinds (Bachelor/Master, 6/9/12/15 ECTS)

Contact: Jan Boockmann (jan.boockmann(at)uni-bamberg.de)



Visualization of Evolving Data Structures 



The Data Structure Investigator (DSI) tool records pointer writes and memory (de-)allocations to produce a trace of a C program's execution, and subsequently aggregates this information to identify dynamic data structures such as linked lists or trees. This information is essential for developers to gain a deep understanding of a program's workings, which is of particular interest for undocumented, complex, and low-level legacy code. A proper visualization of the revealed data structures is key to the success of DSI.

This project shall extend the functionality of an existing visualization prototype and is suited as an individual project of all kinds (Bachelor/Master, 6/9/12/15 ECTS).

Contact: Jan Boockmann (jan.boockmann(at)uni-bamberg.de)




Digital Model Railway



The Software Technologies Research Group (SWT) is building a digital model railway (SWTbahn) for use in teaching. It will give students a realistic case study to support their learning of important principles in the design, programming, and verification of safety-critical systems.

In this context, we are offering several individual and/or team student projects of all kinds (Bachelor/Master, 6/9/12/15 ECTS):

  • Developing an algorithm and tool for controlling track access (Stellwerk)
  • Developing software to ensure the safety and security of the low-level digital control system against catastrophic situations, e.g., collisions or derailment
  • Developing techniques and algorithms for calibrating the reliability of mechanically-driven track points


Contact: Dr. Eugene Yip (eugene.yip@uni-bamberg.de)


For further information, also see the SWT-Projekt-Wiki (https://vc.uni-bamberg.de/moodle/mod/wiki/view.php?id=456432)