(Anwendungs-)Projekte SE im Wintersemester 2022/23

Auf dieser Seite werden ab dem 18. Juli kurz die im WiSe 2022/23 angebotenen Projekte beschrieben. Es wird dabei nicht zwischen Bachelor und Masterprojekten unterschieden, da wir gemischte Gruppen zu lassen.

Wenn Sie im nächsten Semester eines der unten stehenden Projekte belegen möchten, senden Sie bitte bis zum 10.8.22 eine E-Mail mit priorisierten Wünschen (3-5 Projekte) an Alexander Raschke.

Bitte auch die Buchstaben zur eindeutigen Kennzeichnung in der Mail mit angeben!

Bei Fragen zu den Projekten wenden Sie sich bitte ebenfalls an Alexander Raschke.

Weitere Informationen für den Studiengang Software Engineering

Eine Galerie der bisherigen Projekte finden Sie hier: Bisherige SE-Projekte

A: App für die Uni Ulm

In diesem Projekt soll die bestehende App für die Uni Ulm weiterentwickelt werden. Verschiedene Informationen/Anwendungen können darin integriert werden, z.B.:

  • Adressbuch
  • Raumsuche
  • Indoor-Navigation

Gerade der letzte Punkt umfasst viele Aspekte, die geklärt werden müssen: Welche Sensoren können genutzt werden (WLAN, Bilderkennung, QR-Codes, Lagesensor...), welche Karten können genutzt werden? Welche Zusatzinformationen können über QR-Codes und oder Bilderkennung wo angebracht werden? (Stundenpläne, Sprechzeiten, e-Mail-Adressen etc.)

Das Backend ist in PHP/Laravel, die Android App in Java/Kotlin und iOS in Swift 4 geschrieben.

Ein wesentliches Ziel für das nächste Semester ist die offizielle Veröffentlichung im App- und im Playstore. 

