Lehrstuhl für Angewandte Softwaretechnik
Chair for Applied Software Engineering

 Paul Schmiedmayer

E-Mail: paul.schmiedmayer (at) tum.de
Office: 01.07.042 (FMI)
Phone: +49 89 289-18234

Office hours: Upon request. Contact me via e-mail to make an appointment.

Postal address:
Technische Universität München
Fakultät für Informatik / Lehrstuhl I1
Boltzmannstrasse 3
85748 Garching bei München

Twitter @PSchmiedmayer

LinkedIn

 
 

Projects

  • FlurFunk - An easier transition from asynchronous to synchronous communication for remote teams, Equinux (iPraktikum 2020)
  • LocalHero - Connect a Community of Helpers and People in Need, iHaus & German Red Cross (iPraktikum 2019/20)
  • Autonomous Drones for Sustainability - Autonomous Drone-Based Water Quality Management System (Ferienakademie 2019)
  • Apeer - Free and Open Platform for your Image Processing Needs, Zeiss (iPraktikum 2019)
  • Zeiss PiWeb App for Android - Visualize 3D Models and Measurements Across Multiple Devices Using Augmented Reality, Zeiss (JASS 2019)
  • Intelligent Workplace - Controlling Smart Devices using Augmented Reality, Carnegie Mellon University (iPraktikum 2018/19)
  • Zeiss PiWeb App - Tool for Metrologists to Visualize 3D Models and Measurements Using Augmented Reality, Zeiss (iPraktikum 2018, AppStore)
  • JASS 2018 - Multimodal Pickup and Delivery System Using Autonomous Cars and Autonomous Drones, JetBrains (JASS 2018)
  • BSB Reservation - Tool to reserve and administer workplaces in the Bavarian State Library, Bokowsky + Laymann (iPraktikum 2017/18, AppStore)
  • Scentdipity - Create custom fragrances using the Scentdipity machine and the corresponding app, B/S/H/ (iPraktikum 2016/17)
  • SWOOP - Stroke Workflow Optimization application to reduce the time needed for the stroke workflow in the KRI hospital, University Hospital rechts der Isar (iPraktikum 2016)

Teaching

Winter 2020/21:
Server-Side Swift - iPraktikum - Teaching Swift & iOS - Agile Project Management
Summer 2020:
iPraktikum - Teaching Swift & iOS - Agile Project Management - Ferienakademie 2020
Winter 2019/20:
Applied Machine Learning - iPraktikum - Teaching Swift & iOS - Agile Project Management
Summer 2019:
iPraktikum - Teaching Swift & iOS - Agile Project Management - Ferienakademie 2019
Winter 2018/19:
JASS 2019
Summer 2018:
iPraktikum - Teaching Swift & iOS - Agile Project Management
Winter 2017/18:
iPraktikum - Teaching Swift & iOS - Agile Project Management
Summer 2017:
iPraktikum - Teaching Swift & iOS - Agile Project Management

Research Interests

  • Declarative & Composable Programming
  • Client and Server-Side Networking Patterns, Architectures, and Protocols
  • Deployment Strategies and Orchestration
  • Swift Programming Language
    • Server-Side Swift Development
    • Client and Server-Side Networking
    • Exploring Swift in new Contexts e.g., WebAssembly

Thesis

 

Reach out to me via email if you are interested in an open thesis or related work to the theses that are currently in progress or finished. Feel free to bring your ideas if they fit into my research interests. Check out this article about approaching a thesis supervisor.

Your email should contain information about your previous experience in your area of interest and why you are motivated to work on the proposed challenge. Try to answer the following questions: What is your programming experience (especially Swift)? Have you already done some cool projects, e.g., open-source on GitHub, or did you previously publish an App? Why do you think the topic is scientifically interesting?

Open

In Progress

Master's Thesis
A Process Model for Client Migration after Service Changes in Distributed Systems
Advisor
Author
Andre Weinkötz
Start Date
July 15, 2020
Abstract Modern web-based APIs offer a broad variety of services for numerous distributed client applications. As with any other software product, Web APIs must evolve to remain functional and successful. Ideally, an API contract creates a consistent, shared understanding of its service between provider and consumer. The provider-side evolution of an API often introduces changes to this contract that consumers need to manually adapt to. Thus far, there is no automated process for migrating between different Web API versions. In this thesis, we propose a tool-supported workflow using a novel machine-readable migration guide. We evaluate our findings by implementing an automated migration tool for OpenAPI specifications.
Guided Research
Dynamic User Interface Generation Based on Distributed System Information
Advisor
Author
Paul Kraft
Start Date
April 20, 2020
Abstract Ever-increasing complexity in micro-service architectures requires scaling and deployment of services according to current usage information and resource availability. In order to ensure the availability of a distributed server application, it is crucial to provide a maintainer of a micro-service application wide-reaching monitoring capabilities custom fit to its specific use case. We propose to develop a framework to provide tracing information about a server application and visualizing it on a client device using dynamic UI generation.

Finished

