Research Group for Applied Software Engineering
Forschungsgruppe für Angewandte Softwaretechnik

Bachelors Thesis

  • BA - Towards a declarative definition of Network configurations - Custom Terraform Provider for REST APIs

    Bachelorthesis 
    Towards a declarative definition of Network configurations - Custom Terraform Provider for REST APIs
    Advisor
    Supervisor
    Author
    Kilian Warmuth
    Date
    27.10.2021
    Description

     

    Infrastructure as Code (IaC) is the state-of-the-art method of managing resources both on-premise and in the cloud. It is an approach to automate the complete lifecycle of any resource utilizing software development practices. The main goal is a consistent and repeatable representation of the entire developed system. One of the most popular IaC tools is Terraform. With Terraform, infrastructure requirements are formalized as declarative configuration files consisting of providers and resources. A provider is a plugin that allows interaction with external entities like AWS or other APIs. Each provider defines a set of data sources and resource types. A resource, on the other hand, describes some infrastructure object like a virtual machine, DNS record, or Network. 
    This thesis consists of two parts. First, you will develop and outline how REST APIs can be implemented in custom Terraform providers. During the second part, you will design and implement a REST API for an existing network stack and use your approach to implement the API in Terraform. 

    Goals

     

    • Design a general approach how REST APIs can be implemented as Terraform Providers 
    • Design and implement a robust and secure REST API for an existing Python Library which controls DNS, DHCP, etc.
    • Design and implement a Terraform Provider for this REST API
    Prerequisites

     

    • Compulsory 
      • Linux and networking knowledge
      • Comfortable with Python 
      • Willing to learn Go and Terraform
    • Preferred
      • Good Python Knowledge
      • Good Go Knowledge 
      • Experience in API design
      • Experience with Terraform and its workflow
    Application

     

    Email to This email address is being protected from spambots. You need JavaScript enabled to view it. with 

    • A short motivation letter
    • A summary of your projects/experience 
    • What ever you want to share with us 
  • Machine learning with wearable sensors

    My field of research is on machine learning with wearable sensors. One possible application is monitoring of athletes (e.g. counting the amount of repetitions of each exercise, measuring exercise performance), another is monitoring animals (activity recognition for animal: eating, walking, resting). If you have access to a specific animal or perform a specific sport and want to automatically extract context information, we could work on it together. Feel free to contact me with your idea.

  • Theses - Paul Schmiedmayer - Automated and User-Configurable Deployment of Web Services

    Bachelor's Thesis
    Automated and User-Configurable Deployment of Web Services
    Advisor
    Author
    Lukas Kollmer
    Date
    December 15, 2020 - April 15, 2021
    Abstract

    We propose the development of a toolkit for automated and user-configurable distributed deployment of a Swift program implementing a web service. The web service is defined as a composition of individual services, via the Apodini internal domain-specific language (DSL) [Sch20]. Our toolkit analyses the web service’s structure as expressed via the DSL, taking into account additional nonfunctional requirements. From this information it determines the deployment strategy which best satisfies these constraints. The resulting distributed system can be deployed to arbitrary target platforms, ranging from conventional web servers to FaaS providers such as AWS Lambda.

  • Theses - Paul Schmiedmayer - Corvus - A Declarative Server-Side Swift Framework

    Bachelor's Thesis
    Corvus - A Declarative Server-Side Swift Framework
    Advisor
    Author
    Berzan Yildiz
    Date
    October 15, 2019 - February 15, 2020
    Abstract Corvus is a declarative server-side Swift framework that allows you to generate a RESTful service. The framework supports authentication and database connection to a wide variety of database types. Corvus leverages the functionality of server-side Swift frameworks like Vapor, Fluent, and SwiftNIO. You can find Corvus on GitHub: https://github.com/Apodini/corvus
  • Theses - Paul Schmiedmayer - Decentralized Observability of Distributed Web Services

    Bachelor's Thesis
    Observability of Distributed Web Services
    Advisor
    Author
    Philipp Zagar
    Date
    May 15, 2021 - September 15, 2021
    Abstract

    A fog computing architecture represents a solution for the challenges introduced by modern distributed systems containing countless heterogeneous and interconnected components. Monitoring these fog computing architectures is typically achieved by central cloud monitoring platforms, which result in increased network traffic and static responsibilities of maintenance teams. Decentralized Observability addresses the challenges above by transferring the responsibility of monitoring a system from a central cloud monitoring platform to each of the individual components. In the course of this thesis, we will try to integrate this approach into the declarative component-based Apodini framework and use its Domain-Specific Language (DSL) to automate most of the resulting observability overhead. The thesis contributed to the Apodini open source project: https://github.com/Apodini/Apodini.

  • Theses - Paul Schmiedmayer - Development of a Declarative gRPC Framework for Server-Side Swift Applications

    Bachelor's Thesis
    A Server-Side Swift Middleware and Code Generator for gRPC Services in Vapor Applications
    Advisor
    Author
    Michael Schlicker
    Date
    November 15, 2019 - March 15, 2020
    Abstract This thesis explores new ways to easily integrate gRPC in server-side Swift applications using code generation and extending existing frameworks. The goal of the thesis is to offer a simple workflow to connect a gRPC based networking stack to higher-level server-side Swift frameworks like Vapor and ORMs like Fluent. Our solution is a framework offering a gRPC middleware and code generator that can be used with the Vapor server stack. You can find the middleware on GitHub: https://github.com/Apodini/grpc-vapor
  • Theses - Paul Schmiedmayer - ELBRUS - Extension to Limit Boilerplate Code in Reactive UI-Centered Swift Development

    Bachelor's Thesis
    ELBRUS - Extension to Limit Boilerplate Code in Reactive UI-Centered Swift Development
    Advisor
    Author
    Date
    November 15, 2019 - March 15, 2020
    Abstract This thesis focuses on the simplification of connecting application logic to a RESTful server endpoint. We want to explore the advantages of a declarative approach when designing a networking layer by taking advantage of modern Swift features like function builders and property wrappers. We want to provide a lightweight, expressive syntax for the communication with a RESTful service that can be used to connect the service with the user interface of an application. You can find ELBRUS on GitHub: https://github.com/Apodini/ELBRUS
  • Theses - Paul Schmiedmayer - Improving Runtime Performance and Maintainability of the Apodini Server-Side Swift Framework

    Bachelor's Thesis
    Improving Runtime Performance and Maintainability of the Apodini Server-Side Swift Framework
    Advisor
    Author
    Max Obermeier
    Date
    April 15, 2021 - August 15, 2021
    Abstract

    Modern server-side development faces a multitude of challenges. While many of those challenges are solved well by most modern web-frameworks, the following are still subject of active research: Web services often have to use a variety of middlewares to serve a heterogenous set of clients. Moreover, agile development methodologies lead to constant change in regards to both, application logic and middleware. Apodini is a prototypic server-side framework that aims to solve these challenges by providing a declarative and composable syntax for defining a web-service, establishing a full abstraction between the implemented application logic, the web-service’s structure and the middleware in use. This thesis explores different strategies to improve the Apodini framework in terms of maintainability and runtime-performance. The thesis contributed to the Apodini open source project: https://github.com/Apodini/Apodini.

  • Theses - Paul Schmiedmayer - Reliability and Observability of Declarative Web Services

    Bachelor's Thesis
    Reliability and Observability of Declarative Web Services
    Advisor
    Author
    Moritz Sternemann
    Date
    October 15, 2021 - February 15, 2022
    Abstract To guarantee the reliability and robustness of modern web services, enabling engineers to detect, diagnose, and resolve unpredicted behavior efficiently is crucial. Tracing can provide visibility into characteristics of a request that help to understand the flow through and asynchrony in a distributed system. This thesis aims to extend the domain-specific language of Apodini to support industry-standard techniques of distributed tracing. The frameworks existing error handling system will be improved using the data gathered through tracing. Ultimately, the applicability of our research is validated by comparing tracing functionality in Apodini to an open-source web service. The thesis contributed to the Apodini open source project: https://github.com/Apodini/Apodini.
  • Theses - Paul Schmiedmayer - Requirements Traceability for Web Services

    Bachelor's Thesis
    Requirements Traceability for Web Services
    Advisor
    Author
    Andreas Bauer
    Date
    April 15, 2021 - August 15, 2021
    Abstract

    When designing web services, requirements traceability is a challenging task. In the software engineering process, functional and non-functional requirements are defined in the Requirements Elicitation. Those requirements are structured and formalized in the Analysis, System Design and Object Design activities before the developed models are mapped to code. Therefore, tracing requirements through the individual design artifacts to the actual implementation is a challenge for software engineers. Requirements Traceability is essential as it enables us to verify our implementation against the requirements expected from the system. Furthermore, it improves the ability to deal with the change of requirements, yielding an improved iteration speed of the software engineering process. The thesis explores how a tighter coupling between the implementation and software engineering activities can improve traceability and thus verifiability and changeability of requirements. The research is done in the context of requirements typically encountered with web services, including non-functional requirements like security, performance and availability. The Apodini framework is used for the instantiation and validation of requirements. The thesis contributed to the Apodini open source project: https://github.com/Apodini/Apodini.

  • Theses_Andreas_Seitz_Human_Presence_Cyber_Physical_Systems

    Bachelor's Thesis
    Analysis and evaluation of technologies to detect human presence in Cyber-Physical Systems
    Advisor
    Andreas Seitz
    Author
    Bernhard Kreminski
    Especially in the field of IoT and CPSs it is important to detect human presence in a specific area. In this thesis you have to compare different technologies and implement several demo scenarios and evaluate them.
  • Theses_Barbara_Reichart_Adaptive_game_Mathematics

    Bachelorthesis
    Developing an adaptive Serious Game for primary school mathematics
    Advisor
    Barbara Reichart
    Author
    Roman Maier
    Date
    15.08.2015
     
  • Theses_Barbara_Reichart_Adaptive_Game_Primary_School_Math

    Bachelorthesis
    Implementation and Evaluation of an Adaptive Serious Game for Primary School Mathematics
    Advisor
    Barbara Reichart
    Author
    Yue Chi
    Date
    15.10.2015
  • Theses_Barbara_Reichart_Analysis_Feedback_Tool

    Bachelorthesis
    Development of an Analysis and Feedback Tool for Adaptive Serious Games
    Advisor
    Barbara Reichart
    Author
    Marcel Stuht
    Date
    15.04.2012
     
  • Theses_Barbara_Reichart_Auiovisual_Effects_Teaching

    Bachelorthesis
    The impact of audiovisual effects on teaching in a serious game
    Advisor
    Barbara Reichart
    Author
    Sascha Rushing
    Date
    15.03.2015
     
  • Theses_Barbara_Reichart_Chemical_Reaction_Principle

    Bachelorthesis
    Chemimon - Serious Game for Learning the Basic Chemical Reaction Principles
    Advisor
    Barbara Reichart
    Author
    Ludwig Eisgruber, Hubert Niedermaier
    Date
    15.05.2013
     
  • Theses_Barbara_Reichart_Evaluation_Cross_Plattform_Sports_Games

    Bachelorthesis
    Evaluation of cross-platform development tools regarding their suitability for the development of sports games
    Advisor
    Barbara Reichart
    Author
    Julian Geiger
    Date
    17.03.2014
     
  • Theses_Barbara_Reichart_Game_DNA_Sequencing

    Bachelorthesis
    Developing a serious game for bioinformatics: DNA sequencing
    Advisor
    Barbara Reichart
    Author
    Peter Hirschbeck
    Date
    25.09.2012
     
  • Theses_Barbara_Reichart_Gamification_Fitness_Machines

    Bachelorthesis
    Gamification of Fitness Machines
    Advisor
    Barbara Reichart
    Author
    Daniel Schosser
    Date
    15.02.2013
     
  • Theses_Barbara_Reichart_Nutrition_Awareness

    Bachelorthesis
    Serious Game - Raising nutrition awareness through simulation and multiplayer interaction
    Advisor
    Barbara Reichart
    Author
    Linh To Thuy
    Date
    16.09.2013