Continuous software engineering

Continuous Delivery is based on configuration management and continuous integration and allows developers to release the current development state of their software to users at any time in the development process. After successfully building a deployment pipeline, a developer can create a release with only a few interactions and has the possibility to obtain feedback from users easily and early in the development process.

Since 2012, our students apply the following Continuous Delivery workflow in the iOS Praktikum. We measured its benefits qualitatively and quantitatively in different case studies. Our findings show that the release management workflow leads to more releases, more feedback and better feedback. This feedback increases the quality of the developed applications and allows the teams to deliver the most important features faster.

The workflow works as follows: A developer commits and pushes source code to the Version Control Server (1). This leads to a new build on the Continuous Integration Server (2) where all test cases are executed. The Developer is then notified about the build status, e.g. via email or chat (3). If the build was successful and after it passed all test stages, the Release Manager can release the build with only a few interactions on the Continuous Integration Server (4). This uploads the build to the Continuous Delivery Server (5) which then notifies the User about the availability of the new release (6). The User can easily download the release (7) onto his/her Device and give feedback directly in the application (8). This user feedback is uploaded in a structured way to the Continuous Delivery Server (9) and then forwarded to the Issue Tracker (10) which notifies the Developer about the feedback (11).

Application

The Continuous Delivery process for mobile applications developed at our chair was successfully implemented in an industrial context at Capgemini. As part of his master’s thesis, Sebastian Klepper adapted the process to the conditions in the company in order to deal with heterogeneous project environments, globally distributed resources and systems, high security requirements, constraints for the use of cloud-based services, multi-platform support and maintenance. The process is now successfully used in (international) projects and is a valuable contribution for the knowledge transfer from university to industry.

Research members

Theses

Open theses


Master's ThesesAdvanced LLM Techniques for Text-Based Exercises in Higher Education
Year2024
Advisor(s)Felix T.J. Dietrich
Supervisor(s)Prof. Dr. Stephan Krusche
Abstract

This master’s thesis aims to enhance educational outcomes on Artemis by reducing tutor workload and improving the student learning experience. We’ll build on Athena’s preliminary work that deployed Large Language Models (LLMs) like GPT-4 to provide automatic feedback on text-based exercises. The focus is to employ more advanced LLM techniques such as Retrieval Augmented Generation (RAG) and fine-tuning Llama 3 with historical feedback data. The project will proceed in two phases: refining the feedback system for more context-sensitive, automated responses, and then evaluating and comparing the system’s accuracy, efficiency, and educational impact.

Master's ThesesFurther Development of the Version Control and Continuous Integration in Artemis
Year2023
Advisor(s)Prof. Dr. Stephan Krusche
Abstract

Programming exercises in Artemis can be realized with Bitbucket/Bamboo, Gitlab/Jenkins, GitlabCI or LocalVCS/CI. This allows flexibility for Artemis admins. LocalVCS/CI provides an easy setup for developers and for universities to try out Artemis. However, not all functionality for programming exercises is available on all combinations of version control and continuous integration subsystems In this thesis, the missing features should be implemented. In addition, the concept of build agents and dockerized builds should be realized within LocalCI.


 

Closed theses


No theses found


Publications

↓ 2022


Head of Research Group



Prof. Dr. Stephan Krusche