Bachelor's Thesis 
Event Based Actions in Domain Specific Languages
Advisor
Author
Marlene Pfänder
Date
April 15, 2020 - September 15, 2020
Abstract This thesis aims to focus on incorporating event based actions into a mainly static Domain Specific Language (DSL). When looking at a concrete DSL that facilitates the implementa- tion of RESTful APIs event based behaviour could include two-way communication and the ability to notify clients about changes from the server. The goal is to extend the work on Corvus, a declarative framework for server side Swift. By adding the functionality for WebSockets and push notifications event based aspects can be implemented to facilitate RESTful APIs. You can find the open source implementation at https://github.com/Apodini/CorvusWS and https://github.com/Apodini/corvus-notifications.
Bachelor's Thesis 
Semi-Automated System Decomposition Using Static and Dynamic Code Analysis
Advisor
Author
Valentin Hartig
Date
April 15, 2020 - August 15, 2020
Abstract We want to propose an approach for semi-automated management of system decomposition utilizing static and dynamic code analysis. Semi-automated management of system decomposition describes the process of decomposing a software system into a fine grained service oriented architecture through a suite of tools that are managed by a software architect. Our decomposition management software supports this transition by continously analyzing the current state of the decomposition process with an extendable tool suite. With the help of user input, the business capabilities of the system under study are determined and associated with source code to create firm module boundaries. For this our software utilises static and dynamic code analysis. In this thesis we focus on the decomposition of monolithic software systems based on server-side swift, but the approach can be used for other languages and system architectures as well. You can find the open source implementation at https://github.com/Apodini/Bubo.
Bachelor's Thesis 
APIKit - A Declarative Framework for Defining Web Interfaces in Swift
Advisor
Author
Thomas Raith
Date
March 15, 2020 - July 15, 2020
Abstract This thesis is exploring the creation of a domain-specific language (DSLs) for describing interfaces of web services. We investigate the possibility of a Swift language based definition language that allows Swift developers defining their web service interfaces by using Swift syntax and concepts independent of the concrete communication protocol. Therefore we compare different communication approaches and investigate their similarities and differences. As additional goal we want to explore possibilities that allow developers the usage of ORM functionalities (e.g. database connection and access, model definition, relations) of traditional Swift powered frameworks. You can find the open source implementation at https://github.com/Apodini/APIKit.
Master's Thesis 
Swift Based Web Development with WebAssembly
Advisor
Author
Manuel Burghard
Date
December 15, 2019 - June 15, 2020
Abstract WebAssembly is a new abstract instruction set primarily designed to target web browsers from higher level programming languages. To enable full stack web development in Swift, the Swift compiler should support targeting WebAssembly. This thesis will try to extend the Swift compiler to support WebAssembly and to compile the Swift Standard Library. Furthermore, the interaction with a web browser’s JavaScript API and the Document Object Model should be possible from Swift. Finally, the results will be evaluated by building a web application in Swift, including the client side code that runs in the browser. You can find the open source implementation at https://github.com/Apodini/webidl2swift.
Master's Thesis
A Framework to Build and Maintain GraphQL Client-Server Architectures in Swift
Advisor
Author
Date
November 15, 2019 - May 15, 2020
Abstract This thesis attempts to address the issue of synchronizing the networking stack of client-server codebases by providing a full solution to write a client-server architecture using GraphQL in Swift. We want to provide a clean and readable declarative API for creating a GraphQL Server and a similar API for the client, as well as tools to ensure that these codebases continue being in sync. We plan to achieve the synchronization by autogenerating client code from the GraphQL schema, and updating the client automatically when the server changes. You can find the open source implementation at https://github.com/nerdsupremacist/GraphZahl and https://github.com/nerdsupremacist/Graphaello
Master's Thesis
LI.CO.RE - A Lint Code Review Bot for Practical Programming Courses
Advisor
Author
Oguz Sutanrikulu
Date
November 15, 2019 - May 15, 2020
Abstract This thesis introduces Li.Co.Re, a new and improved version of a Swift lint bot for automated reviews for pull requests in large scale student courses. During the thesis, we will collect user feedback, recent research, and experiences from the prototype to build a robust and extended application that should be useable across various distributed version control and source code management services. You can find the open source implementation at https://github.com/Apodini/licore
Master's Thesis
WebUI - A Declarative User Interface Framework for Web Apps in Swift
Advisor
Author
Date
November 15, 2019 - May 15, 2020
Abstract This thesis details the development of a web-based user interface framework for the Swift programming language. The proposed framework can be used to deploy a Swift application to a server that serves a lean JavaScript application. The proposed framework should let a developer define a user interface using the SwiftUI syntax. The server should use a WebSocket based connection to update the server on user input and update the website based on server-side changes. You can find the open source implementation at https://github.com/Apodini/SwiftWeb
Bachelor's Thesis 
Grebe - A gRPC Swift Framework
Advisor
Author
Tim Mewe
Date
December 1, 2019 - April 19, 2020
Abstract The goal of this thesis is to develop a tool that simplifies the client-side developing workflow when using a gRPC based networking stack. We propose encapsulating networking logic in a separate Swift package and extending it for the use with commonly used frameworks such as Combine. We plan to build this abstraction layer above the SwiftNIO based grpc-swift framework. We plan to combine this abstraction layer with a CI-based code generation workflow to simplify the development process when syncing client and server codebases. You can find the open source implementation at https://github.com/Apodini/Grebe
Bachelor's Thesis 
Optimization of Deployment Strategies Using Machine Learning
Advisor
Author
Lena Reichel
Date
December 15, 2019 - April 15, 2020
Abstract The thesis investigates the improvement of current deployment strategies. We propose a mechanism that learns the behavior of the system within a Kubernetes Cluster by monitoring the system as well as user requests. We propose an intelligent deployment mechanism that can predict the best possible deployment strategy to optimize resource usage. We plan to visualize the relationships within the services of the cluster and the predictions made by the tool. You can find the open source implementation of the workflow and supporting tools at https://github.com/Apodini/pythia
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
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
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