(Anwendungs-)Projekte SE im Sommersemester 2022

Auf dieser Seite werden ab dem 1. Februar kurz die im SoSe 2022 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 23.2.22 eine E-Mail mit priorisierten Wünschen 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

Projektvorstellung

Die Projektvorstellung der Projekte im SoSe 22 fand am Mittwoch, 9.2.2022 statt.

Über folgenden Link können Sie die Aufzeichnung ansehen: 

cloudstore.uni-ulm.de/s/t8rCtrSdtNLexkj

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.

Im nächsten Semester soll insbesondere die Navigation verbessert werden.

(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:

  • Optimierung des Workflows
  • Datenexport
  • Recherchemöglichkeiten

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

Ansprechpartner:

C: ddueruem-web

Projektbeschreibung

ddueruem-web hat das Ziel der Produktlinien-Community eine zentrale Plattform zum Austausch von Feature Modellen und Evaluation zu bieten. Darüber hinaus dient es als Frontend für ddueruem, einen Wrapper für eine Reihe an Tooling und Libraries. Das Backend von ddueruem-web ist in Django geschrieben, das Frontend in ReactJS und Typescript. Je nach Euren Interessen und Fähigkeiten stehen eine Reihe an TODOs zur Auswahl. Im Frontend warten diverse User-Stories auf eine Umsetzung, zudem sollen Daten übersichtlich dargestellt und graphisch visualisiert werden. Im Backend steht der Anschluss an unsere Compute-Server über einen Load-Balancer an, zudem der Anschluss an die GitHub-API. Der aktuelle Stand entstammt ebenfalls einem SE-Projekt (Zwischenpräsentation). Am Ende des anstehenden Projekts ist die Vorstellung bei einer Community Konferenz oder einem Workshop geplant.

Ansprechpartner
  • Tobias Heß, Inst. für Softwaretechnik und Programmiersprachen

D: Algorithmenerkennung auf Sourcecode

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

Das SE-Projekt soll die Grundideen eines verwandten Ansatzes aus der Forschung aufgreifen, diese für den beschriebenen Use Case anpassen und somit eine initiale Version der Algorithmen Erkennung umsetzen. Hierfür soll ausgehend von einer abstrakten Algorithmusbeschreibung eine musterbasierte Suche auf dem Code-Graphen durchgeführt werden (Graph-Matching). Im Rahmen des Projekts werden die Anforderungen an die Lösung durch die Studierenden festgehalten und eine Implementierung umgesetzt bzw. angepasst. 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: Performance Dashboard

In der Informatik gibt es viele Bereiche in denen Modelle verwendet werden, zum Beispiel, um komplexe Softwaresysteme auf abstrakte Weise zu beschreiben. Sollen diese Modelle aktualisiert werden, zum Beispiel, weil eine Softwarekomponente umbenannt wurde, müssen die betroffenen Modelle nicht manuell aktualisiert werden, sondern können durch sogenannte Transformationen automatisch aktualisiert werden. Um die Aufgabe einer Transformation zu beschreiben, werden Modelltransformationssprachen verwendet, die spezielle Sprachkonzepte enthalten, um möglichst komfortabel Änderungen auf Modellen beschreiben zu können.

Leider können bei Transformationen, ähnlich wie bei Programmen in Java, Performance Probleme auftreten. Momentan verfügbare Profiler für Modelltransformationssprachen bieten Informationen, die aber für Benutzer ohne Expertenwissen über Sprachdetails nur schwer zu interpretieren sind.

Projektbeschreibung

Im Rahmen des Projekts soll ein Performance Dashboard für die Modelltransformationssprache ATL entwickelt werden, das auch Nutzern ohne Expertenwissen hilft Ursachen von Performance Problemen zu erkennen. Dazu gehört ein Backend das performant zur Laufzeit Informationen über die Ausführung einer Transformation sammelt und ein Frontend, das die gesammelten Informationen aufbereitet zur Verfügung stellt.

Für die Modelltransformationssprache ATL existiert ein Eclipse-Plugin, das mit Hilfe des Monitoring-Framework Kieker erweitert werden soll. Die Wahl der Frontend Technologie steht den Projektteilnehmern frei mit der Beschränkung, dass ein Benutzer das Dashboard aus Eclipse starten kann.

Voraussetzungen
  • Gute Programmierkenntnisse in Java insbesondere im Kontext der Entwicklung von Eclipse-Plugins
Weitere Informationen
Ansprechpartnerin

F: Erfassung der Aktivität von Mäusen in ihrem Käfig

Obwohl Tierversuche in der Forschung unerlässlich sind, besteht Einigkeit darüber, sie auf ein notwendiges Minimum zu beschränken. Als Richtlinie gilt dabei das ethische Prinzip der „3R“: Replace (Vermeiden), Reduce (Verringern) und Refine (Verbessern). Im Rahmen dieses Projekts innerhalb eines Baden-Würtemberg weiten 3R-Netzwerkes ist nun geplant neben Untersuchungen zum Stoffwechsel und Stresshormonen der Tiere ein (semi) automatisiertes Verfahren zur Erfassung der Aktivität von Mäusen in ihrem Käfig zu etablieren. 

Projektbeschreibung 

In Kameraaufnahmen von Käfigen soll eine automatische Bewegungserkennung einer Maus programmiert werden. Bei einer Inaktivität über mehrere Minuten erfolgt dann der automatische Versand einer Email (live notification) mit einer Warnung. Unter bestimmten Bedingungen soll auch eine automatische Speicherung des Bildes realisiert werden. Auf den Bildern sollen außerdem Felder definiert werden (Rand des Käfigs, Nest, Futter, Trinkflasche) um eine Auswertung zu ermöglichen, wie oft und lang die Tiere sich in welchen Bereichen aufgehalten haben. Es ist auch geplant die Schnelligkeit der Bewegungen (mit Objekterkennung und Trajektorienverfolgung) als Durchschnitt und Maximum zu erfassen. Zum Schluss soll eine Klassifikation von Bewegungen vorgenommen werden: ist es beispielsweise möglich ein Trinken von einem Buddeln zu unterscheiden? 

Voraussetzungen

  • Gute Programmierkenntnisse in einer Programmiersprache wie Python oder C++
  • Interesse an Bilderkennung mit bekannten Frameworks wie OpenCV (https://opencv.org/)
  • Interesse an Machine Learning/Klassifikation
  • Ein Herz für Tiere :-) 

Ansprechpartner

G: Cybersecurity Insights into Bacula Catalog Data

bacula ist ein Open-Source Projekt, das von der Firma bacula systems erweitert und als ganzheitliche Lösung international vermarktet wird. Es handelt sich dabei um eine Datensicherungssoftware, die z.B. auch an der Uni Ulm für die Backup-Lösung verwendet wird. 

Projektbeschreibung

Wir wollen unseren Kunden und Nutzern Mehrwert in Bezug auf Sicherheitsmanagement,
insbesondere gegen Ransomware, bieten.
Im Betrieb sammelt unsere Software prinzipbedingt erhebliche Mengen Metadaten der
gesicherten Sachen.

  • Der Informationsgehalt ist hoch
  • Diese Informationen können genutzt werden, um sicherheitsrelevante Ereignisse oder Zustände zu erkennen
  • Neben der Informationsgewinnung müssen Informationen auch zusammengeführt, bewertet und präsentiert werden.

Sie sollen sich mit den Daten vertraut machen, Informationen gewinnen, strukturieren,
speichern und korrelieren, Relevanz bestimmen, und schliesslich sinnvolle Präsentationen sowohl
im Web-UI als auch in anderer Form ermöglichen.

Voraussetzungen
  • C Kenntnisse sind hilfreich
  • Interesse an Big Data Analysis
Was wir bieten
  • Ein herausforderndes, komplexes, praxisnahes Projekt
  • Ein hoch motiviertes, qualifiziertes, internationales Team
  • Einblick in die Arbeitsweise einer kleinen, flexiblen, agilen Softwarefirma
  • Die Möglichkeit, im Open-Source-Umfeld sichtbare Ergebnisse zu erzielen
  • Zusammenarbeit mit Leuten, die schon länger als Covid verteilt arbeiten und die Möglichkeiten und Probleme kennen
Ansprechpartner

H: 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
  • Integration with Unity as a visualization
Ansprechpartner:

I: Eye-Tracking on Smartphones and Webcams

Today's eye-based interaction and evaluation requires specialized (and expensive) hardware (e.g., 230€ for Tobii Eye Tracker 5). Therefore, there are already open-source approaches to doing this with the built-in smartphone camera or the webcam.  Recently, Kong et al. [1] presented their EyeMU (see github.com/FIGLAB/EyeMU) that is capable of using the smartphone camera to track the eye-gaze.
In this project, this approach should be taken and converted into an easy-to-include Unity package. This would enable numerous developers to easily include eye-gaze in their applications both as an input mechanism (thereby increasing accessibility) and also to evaluate their software (e.g., games, websites, lectures, …).

Ansprechpartner:

J: 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:

K: Improving Online Studies

During Covid-19, numerous studies in numerous disciplines had to be undergone online via platforms such as MTurk or Prolific. These have various advantages such as a diverse user base and quick access to a huge number of participants.

The main disadvantage, however, is that some participants do not participate with good intentions. Therefore, manual data curation after study has ended is necessary. This is time-consuming.

Especially: multiple attention checks (e.g., „Please select the fifth option“) have to be filtered.

Project Idea

Implement a plugin for LimeSurvey (https://limesurvey.org/, the number one open-source survey software) to automatically determine participants that have to be rejected based on the attention checks and communicate these to the service provider.
Additionally, implement a bot detection to avoid useless data. 

Ansprechpartner:

L: Generische Fragebogen-Apps für iOS und Android via Flutter

Im Zuge der voranschreitenden Digitalisierung in der Medizin, werden immer häufiger Apps als behandlungsbegleitende Tools für Patienten eingesetzt. Diese Apps können den Patienten ein einfaches Aufnehmen ihres Gesundheitszustandes während ihrer Therapie ermöglichen. Die dadurch generierten Daten können den behandelnden Ärzten einen besseren Überblick über die Behandlungserfolge ihrer Patienten bieten und ein Grundgerüst für eine verbesserte Arzt-Patienten-Kommunikation darstellen. 
Um möglichst flexibel auch verschiedene Behandlungsformen reagieren zu können, soll in diesem App ein modulares App-Template mit dem cross-plattform Framework Flutter entstehen. Mit Hilfe dieses Templates sollen Fragebögen mit verschiedenen Fragetypen über JSON konfiguriert werden können. Die Antworten werden in einer Datenbank gespeichert und sollen bei Bedarf über verschiedene Möglichkeiten zum Arzt übertragen werden können. Dabei steht die sichere Kommunikation der potenziell sensiblen Daten im Vordergrund.
Das umfasst verschiedene Domänen des Software-Engineerings von der Planung über die Umsetzung: 

Aufgaben
  • Projektplan erstellen
  • Geeignetes Prozessmodell zugrunde legen (Agile Entwicklung)
  • Werkzeuge und Tools zur Softwareentwicklung zusammenstellen
  • Nachhaltigkeitsaspekte bei Frameworkwahl berücksichtigen
  • Das Projekt nach dem Plan führen (Swimlanes und Sprints)
  • UI-Design
  • API Kommunikation mit Backend-Servern (RESTful)
  • Datenbank-Kommunikation
  • Nutzer einbeziehen (Feedback einholen)
  • Risiken verfolgen (Analyse!)
  • Programmierung mit Flutter/Dart
Ansprechpartner:

M: Development of Eclipse Plug-Ins (FeatureIDE)

FeatureIDE ist eine auf Eclipse basierende IDE zur Feature-orientieren Softwareentwicklung, welche weltweit in Forschung und Industrie eingesetzt wird. Im Rahmen des Projekts erweitert ihr FeatureIDE und setzt dabei auf der bestehenden Codebasis von ca. 150.000 Zeilen auf. Weitere Informationen findet ihr auf der Webseite zum Projekt.  Auf dem Youtube-Kanal zum Projekt könnt ihr euch einige Funktionen anschauen, welche zum Teil in Team-Projekten entwickelt wurden. Das Ergebnis des letzten SE-Projekts könnt ihr hier finden. 

Ziele

  • Kenntnisse über moderne, erweiterte Programmierparadigmen mit Fokus auf die Erstellung maßgeschneiderter Systeme
  • Erfahrungen in der Entwicklung von Plug-Ins für Eclipse
  • Mitwirkung an einem weltweit eingesetztem Open-Source-Projekt
  • Agile Softwareentwicklung im Pair-Programming Stil
  • Versionsverwaltung mit Git in der Praxis
Ansprechpartner

N: 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  

O: CAREERFLUENCE

Die adesso SE beschäftigt eine Vielzahl von Studenten und Trainees, auch “Young Professionals” (YP) genannt, die in den unterschiedlichsten Bereichen tätig sind. Dabei besteht die Schwierigkeit einen Überblick über die Tätigkeitsfelder, die Verfügbarkeit, die Fähigkeiten sowie die Interessen der Young Professionals zu behalten. Derzeit werden sämtliche Informationen aus unterschiedlichen Quellen bezogenund nicht einheitlich zusammengeführt, sodass eine einfache Verwaltung der YPs nicht gegeben ist. So kann es z.B. vorkommen, dass ein Projekt dringend studentische Unterstützung braucht, dafür aber erstmal alle Studenten einzeln angefragt werden müssen, um einen aktuellen Stand über deren Verfügbarkeit zu erhalten. Im Rahmen eines Vorprojekts wurde bereits mit der Realisierung
begonnen, diese soll im nächsten Schritt weiterentwickelt werden.

Zielsetzung

Unter dem Motto „Build Your Own Career“ ist das Ziel dieses Projektes die Weiterentwicklung einer zentralen Webapplikation für die Verwaltung von Young Professionals” bei adesso. Das
Projekt ist ganzheitlich im Rahmen der agilen Softwareentwicklung nach Scrum, beginnend mit der Anforderungsanalyse, über den Entwurf und Realisierung bis hin zum Testen und
Warten, durchzuführen.
Die Applikation soll unter anderem folgende Funktionen beinhalten:

  • Anbindung an Drittsysteme: Aus mehreren Drittsysteme werden unterschiedliche Informationen bereitgestellt. Diese sollen in die Anwendung überführt und zusammengeführt werden
  • Erstellung von CI/CD Pipeline(s): Überwachung, Wartung und Automatisierung der gesamten Anwendungsentwicklung
  • Anbindung ADFS: Das adesso ADFS (Active Directory Federation Services) soll angebunden werden, um Single Sign-on zu ermöglichen
  • Young Professional Suche: Führungskräfte/Projektleiter sollen die Möglichkeit haben, Young Professional anhand von deren Skills und Verfügbarkeit suchen zu können
  • Projektbewerbung: Young Professional sollen sich initiativ auf Projekte bewerben können
  • Young Professional Planer: Young Professional sollen die Möglichkeit besitzen sich selbständig einen Plan mit deren Projekttätigkeiten zusammenstellen zu können
Erwartete Anforderungen / Fachkompetenzen
  • Softwarelebenszyklus & Agile Softwareentwicklung
  • Softwareentwicklungskenntnisse in Java (Spring Boot)
  • Datenbankkenntnisse (Postgres)
  • Kenntnisse in der Webentwicklung (HTML, Angular)
  • Git-Kentnisse
  • Jenkins-Kenntnisse für CI/CD
Ansprechpartner

P: ThesisManager

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.

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

Q: Dashboard für eine virtuelle Produktionslinie

Projektbeschreibung

In einer virtuellen Produktionslinie wird das Verhalten von verschiedenen Maschinensimuliert. Diese (gegebenen) Schnittstellen liefern Informationen über z.B. produzierte Stückzahlen, Qualität, Konfiguration und Auslastung der Maschinen. Das Ziel dieses Projektes wird es sein für diese Produktionslinie passende Oberflächen und Dashboards zu bauen. Hierzu zählt einerseits die Übersicht der Maschinen in der Linie, als auch die einzelnen Analytics-Dashboards. Die entwickelte Anwendung dient als Grundlage zur Demonstration verschiedener Optimierungsmöglichkeiten in der Produktion. Vorwissen: Die Projektteilnehmer:Innen sollten ein gutes Gespür für UX/UI haben und Begeisterung für Webentwicklung mitbringen.

Ansprechpartner
SmartFactoryKL Pressekontakt, CC BY-SA 4.0, via Wikimedia Commons

R: 360°-Panorama-Stitching

Die immersight GmbH entwickelt mit dem 3D-Showroom eine Cloud-Lösung für Virtuelle Ausstellung und mit dem 3D-Workroom zur Baustellendokumentation und -kommunikation. Das bedeutet, Mitarbeiter eines Handwerks- /Bauunternehmens machen mit 360°-Kameras Panoramaaufnahmen von Räumen und laden diese in die cloud-basierte Anwendung hoch. Besonders im Fokus steht dabei das Vermessen im Raum. Hierfür hat die immersight GmbH ein Verfahren entwickelt, mit dem man in einem 360°-Panorama messen kann (siehe immersight.com). Das Problem ist, dass diese Vermessung nur korrekte Werte liefert, wenn das 360°-Panorama perfekt gestitcht wurde.

Stitching beschreibt das Erstellen eines Bildes durch das Zusammenfügen mehrerer überlappenden Einzelbildern. Ein Beispiel für eine 360°-Kamera, die solche Panoramen aufnehmen kann, ist die Ricoh Theta Z1. Da der Bildwinkel der Fischaugenbilder größer als 180° ist, entsteht eine geringe Überlappung bei beiden Fischaugenbilder. Dadurch kann durch die Kamera auf die beiden aufgenommen Fischaugenbilder ein Zusammenfügen (Stitching) erfolgen, was zu einem 360°-Panorama führt. Das Stitching der Ricoh Theta Z1 findet Hardware-seitig auf dem Chip der Kamera statt und ist nur bedingt beeinflussbar. Das daraus resultierende, sogenannte sphärische Panorama kann auch in ein kubisches Panorama konvertiert werden. Das bedeutet, dass 6 gleichgroße Quadrate generiert werden, die zusammen ein Würfel bilden. Dies ist notwendig, um darauf die oben genannten Messungen durchführen zu können. 

Leider ist das stitching der Kamera unzureichend. Gebogene Linien und Verzerrungen im Bild fallen einem Menschen kaum auf. Beim Vermessen von geraden Linien werden sich die Abweichungen jedoch sichtbar und sehr negativ bemerkbar. Die Kamera liefert aber auch RAW-Daten, also die beiden Fischaugen-Aufnahmen und es kann ein eigenes Stitching implementiert werden. Aus diesem Grunde sollte das Stitching die Fluchtpunkte und Geraden im Raum erhalten. Ein erweitertes Stitching (z.B. modellbasiertes Stitching) nutzt Features im Bild, z.B. Raumkanten, und richtet das Stitching an diesen Merkmalen aus. Ein Verfahren welches die Raumkanten beachtet und das Stitching daran ausrichtet, wäre für die Vermessung ideal.

Ausgestaltung

Es soll ein eigenes Stitching-Verfahren für die Ricoh Theta Kamera Z1 implementiert werden. Hierzu werden die RAW-Daten der Kamera verwendet. Das Stitching soll vollständig nachvollziehbar und parametrisierbar sein, sodass das Ergebnis für die Vermessung geeignet ist. Welche Features und welche Technologie hierfür genutzt werden kann, soll evaluiert werden. Es kann auch eine Kombination verschiedener Technologien sein.

Ansprechpartner
Ricoh Theta Z1
Zwei kreisrunde Fischaugenbilder werden zu einem sphärischen Panorama (gestitcht)
Sphärisches Panorama kann in kubisches Panorama konvertiert werden und ist aufklappbar
immersight Vermessungs-Technologie in einem Panorama
Die hier sichtbaren “Raumkanten” sind in dieser Darstellung (sphärischen Panorama) gebogene Linien, werden beim Betrachten / Vermessen aber wieder Geraden bilden. Diese Linien sollten - so die Annahme - absolut gerade sein.
Sphärisches Panorama wird durch die Definition der Raumkanten zu einem Körper dessen Kanten Wände, Boden und Decken trennen.

S: Mobiles Führungsunterstützungssystem im Katastrophenschutz

Problembeschreibung

Während im Tagesbetrieb Rettungs- und Feuerwehreinsätze aus festen Leitstellen heraus geleitet werden, spielen im Katastrophenfall oder auch bei Großveranstaltungen mobile Leitstellen (Einsatzleitwagen) eine große Rolle.

Führungsunterstützungssysteme für Einsatzleitwagen müssen einige besondere Anforderungen erfüllen:

  • Flüssiger Betrieb auch bei beschränkten Rechnerressourcen
  • Autonomer Betrieb bei fehlender Internetverbindung
  • Übersichtliches User Interface, das auch von Ehrenamtlichen gut nutzbar ist, die nicht ständig mit dem System arbeiten
  • Unterschiedliche Sichten auf den Datenbestand, abhängig von der Funktion (z.B. Funkbetriebsplatz, Einsatzleiter, Einsatztagebuch)
  • Einfaches Workflow-Management (z.B. Bearbeitungsvermerke integriert)

In der räumlichen Enge eines Einsatzleitwagens und bei hohem Nachrichtenaufkommen muss das User Interface auch rein von der Tastatur aus bedienbar sein. Als Vorbild können hier speziell für Funkwettbewerbe im Amateurfunk gedachte User Interfaces dienen (teilweise alle 10-15 Sekunden eine Nachricht).

Kommerziell werden einige wenige Führungsunterstützungssysteme angeboten, die jedoch nicht alle Anforderungen erfüllen, zumeist sehr teuer und nicht ausreichend konfektionierbar sind. Daher wird eine Open-Source-Lösung angestrebt, die für unterschiedliche Einsatzbereiche angepasst werden kann.

Spezielle Anforderungen
  • Betriebssystem Linux
  • Erstellen einer mehrnutzerfähigen Datenbankstruktur mit kontinuierlichen Backups und Protokollierung aller Änderungen (Bedarf an gerichtsfester Protokollierung von Einsatzabläufen)
  • Entwurf von zunächst drei User Interfaces:
    • Eingabe und Editieren von Ressourcen (Fahrzeuge, Einsatzkräfte)
    • Nachrichteneingabe an Funkarbeitsplätzen (zunächst 2-4, ggf. ausbaufähig) mit PC
    • Einsatztagebuch (auch für mobile Plattformen)
  • Klare Dokumentation von Software-Schnittstellen, die Erweiterungen erlauben (z.B. Einsatztableau, Einsatzbearbeitung abseits der Funkarbeitsplätze) 

Welches Datenbanksystem hier eingesetzt wird und ob bei den Nutzerinterfaces grundsätzlich ein Webserver eingesetzt wird, soll in einer ersten Projektphase entschieden werden. Entscheidend sind Stabilität, Schnelligkeit (in der Handhabung) und Ressourcenanforderungen.

Ansprechpartner
Die Abbildung zeigt den Screenshot des Wettbewerbs-Loggers N1MM: oben Übersichtsfenster (z.B. Funkbetriebsbuch), unten Eingabemaske.