(siehe auch: http://uniapp.informatik.uni-ulm.de)

Ansprechpartner:

B: Unterstützung der Münsterbauhütte bei Kartierungsarbeiten

Die Restauratoren der Münsterbauhütte müssen die Schäden an den zu restaurienden Gebäuden erfassen, um die Kosten und die Durchführung einer Restaurierung zu planen. Dabei wird Stein für Stein in Augenschein genommen und für jeden eine Menge an Daten erfasst, um den aktuellen Zustand und die notwendigen Restaurierungsarbeiten zu dokumentieren.

Um die sehr aufwändige Datenerfassung mit Fotoapparat, Papier und Bleistift zu verbessern, wurde in vergangenen Projekten eine Windows-App entwickelt, die es ermöglicht, die Daten direkt am Tablett zu erfassen. Dabei werden die Kamera des Tabletts benutzt, um Fotos zu machen, diese mit einer Stifteingabe zu markieren und zu bearbeiten. Zurück im Büro, werden die so integriert erfassten Daten direkt mit der zentralen Datenbank abgeglichen.

In diesem Projekt soll nun die vorhandene Anwendung nach den Wünschen der Münsterbauhütte erweitert werden. Wichtige Punkte sind beispielsweise:

  • Entwicklung eines webbasierten Admintools, dass verschiedene Verwaltungsaufgaben, wie z.B. Datenarchivierung/-export ermöglicht
  • Recherchemöglichkeiten innerhalb der App

Als Technologie ist die Universal Windows Platform (UWP) mit C# vorgegeben.

Ansprechpartner:

C: Interaktiver Studienplaner

Die Studiengänge in der Informatik bieten durch diverse Wahlmöglichkeiten insbesondere im Master viele verschiedene Möglichkeiten, ein Studium konkret zu gestalten. Um die Arbeit für die Studierenden etwas einfacher zu machen, wurde in einem früheren Projekt ein interaktiver Studienplan erstellt, der ggf. durch personalisierte Informationen (bestandene Prüfungen, etc.) erweitert bzw. indivdualisiert werden kann. Er ist unter https://studienplaner.informatik.uni-ulm.de zu erreichen. 

In diesem Projekt soll der interaktive Studienplaner nun für die ab Wintersemester geltenden neuen Prüfungsordnungen fit gemacht werden. Außerdem kann die Benutzerführung noch verbessert werden. 

Ansprechpartner:

D: AlDeSCo (Algorithm Detection on Source Code)

Kontext

Sich ein Verständnis von einem Softwaresystem zu erarbeiten, ist eine häufige Aufgabenstellung für viele unterschiedliche Personen. Typische Beispiele sind das Onboarding neuer Entwickler oder das Durchführen einer Softwarearchitektur-Recovery durch einen Architekten. Solche Anwendungsfälle könnten von einer Toolunterstützung profitieren, die beispielsweise die in der Code Basis implementierte Algorithmen sowie wichtige Komponenten erkennt und anzeigt. Aktuell ist die Entwicklung eines solchen Verständnisses jedoch oft ein schwieriger, langwieriger und meist manueller Prozess. Experten stehen unter Zeitdruck oder haben im Falle der Rückgewinnung der Softwarearchitektur das Unternehmen längst verlassen.
Unterschiedliche Ansätze versuchen diesen Anwendungsfall zu unterstützen, Beispiele hierfür sind das Clustern der Software-Komponenten basierend auf ihrer Kohäsion, NLP basierte Textanalysen des Source Codes oder Ansätze zur Entwurfsmustererkennung.
Nach unserem aktuellen Kenntnisstand gibt es jedoch keinen Ansatz, der sich auf die Erkennung von Algorithmen fokussiert, die innerhalb einer Codebasis verwendet werden. Mit dem Wissen über existierenden Algorithmen könnte ein Entwickler Erkenntnisse darüber zu gewinnen, welche Aspekte in der Codebasis betrachtet werden, wie diese umgesetzt werden und welche Komponenten beteiligt sind. Da dies Kernfragen im Prozess des Code-Verstehens sind, wäre ein solcher Ansatz eine wertvolle Ergänzung zum Stand der Technik.
Ansätze aus anderen Forschungsfeldern wie der Code-to-Code Search, Code Clone Detection oder Design Pattern Detection sind konzeptionell verwandt, müssten jedoch deutlich angepasst und auf ihre Eignung getestet werden.

Projektbeschreibung

Im letzten Semester wurde bereits die erste Version eines AST-basierten Prototyps umgesetzt. Mit der aktuellen Implementierung können bereits Teile eines ASTs abstrakt beschrieben und mittels Pattern-matching in einer Codebasis gesucht werden. 
Für das Parsen von Javacode in ASTs wird der Javaparser Spoon genutzt, der Matching-algorithmus ist selbstgeschrieben.
In einer Fortführung des Projekts soll der Prototyp deutlich erweitert und evaluiert werden.
Im Folgenden eine (unvollständige) Auflistung von möglichen Aufgaben:

  • Erweiterung des Pattern-matching um weitere AST-konstrukte
  • Weitere Pattern-matching features
  • Ein "Benchmarkframework" für den Prototypen umsetzen
  • Algorithmen mit dem Prototyp beschreiben
  • Untersuchen ob der Prototyp sinvoll durch Kontrollflussanalyse erweitert werden kann
  • Untersuchen ob der Prototyp sinvoll durch Datenflussanalyse erweitert werden kann
  • DevOps z.B. Property-based / Fuzzy testing

Im Rahmen des Projekts werden Verbesserungen am Prototyp umgesetzt und evaluiert.
Das finale System wird abschließend durch die Studierenden getestet und bezüglich der Aufgabenangemessenheit bewertet. Dabei werden auch Erkenntnisse zu zukünftig nötigen Verbesserungen und Optimierungen festgehalten.

Voraussetzungen

Interesse an dem Themengebiet sowie an einem SE-Projekt welches sich inhaltlich mit Forschungsaspekten befasst.

Weitere Informationen

Relevante Literatur aus den verwandten Themenbereichen:

  • Sifei Luan, Di Yang, Celeste Barnaby, Koushik Sen, and Satish Chandra. 2019. Aroma: code recommendation via structural code search. Proc. ACM Program. Lang. 3, OOPSLA, Article 152 (October 2019), 28 pages. DOI: doi.org/10.1145/3360578
  • Sudhamani, M., & Rangarajan, L. (2015). Structural similarity detection using structure of control statements. Procedia computer science, 46, 892-899. DOI: doi.org/10.1016/j.procs.2015.02.159 Alternativlink
  • X. Gu, H. Zhang and S. Kim, "CodeKernel: A Graph Kernel Based Approach to the Selection of API Usage Examples," 2019 34th IEEE/ACM International Conference on Automated Software Engineering (ASE), 2019, pp. 590-601, doi: doi.org/10.1109/ASE.2019.00061

Ansprechpartner

E: System Dependency Graph(SDG)-based Algorithm Detection on Source Code

Kontext

Sich ein Verständnis von einem Softwaresystem zu erarbeiten, ist eine häufige Aufgabenstellung für viele unterschiedliche Personen. Typische Beispiele sind das Onboarding neuer Entwickler oder das Durchführen einer Softwarearchitektur-Recovery durch einen Architekten. Solche Anwendungsfälle könnten von einer Toolunterstützung profitieren, die beispielsweise die in der Code Basis implementierte Algorithmen sowie wichtige Komponenten erkennt und anzeigt. 
Aktuell ist die Entwicklung eines solchen Verständnisses jedoch oft ein schwieriger, langwieriger und meist manueller Prozess. Experten stehen unter Zeitdruck oder haben im Falle der Rückgewinnung der Softwarearchitektur das Unternehmen längst verlassen.
Unterschiedliche Ansätze versuchen diesen Anwendungsfall zu unterstützen, Beispiele hierfür sind das Clustern der Software-Komponenten basierend auf ihrer Kohäsion, NLP basierte Textanalysen des Source Codes oder Ansätze zur Entwurfsmustererkennung.
Nach unserem aktuellen Kenntnisstand gibt es jedoch keinen Ansatz, der sich auf die Erkennung von Algorithmen fokussiert, die innerhalb einer Codebasis verwendet werden. 
Mit dem Wissen über existierenden Algorithmen könnte ein Entwickler Erkenntnisse darüber zu gewinnen, welche Aspekte in der Codebasis betrachtet werden, wie diese umgesetzt werden und welche Komponenten beteiligt sind. Da dies Kernfragen im Prozess des Code-Verstehens sind, wäre ein solcher Ansatz eine wertvolle Ergänzung zum Stand der Technik.
Ansätze aus anderen Forschungsfeldern wie der Code-to-Code Search, Code Clone Detection oder Design Pattern Detection sind konzeptionell verwandt, müssten jedoch deutlich angepasst und auf ihre Eignung getestet werden.
Aktuell wird in einem weiteren Projekt bereits ein AST-basierter Prototyp entwickelt. Mit diesem kann basierend auf der abstrakten Beschreibung eines ASTs nach Algorithmen gesucht werden. Möglicherweise ist die Verwendung eines SDGs, (anstatt des ASTs), jedoch besser für die Suche nach Algorithmen geeignet, da dieser bereits Informationen über den Kontroll- und Datenfluss eines Programms enthält.

Projektbeschreibung

Ziel des Projekts ist es einen Prototypen zu entwickeln der eine initiale Version einer SDG basierten Algorithmen Erkennung umsetzt. Hierfür soll ausgehend von einer abstrakten Algorithmusbeschreibung eine musterbasierte Suche auf dem SDG durchgeführt werden (Graph-Matching).
Im Rahmen des Projekts werden die Anforderungen an die Lösung durch die Studierenden festgehalten und eine Implementierung umgesetzt. Das finale System wird abschließend durch die Studierenden getestet, mit dem AST-basierten Prototypen verglichen und bezüglich der Aufgabenangemessenheit bewertet. Dabei werden auch Erkenntnisse zu zukünftig nötigen Verbesserungen und Optimierungen festgehalten.

Voraussetzungen

Interesse an dem Themengebiet sowie an einem SE-Projekt welches sich inhaltlich mit Forschungsaspekten befasst.

Weitere Informationen

Relevante Literatur aus den verwandten Themenbereichen:

Ansprechpartner

F: Investigating Macroscopic Effects of Automated Vehicles on Traffic

City planners need to look at the big picture of traffic. Therefore, a macroscopic evaluation of different scenarios including mixed (manual and automated) traffic, pedestrians, cyclists, etc. is necessary for future city development.
In this project, the necessary parameters and hypotheses will be determined, and the macroscopic effects will be determined via SUMO (https://www.eclipse.org/sumo/), a simulation software used by governments and researchers with a connection to Unity.

Potential scope (tbd):

  • Simulation of urban and rural areas (e.g., New York, Berlin, Ulm)
  • Simulation of pedestrians crossing the road (basic support already implemented)
  • Simulation of different strategies (tbd; e.g., special roads only for automated traffic)
  • Enhancing the logging capabilities
Ansprechpartner:

G: Machine Learning for State- and Action-Recognition in Vehicles

Manual and automated vehicles include numerous sensors within the vehicle capable of retrieving an accurate picture: Radar, Cameras, Pressure sensors, and more.
Being able to accurately predict state and action of users can improve Safety, Comfort, Productivity, and much more.

This project offers two ways forward:

  1. Use existing neural networks to build a digital clone of the user (emotion, gender, age, state, action, …)
  2. Build a novel predictor using machine learning. Includes data collection, Implementing the architecture of the neural network, and Training of the neural network
Ansprechpartner:

H: Unity-Toolkit for Study Tasks

In today’s studies, there is the need to bring the participant into certain states, for example, with a high mental workload.

There are various standardized tests available such as the n-back task or the Waters q-sort (see [1]). However, while these tests are regularly used, there are no available standard implementations.

Therefore, this project aims to:

  1. Define the most relevant tests for various research topics
  2. Implement these in Unity

This implementation will help researchers around the world to be more quickly able to run their experiments and with fewer errors induced by low experience in coding.

Ansprechpartner:

[1] Green, P. (1995). Measures and methods used to assess the safety and usability of driver information systems (No. FHWA-RD-94-088). McLean, VA, USA: Federal Highway Administration.

I: GraphQuerying in General Purpose Languages

Kontext

Die Darstellung von Informationen in Form von Graphen ist in vielen Anwendungsbereichen zur Norm geworden. Seien es "social graphs", wie sie von Facebook und anderen Social-Media-Plattformen verwendet werden, oder "knowledge graphs", die zur Verknüpfung von Wörtern und Bedeutungen für Suchmaschinen und Frage-Antwort-Systeme wie Amazon Alexa, Siri oder WolphramAlpha verwendet werden, oder die Standard Pfadgraphen für die Routenplanung.
Folglich ist die Abfrage und Manipulation von Graphenstrukturen eine allgegenwärtige Aufgabe in vielen Softwaresystemen. Viele domänenspezifische Sprachen (DSLs) wurden daher entwickelt, um diese Aufgabe zu bewältigen, wie GraphQL, Gremlin oder Cipher in neo4j.

Problem

Die derzeitigen Ansätze sind entweder eigenständige Werkzeuge oder lassen sich nur schlecht in Programmiersprachen (GPLs), die zur Entwicklung kompletter Softwaresysteme verwendet werden, einbetten. Dies behindert die Entwicklung, wenn Daten aus Diagrammen in den Kontrollfluss des entwickelten Systems integriert werden müssen. Es besteht daher die Notwendigkeit, die Lücke zwischen Graphquery-DSLs und GPLs zu schließen, um eine nahtlose Integration der Domänenausdruckskraft von DSLs in die Host-Programmiersprachen zu ermöglichen. Ähnlich wie LINQ in C# dies für SQL tut.

Aufgabe/Ziel
  • Entwurf von 1-3 Ansätzen zur Darstellung von graph-queries in einer GPL der dritten Generation
  • Implementierung von Integrationsansätzen in Prototypen
  • Evaluierung der Benutzerfreundlichkeit und Leistung der Prototypen im Vergleich zueinander
Ansprechpartner:

J: 3D-Scan von Raumbereichen

Die immersight GmbH entwickelt mit dem 3D-Workroom eine Lösung für das Baugewerbe und Baunebengewerbe. Mit dem 3D-Workroom kann man Baustellendokumentation und -kommunikation umsetzen. Das bedeutet, verschiedene Mitarbeiter eines Handwerks-
/Bauunternehmens machen zu verschiedenen Zeitpunkten mit dem Smartphone oder 360°-Kameras Fotos vom Baufortschritt und laden diese in die cloud-basierte Anwendung 3D-Workroom. Besonders im Fokus steht dabei Bauen im Bestand, also das Sanierung/Renovieren von bestehenden Räumen.

Der wichtigste und entscheidende Schritt für die Projektierung einer Baumaßnahme ist die Bestandsaufnahme. Diese erfolgt natürlich zu Beginn, kann aber auch kontinuierlich weitergeführt werden und wird dadurch zu einer begleitenden Dokumentation. Für die
Dokumentation von auch die Raumvermessung hat immersight bereits eine Lösung entwickelt. Diese basiert jedoch auf der Annahme, dass ein Raum aus ebenen Flächen besteht, was für eine gesamte Raumvermessung auch meist ausreichend ist.

Jedoch sind die Oberflächen von einzelnen Raumbereichen oder die konkreten Konturen oder Winkel zwischen Ebenen häufig von großer Bedeutung. Zum Beispiel beim Auffüllen von Bodenmaterial, dem Verspachteln von Oberflächen oder dem genauen Zuschneiden von Material.

Damit eine Planung im Büro (bei bereits laufender Baustelle) oder auch eine Unterstützung aus der Ferne geboten werden kann, braucht es eine einfache Lösung um Teile von Wänden, Böden oder Ecken schnell zu scannen und in die Cloud hochzuladen. Dies soll mit
einem Handy oder Tablet geschehen - ohne weitere Hardware. Die hierfür bereits existierende App von immersight wird um eine 3D-Scan Technologie für Raumbereiche erweitert. Sowohl für iOS als auch für Android. Untersucht werden soll, welche Dimensionen
und welche Genauigkeiten mittels verschiedener Technologien heute schon möglich sind. Eine besondere Stellung nimmt wohl das iPad Pro ein, welches mit einem Lidar-Sensor ausgestattet ist und deswegen schon von Haus aus einen passenden Sensor hat. Android
Geräte sollen aber hierbei auf keinen Fall außer Acht gelassen werden. Eine rein Web-basierte Lösung, die auf jedem Gerät über den Browser genutzt werden kann, wäre eine Die Erfassung soll für Handwerker einfach vor Ort jederzeit nutzbar sein. Die Betrachtung der Scans soll ausschließlich per Web über die immersight 3D-Workroom Plattform erfolgen.

Ansprechpartner

K: Menübestellsystem für ein Intranet

Die Firma NewTec in Pfaffenhofen a. d. Roth bietet ihren MitarbeiterInnen ein Catering für die Mittagspause, bei dem aus drei Menüs (Standard, vegetarisch, Salat) ausgewählt werden kann. Die Bestellung seitens der MitarbeiterInnen und die Verwaltung seitens Teamassistenz funktioniert über eine Intranet-Webseite, die allerdings veraltet ist und dringend einer Überholung bedarf.

Die Aufgabenstellung umfasst (nahezu) den kompletten Lebenszyklus einer Software-Entwicklung:

  • Requirements Engineering unter Einbeziehung aller Stakeholder (BenutzerInnen, Admins, IT, …)
  • Erstellung & Dokumentation von Architektur & Design
  • Implementierung
  • Verifikation gegen die Anforderungen
  • Inbetriebnahme & Validierung mit dem Kunden

Der gesamte Prozess kann agil-iterativ erfolgen. Die Wahl der zu verwendenden Webseiten-Technologien ist grundsätzlich frei, muss sich allerdings an eventuellen technischen Beschränkungen seitens der Firmen-IT orientieren (-> Requirements Engineering).

Ansprechpartner

L: Open Simulation Library

Bei der Entwicklung komplexer mechatronische Systeme, wie z.B. im Kontext des autonomen Fahrens, sind kurze Time-To-Market Zeiten bei hoher Produktqualität von entscheidender Bedeutung. Um dies zu erreichen, erfolgt ein großer Teil des Entwicklungsprozesses auf Ebene sog. "digitaler Zwillinge" und unter Einsatz von Simulation. Dabei kommt eine Vielzahl unterschiedlicher Modelle und Daten zum Einsatz, wie z.B. Sensor-Modelle oder Szenariobeschreibungen. Die Erstellung komplexer Simulationen erfordert die Kooperation unterschiedlicher Entwicklungspartner und die Nutzung von Modelldaten verschiedener Lieferanten. Idealerweise kommen dabei ähnlich der Softwareentwicklung, vorgefertigte Standardkomponenten und Modelldaten auf Basis offener Datenformate und Standards zum Einsatz.

Im Rahmen des Projekts "Open Simulation Library" soll eine Bibliothek für Simulationsmodelle und -daten entwickelt werden, die über ein Web-Frontend genutzt werden kann. Dazu sollen die Bibliotheksinhalte in Kategorien eingeteilt und durch selbst beschreibenden Metadaten attributiert werden können. Auf dieser Basis soll eine flexible und assistierte Suche, Navigation und Anzeige der Bibliotheksinhalte mit bestmöglicher Usability umgesetzt werden. Weitere ergänzende Funktionen wie z.B. ein Rating der Inhalte können - sofern sinnvoll - ebenfalls integriert werden. Weitere Aspekte wie Authentifizierung, Payment-Integration, etc. stehen nicht im Fokus dieser ersten Ausbaustufe.

Über eine API soll der Bibliotheksservice in bestehende Tools integrierbar sein und es erlauben, die "Open Simulation Library" zu durchsuchen und Inhalte zu nutzen. Die Integration soll dabei am Beispiel des Modelleditors und Simulators orchideo | easySSP demonstriert werden:

Für die technische Umsetzung werden React, Java 17, Dropwizard und PostgresSQL empfohlen. Für die Bibliotheksanwendung wird ein Starting-Point bereitgestellt, für die Integration in orchideo | easySSP ein Integrationsrahmen. Zur Attributierung der Bibliotheksinhalte wird außerdem ein einfaches Metadaten-Format zur Verfügung gestellt, das hierbei als Ausgangsbasis genutzt werden soll.

Während der Umsetzung besteht die Möglichkeit Kontakt zu Simulationsexperten unterschiedlicher Unternehmen herzustellen, um deren Feedback in den Entwicklungsprozess einfließen zu lassen.

Ansprechpartner

M: itestra-App

Ausgangssituation

Die itestra GmbH verwaltet Ihre Informationen in verschieden Systemen (odoo, nextcloud, wiki). Es soll eine App zur Vereinheitlichung dieser Systeme entwickelt werden. Die zentrale Funktion der App ist die Buchung von Arbeitszeiten zu verschiedenen Projekten / Tasks ins bestehende ERP-System. Da häufiger zwischen verschiedenen Aufgaben gewechselt werden muss, ist es wichtig dass die Zeitenerfassung schnell und benutzerfreundlich gestaltet ist.

Neben der Zeiterfassung als Pflicht-Feature gibt es weitere optionale Features:

  • Kalender-Synchronisation (CalDAV)
  • Informationen über Urlaub von Team-Kollegen
  • Verwaltung der Mitarbeiterbenefits
  • Offline-Fähigkeit

Die Herausforderungen der Entwicklung sind:

  • Entwicklung lauffähiger mobiler App für Android und iOS
  • Benutzerfreundliche Oberfläche
  • Auswahl geeigneter Technologien
  • Authentifizierung über OAuth / Gitlab
  • Integration von Schnittstellen
  • Robustes Fehlerhandling
Ansprechpartner

N: ThesisManager 2.0

Eine Vielzahl von Studierenden lernen die adesso SE als Arbeitgeber währenden eines Pflichtpraktikums, Semesterprojektes oder einer Werkstudententätigkeit kennen und äußern danach den Wunsch ihre Abschlussarbeit im Umfeld ihre Tätigkeit bei adesso zu schreiben. Neben den Studierenden, die die adesso SE, aufgrund einer Projekttätigkeit kennengelernt haben, werden mögliche Themen und Ausschreibungen für Abschlussarbeiten auch an Hochschulen weitergeleitet und dort entsprechend ausgehängt und kommuniziert.

Aktuell werden Themen für Abschlussarbeiten als Worddokumente auf einer Seite im Intranet gepflegt. Dies erfordert einen hohen organisatorischen Aufwand in der Verwaltung und stellt eine schlechte Übersicht über die angebotenen Themen hinsichtlich Aktualität, des Status (Offen, in Bearbeitung oder Abgeschlossen) dar. Zudem sind keine weiteren Details ersichtlich und interessierte Young Professionals kennen die Seite im Intranet nicht, bzw. haben ggf. auch keinen Zugriff. Im Rahmen eines Vorprojekts wurde bereits mit der Realisierung begonnen, diese soll im nächsten Schritt weiterentwickelt werden.

Zielsetzung

Ziel dieses Projektes ist es eine zentrale Webapplikation für die Verwaltung und den Zugriff für Abschlussarbeiten bei adesso zu schaffen. Der ThesisManager soll Young Professionals mit Interesse an Abschlussarbeiten und Mitarbeiter von adesso – adessi -, die Abschlussarbeiten anbieten, verknüpfen. Hierfür soll nach einem durchgeführtem Requirements Engineering eine geeignete Lösung entwickelt werden. Das Projekt ist ganzheitlich im Rahmen der agilen Softwareentwicklung nach Scrum zu sehen und beinhaltet auch den Entwurf und die Realisierung bis hin zum Testen und Warten.
Der ThesisManager soll unter anderem folgende Funktionen beinhalten:

  • Suchen nach vorhandenen Abschlussarbeitsthemen: Young Professionals als auch adessi sollen die Möglichkeit haben, nach eingetragenen Abschlussarbeitsthemen zu suchen und diese Ergebnisse nach bestimmten Kategorien (Art der Abschlussarbeit, etc.) zu filtern.
  • Überblick der angebotenen Themen: Auf einer Übersichtsseite soll es möglich sein schnell einen Überblick über momentan angebotene Themen zu erhalten. Zudem soll es eine Detailseite zu angebotenen Themen geben.
  • Hinzufügen von neuen Themen: adessi sollen die Möglichkeit haben neue Abschlussarbeitsthemen einzutragen. Hierzu soll das System ein Template zur Verfügung stellen, um eine einheitliche Struktur zwischen verschiedenen Themenvorschlägen zu gewährleisten.
  • Bewerbung auf Themen: Young Professionals sollen die Möglichkeit haben sich für eine Abschlussarbeit zu bewerben.
  • Export von eingetragenen Themen: Es soll möglich sein die Übersicht über alle eingetragenen sowie einzelne Themen als Druckversion zu exportieren.
Erwartete Anforderungen / Fachkompetenzen
  • Softwarelebenszyklus & Agile Softwareentwicklung
  • Kenntnisse zu Requirements Engineering, Usability & User Experience
  • Softwareentwicklungskenntnisse Java / Webtechnologien
  • Datenbankkenntnisse
  • Git-Kenntnisse
Ansprechpartner

O: From the IDEA to the App Store - An Automated CI/CD Pipeline

Entwickelt werden soll eine modulare, konfigurierbare Build CI/CD Pipeline für Flutter, iOS oder Android (vom lokalen Editor zur App im App Store, wobei die App nicht wirklich veröffentlicht werden
muss). Dabei sollen alle nötigen Zwischenschritte möglichst automatisiert werden. Beispiel: Code push auf Release Branch im online Git Repository triggert => testet App (UI/Unit) => versioniert, baut
& signiert App, (automatisiertes) profiling etc. => lädt fertige App in den Store & trägt Update-Daten (Changelog, Beschreibungstexte, Screenshots, ...) ein (über entsprechende Schnittstellen). Das
Ganze soll für eine minimalistische Demo App umgesetzt werden. Der Fokus liegt dabei stark auf der automatisierten und konfigurierbaren CI/CD Pipeline, sowie deren Wiederverwendbarkeit.

Aufgabenstellung
  1. Meilenstein - Planung des Projekts
    • Verteilung von Rollen im Projektteam
    • Aufwandsabschätzungen von möglichen Aufgaben
    • Einlesen in die Thematik von CI/CD Pipelines
    • Erstellen eines Dokuments mit ersten Anforderungen (da es sich hierbei jedoch um ein
    • exploratives Projekt handelt, liegt der Fokus auf dem Ausprobieren und Vergleichen von
    • Lösungsansätzen. Dieses Dokument wird nur zur Orientierung verwendet und aktualisiert,
    • z. B. als Changelog).
  2. Meilenstein - Einarbeitung & Grundproblem
    • Erstellen eines Demo Projekts mit folgenden Funktionen:
      • Einfaches Laravel Backend mit Datenbankanbindung, sowie API-Methoden für Authentifizierungsmechanismen
      • Mini Smartphone App
        • User Login und Registrierung
        • verwendet Library intern/extern => Vgl. Demo Projekt
      • Integration in Git/Github
    • Außerdem muss das Demo Projekt noch mit Tests ausgestattet sein:
      • Unit Tests
      • UI Tests
      • Integration Tests
  3. Meilenstein - Anforderungsanalyse an die Pipeline
  4. Meilenstein - Analyse und Vergleich von Lösungsansätzen
    • Was gibt es für technische Lösungen (Technologien, Tools etc.) für eine CI/CD Pipeline?
    • Möglichst "komplette" Auflistung der gefundenen Möglichkeiten und Aufstellen von Vergleichskriterien
    • Vergleich der zuvor identifizierten Lösungen (welche Lösung eignet sich wann, wie, wo, ...) anhand der gewählten Kriterien (iterativ)
  5. Meilenstein - Umsetzung
    • Je nach Teamgröße sollen 2-4 Ansätze umgesetzt werdenZiel dabei ist min. eine saubere Lösung
  6. Meilenstein - Dokumentation
    • Dokumentation des Vorgehens bei der Umsetzung

Im Projekt-Prozess sollen die Teammitglieder Herausforderungen, Problematiken und während der Umsetzung entdeckte Schwierigkeiten, abschätzen, kommunizieren, lösen, ... Mit der Dokumentation muss das entstandene System auf ein neues Softwareprojekt (gleicher Art) einfach angewendet werden können. Dabei müssen alle relevanten Aspekte konfigurierbar sein (z. B. .env Datei).

Ansprechpartner:
  • Carsten Vogel, Institut für Klinische Epidemiologie und Biometrie, Universität Würzburg
  • Fabian Hofmann, Institut für Datenbanken und Informationssysteme 
  • Jens Scheible, Institut für Datenbanken und Informationssysteme  

P: Flutter Smart Sensing Library für medizinische und psychologische Studienapps

Smart Sensing beschreibt den Prozess des Sammelns und Aggregierens von Messwerten aus verschiedenen Datenquellen, wie beispielsweise Smartphones oder Wearables. Neben Beobachtungen der physikalischen Welt (z.B. in Form von  Beschleunigungssensorik), spielt das subjektive Empfinden der Nutzenden eine entscheidende Rolle (z.B. durch Fragebögen in Form von EMAs).
Anhand dieses gesammelten Datenstroms, lassen sich im späteren Verlauf wertvolle Rückschlüsse über verschiedene Erkrankungen im psychologischen oder medizinischen Kontext ziehen.
Ziel dieses Projekts ist es, eine modulare Cross-Platform Anwendung (Android & iOS) mit der Technologie Flutter zu entwickeln, die als Grundlage für kommende Studien-Apps dienen soll. Durch die App sollen:

  • - verschiedene Sensoren eingebunden (Smartphone, Wearable, IoT)
  • - eine grundlegende Verarbeitung und lokale Speicherung auf dem Smartphone
  • - Fragebögen in Form von EMAs
  • - effiziente Speicherung hochfrequenter Daten in Backend

erreicht werden können.

Ansprechpartner:
  • Carsten Vogel, Institut für Klinische Epidemiologie und Biometrie, Universität Würzburg
  • Fabian Hofmann, Institut für Datenbanken und Informationssysteme 
  • Jens Scheible, Institut für Datenbanken und Informationssysteme  

Q: Web-basierte Datenvisualisierung für Daten aus medizinischen Studien

Eine Vielzahl medizinischer Studien setzt heutzutage auf die Durchführung per App. Dabei werden Unmengen an medizinisch relevanten Daten gesammelt und verarbeitet. Um daraus jedoch einen Mehrwert zu generieren bedarf es einer angemessenen Aufbereitung der Daten. So kann die richtige visuelle Darstellung beispielsweise dazu führen, dass medizinische Phänomene besser erkannt werden können.

Derzeit entwickelt daher ein interdisziplinäres Team aus Psychologen, Software-Entwicklern und Sozioökonomen eine Web-basierte Anwendung zur Visualisierung dieser Daten. So sollen Daten für Experten, aber auch Studienteilnehmer, verständlich aufbereitet werden. Um dieses Ziel jedoch zu erreichen, bedarf es bestimmter Erweiterungen an der bestehen Anwendung.

Aufgabenstellung
  1. Meilenstein – Organisation im Team
    • Definition von Rollen (nach Scrum: Entwickler, Scrum Master, PO etc.)
    • Beschreibung des Vorgehens
  2. Meilenstein – Analyse bisheriger Technologiestack
    • Einarbeitung in die verwendeten Technologien (ReactJS, ChartJS)
    • Analyse der derzeitigen Architektur des Projekts
  3. Meilenstein – Definition von neuen Features
    • Gemeinsame Definition von Anforderungen mit dem derzeitigen Entwicklerteam (Konfigurierbarkeit von Graphen, Zoom-Funktionalität, Datenfiltermöglichkeiten etc.)
  4. Meilenstein – Implementierung von Features
    • Verteilung von Tickets (Features)
    • Gemeinsames Arbeiten mit Versionskontrolle, Reviewing-Prozess und Code-Dokumentation (z.B. Kommentare in Gitlab, im Code etc.)
  5. Meilenstein – Dokumentation
    • Auflistung der neuen Features mit kurzem Beschreibungstext in Wiki
Ansprechpartner:
  • Carsten Vogel, Institut für Klinische Epidemiologie und Biometrie, Universität Würzburg
  • Fabian Hofmann, Institut für Datenbanken und Informationssysteme 
  • Jens Scheible, Institut für Datenbanken und Informationssysteme