Announcement of Student Projects for Winter Semester 2018/19

SWT Student Projects in Winter Semester 2018/19

 

SWLmetrics: Metric-based Quality Analysis for Continuous Integration

Abstract:

Documentation Tool for Agile Software Development Projects

The Software Technologies Research Group (SWT) is implementing a modern continuous integration (CI) approach within the Software Engineering Lab (SWT-SWL-B) team project, covering both the software build and the software documentation.

This project shall design GitLab CI pipelines (https://about.gitlab.com/features/gitlab-ci-cd/) for analysing build and documentation on the basis of diverse metrics such as the cyclomatic complexity and document word counts, respectively. The analysis results shall be dynamically compiled into web pages that let students compare the results among the SWL teams and historic SWL project information.

This project is suited as an individual or team project of all kinds (Bachelor/Master, 6/9/12/15 ECTS). The ideal project student(s) will have an interest in software metrics, web-based software and the git repository manager GitLab. Knowledge of suitable web technologies and frameworks can also be acquired during the project.

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

SWTbahn: Safe Operation and Control of a Digital Model Railway

Abstract:

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.

This project shall develop one or more of the following software: (1) Software clients to interface to digital train and track control systems, especially a train driver client, an administrator client and a track monitor client. (2) Software to ensure the safety and security of the low-level digital train and track control system against catastrophic situations, e.g., train collisions or derailment.

The project is suited as an individual or team student projects of all kinds (Bachelor/Master, 6/9/12/15 ECTS). The ideal project student will have an interest in the development of safety-critical software and already have basic skills in C programming (for (1) above) and (web-based) GUI development (for (2) above).

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

BahnDSL: Model-based Railway Control Languages

Abstract:

The Software Technologies Research Group (SWT) is in the process of developing a digital model railway called SWTbahn, which shall be used for teaching and student projects. Students can gain in-depth experience in developing software for an embedded system that covers many aspects of a real world scenario: starting from processing of data coming from sensors to the point of controlling actors like trains and track elements.

Goal of this project is to design and implement domain specific languages (DSLs) that can be used to specify, configure and program the control system of trains and tracks in an expressive but compact language. This project will give students the opportunity to learn about the implementation of DSLs in a state-of-the-art language workbench (e.g., Xtext/Xtend, JetBrains MPS), development of respective code generators into the target language C and automated tests to ensure maintainability and quality.

The project can be carried out as an individual or team student project of all kinds (Bachelor/Master, 6/9/12/15 ECTS). Interested students should have a strong interest in the development of domain specific languages, know the principles of compiler construction and the C programming language, and are keen to study and experiment with state-of-art language workbench tools.

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

DSIvis: Visualisation of Evolving Dynamic Data Structures

Abstract:

The Data Structure Investigator (DSI) tool (https://www.swt-bamberg.de/research/data-structures.html) records pointer writes and memory (de-)allocations to produce a trace of a C program's execution, and subsequently aggregates various information to identify the program's use of dynamic data structures such as linked lists or trees. This information helps developers in gaining an understanding of a program's workings, which is of particular interest for undocumented, complex, and low-level legacy code. A proper visualisation of the revealed data structures is key to the success of DSI.

This project shall extend the functionality of an existing visualisation prototype and is suited as an individual or team project of all kinds (Bachelor/Master, 6/9/12/15 ECTS). The ideal project student will have an interest in modern software development tools, software visualisation, graph layouting, and web frameworks such as Django (https://www.djangoproject.com).

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

DSI2VeriFast: Building an Annotation Library for C and VeriFast 

Abstract:

Real-world programs heavily rely on the use of dynamic data structures on the heap, such as linked lists and trees. The verification of such programs wrt. memory safety using modern tools such as VeriFast (https://people.cs.kuleuven.be/~bart.jacobs/verifast/) currently requires a verification engineer to logically formalize a program's data structures and specify pre- and postconditions of its functions manually.

To reduce this time-consuming activity, this project shall 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 will then be employed in the Data Structure Investigator (DSI) tool developed at Bamberg (https://www.swt-bamberg.de/research/data-structures.html), to automatically generate formal annotations based on a program's execution trace.

The 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 shall then be employed to establish whether the specified annotations are sufficient to prove the program's behaviour correct.

The project is suited as an individual or team project of all kinds (Bachelor/Master, 6/9/12/15 ECTS). The ideal project student will have an interest in data structures, logic and program verification.

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

Tracking & Visualizing Progress in Software Developmen

Abstract:

The Software Technologies Research Group (SWT) employs a rudimentary buildserver within the Software Engineering Lab (SWT-SWL-B) team project to visualize simple code metrics, e.g., test suite success rate.

This project shall further advance the current functionality of the buildserver by tracking new metrics (e.g., cyclomatic complexity) and visualize these with respect to the lifetime of a project (e.g., using a 2D line plot). The current prototype employs GitLab's (https://gitlab.com/) continuous integration (CI) capabilities in combination with Docker (https://www.docker.com/) to build projects and collect metrics. Metrics are stored in a database (i.e., InfluxDB (https://www.influxdata.com/)) and visualized using the time series analytics tool Grafana (https://grafana.com/).

This project is suited as an individual or team project of all kinds (Bachelor/Master, 6/9/12/15 ECTS). The ideal project student(s) will have an interest in software development, software metrics, data visualization and the git repository manager GitLab. Knowledge of Linux and databases can also be acquired during the project.

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