(Anwendungs-)Projekte SE im Wintersemester 2021/22

Auf dieser Seite werden kurz die im WiSe 2021/22 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 11.8.21 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 Gallerie der bisherigen Projekte finden Sie hier: Bisherige SE-Projekte

A: JoolNet - Eine Implementierung von BoolNet in Julia

BoolNet ist ein R Paket (mit C), welches für die (Re)Konstruktion, Modellierung und Simulation von Bool‘schen Netzwerken entwickelt wurde. Bool’sche Netzwerke sind dynamische Modelle auf Basis von logischen Termen, die für die Simulation von biologischen oder technischen Systemen verwendet werden können. Das Paket unterstützt verschiedenen Simulationen solcher Modelle, wie die Berechnung und Visualisierung von Zustandsübergangsgraphen und stabilen Zuständen im System. In diesem Feld ist BoolNet ein Standard-Tool, das seit ca. zehn Jahren weltweit eingesetzt wird. Die Programmiersprache Julia wird nunmehr seit zehn Jahren Open Source entwickelt. Sie eignet sich durch ihre speziellen Eigenschaften hervorragend für die Verarbeitung großer Datenmengen und für wissenschaftliche Anwendungen. Ähnlich wie C, C++ und Python ist Julia aber auch als General Purpose Language ausgelegt. Mit ihr lassen sich also Anwendungen für fast alle Zwecke schreiben, so dass die Sprache auch außerhalb der Nische Wissenschaft gut aufgehoben ist. In verschiedenen Geschwindigkeitstests hat sich gezeigt, dass Julia eine sehr schnelle Programmiersprache ist, die sich bestens für die Parallelisierung und das Verteilte Rechnen von Prozessen (unter anderem auf GPUs) eignet. Daher befasst sich diese Arbeit mit dem Transfer der BoolNet-Funktionalität nach Julia. Refactoring vorhandener Funktion, aber auch die neuen Möglichkeiten in Julia zu optimieren stehen hier im Vordergrund.

Arbeitsschwerpunkte:
  • Refactoring und Neuimplementierung der BoolNet-Funktionalität rein in Julia
  • Parallelisieren und Optimierung von Algorithmen mit vielen Möglichkeiten 
  • Verwendung neuer Strukturen und Technologien
Anforderungen:
  • Grundkenntnisse in Software-Design und Kenntnisse in R (und C) und Julia sind von Vorteil.
Ansprechpartner

B: Low Code Platform for Graph Cloud Computing

Graphen stellen eine der wichtigsten Datenstrukturen in der Informatik da. Ihre Anwendungsbereiche sind vielseitig und komplex. Sei es als „Social Graphs“, wie sie Faceboook (https://developers.facebook.com/docs/graph-api/) und andere Social Media Plattformen verwenden um online Interaktionen von Personen darzustellen, als „Knowledge Graphs“, um Wörter mit Bedeutungen und zugehörigen Informationen zu versehen wie es Suchmaschinen oder Frage-Antwort Dienste wie WolframAlpha, Siri oder Amazon Alexa anwenden, als Pfadgraphen zur Routenoptimierung in Flugplänen oder Kartensysteme wie Google Maps oder OpenStreeMap, oder zur internen Darstellung von Daten in Reccomendation Engines wie sie zum Beispiel in Yelp oder Amazon zum Einsatz kommen.
In vielen dieser Anwendungsbereiche wachsen die angewendeten Graphen stetig an und fordern somit immer mehr Ressourcen ein um zeitnahe Bearbeitung von Anfragen oder Manipulationen zu ermöglichen. Eine seit langem verfolgte Strategie zur Bewältigung dieses Problems stellt die Parallelisierung dar. Hierbei werden, auf Basis von unterschiedlicher Techniken vie z.B Apache Spark GraphX, die Suche oder auch Manipulation von Sub-Graphen verteilt auf mehreren Threads oder sogar verschiedenen Knoten eines Cloudcomputing-Netzwerks ausgeführt.
Diese Ansätze werden schon produktiv angewendet erfordern aber sehr detaillierte Auseinandersetzung mit den komplexen internen Strukturen der Systeme.
Um Anwendern die Nutzung zu erleichtern können Low-Code-Plattformen eingesetzt werden die eine einfache graphische Syntax zur Beschreibung von Suchanfragen oder Manipulationen in Graphen bieten.

Projektbeschreibung

Im Rahmen eines früheren Projektes wurde bereits eine Low-Code-Plattform entwickelt die, basierend auf deklarativer graphischer Syntax, mittels JET (Java emitter template) Scala Code für das Apache Spark GraphX Framework generiert, um Suchanfragen auf Graphen zu parallelisieren und einfache Manipulationen gefundener Sub-Graphen zu ermöglichen.
In diesem Projekt soll die Entwicklung der Plattform fortgesetzt und verbessert werden. Hierfür soll die Bandbreite der unterstützten Graphen erweitert werden, indem der Codegenerator für die Searchengine so erweitert wird, dass diese auch Attribute an Knoten und Bedingungen auf diesen Attributen berücksichtigen kann. Der zugrundeliegende Suchalgorithmus soll verbessert werden und eine Möglichkeit zur Parallelisierung der Manipulationen entwickelt werden.

Voraussetzungen
  • Gute Programmierkenntnisse in einer JVM-basierten Sprache wie Java oder Scala.
  • Grundkenntnisse der parallelen Programmierung.

Ansprechpartner:

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

D: CouchEdit

Vermutlich jeder hat schon einmal grafische Modelle im Rahmen seines Studiums erstellen müssen. Beliebt sind Klassendiagramme, ER-Diagramme, Zustandsautomaten oder Sequenzdiagramme. Es gibt dafür auch eine Vielzahl an Modellierungswerkzeugen, wobei die Usability meistens "gewöhnungsbedürftig" ist. Dies liegt unter anderem daran, dass viele Modellierungswerkzeuge nur das Erstellen von korrekten Modellen erlauben. Das heißt, dass z.B. Pfeile immer mit einem Anfangs- und Endknoten verbunden sein müssen. Diese Art der Modellierung schränkt einen aber häufig ein bzw. macht die Bedienung umständlicher.

In grafischen Zeichenwerkzeugen wie Illustrator, Inkscape aber auch Powerpoint besteht diese Einschränkung nicht. Dafür können die gezeichneten Formen aber nicht als Modellelemente erkannt und ggf. weiterverarbeitet werden. Eine Idee diesem Problem zu begegnen ist das sogenannte "Relaxed Conformance Editing", das, wie der Name schon sagt, nicht immer Metamodellkonforme grafische Darstellungen fordert.

Projektbeschreibung

Im Rahmen einer Masterarbeit ist eine Implementierung der Konzepte des Relaxed Conformance Editing entstanden. Diese Umsetzung, namens CouchEdit, besteht aus einem Backend, welches die grundlegenden Konzepte umsetzt und ein prototypisches Frontend, welches der Demonstration der Funktionen des Backends dient. Dieses Backend nimmt beliebige grafische Elemente und versucht, das Modell daraus zu abstrahieren bzw. zu parsen, indem z.B. räumliche Positionen zueinander in Betracht gezogen werden.
In diesem Projekt soll die Entwicklung an CouchEdit, insbesondere des grafischen Frontends, fortgesetzt werden. Es soll unter Verwendung entsprechender Open Source Frameworks (z.B. https://github.com/jgraph/drawio) als Web-Anwendung implementiert werden. 

Voraussetzungen
  • Gute Kenntnisse in Webprogrammierung (javascript, typescript, ...)
  • Gute Programmierkenntnisse in einer JVM-basierten Sprache, vorzugsweise Kotlin (für die Anbindung an das Backend)
Ansprechpartner

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

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

G: Development of Eclipse Plug-Ins for VariantSync

Wer kennt es nicht: Ihr oder euer Team entwickelt eine Software und eines Tages braucht ihr verschiedene Ausführungen (oder auch Varianten). Dabei kann es sich etwa um die Portierung auf andere Systeme, das Umkonfigurieren einzelner Variablen oder um weitreichende Anpassungen im Verhalten des Programms handeln. Zum Beispiel wollt ihr vielleicht, dass eure Desktopanwendung nun auch auf dem Smartphone läuft und je nachdem, ob GPS verfügbar ist andere Daten bereitstellt. Dazu müsst ihr nun eigentlich eine geeignete Softwarearchitektur entwerfen, für die euer Programm aber vielleicht nie gedacht war, und ein großes Refactoring anstoßen. Und hattet ihr nicht eigentlich dieses eine Feature oder jene Utility-Funktionen, die ihr jetzt gerade braucht, nicht vor ein paar Semestern eh schonmal für ein anderes Projekt geschrieben? Da ist es doch viel einfacher, die alte Software und die ganzen alten Codefragmente zu kopieren und fix anzupassen!

Was in diesem kleinen Beispiel noch einfach klingt, kann in Industrie und Praxis zu großen Problemen führen. Je mehr Varianten eurer Software ihr habt (z.B. in vielen Branches oder Forks), desto größer wird der Aufwand diese parallel zu entwicklen, zu warten und zu synchronisieren. Es passiert schnell, dass Entwickler den Überblick verlieren, Features doppelt implementieren oder Bugs zwar beheben, aber nicht in allen entsprechenden Varianten. Oft ist es aber auch völlig unklar, ob eine gefixter Bug so in den anderen Varianten überhaupt auftrat, vor allem, wenn es sich um Randfälle oder bestimmte Interaktionen von Features handelt. In der Praxis sind manche Entwickler sogar ausschließlich mit der Lösung von Merge-Konflikten beschäftigt.

VariantSync ist ein Forschungsprojekt in dem es darum geht Variabilität in solchen Clone-and-Own-Projekten zu verwalten. Wir wollen Entwicklern dabei helfen eine Übersicht über ihre Varianten und die darin implementierten Features zu gewinnen, damit die Varianten gezielt und vollständig synchronisiert werden können (z.B. nach einem Hotfix). Dazu implementiert ihr die Kernfunktionalität in einer Java-Bibliothek, sodass diese in anderen Werkzeugen wiederverwendet werden kann. Basierend auf dieser Bibliothek entwickelt ihr dann in Eclipse eine IDE.

Weitere Informationen findet ihr auf unserer Webseite:
https://www.uni-ulm.de/in/sp/teaching/project-development-of-eclipse-plug-ins-for-variantsync/

Wir freuen uns auf euch!

Ansprechpartner

H: Elektrobit: User Interface. Functional Development. Android. Jetpack Compose. Showkase.

Wir bei Elektrobit in Ulm entwickeln unter anderem Android basierte Infotainmentsysteme für Fahrzeuge verschiedener namhafter etablierte Hersteller, wie Audi, Porsche, Bentley, Ford, und Quereinsteiger wie Sono Motors oder Sony. Wir zeichnen uns dadurch aus, dass wir es zuletzt immer wieder geschafft haben Entwicklungsmethoden und Technologien aus der Consumer-Industrie den Weg in die Automobilindustrie zu ebnen.

Mit dem diesjähriges Softwareprojekt sollt Ihr uns helfen, die Grundlagen dafür zu legen zukünftig User Interfaces in Android mit Jetpack Compose und Kotlin funktional zu Implementieren.

Im Rahmen des Praktikums sollt Ihr lernen, wie man ansprechende User Interfaces in Android funktional entwickeln kann. Dazu lernt Ihr zunächst neben Android und Kotlin das brandneue Jetpack Compose kennen.

Zunächst werdet Ihr eine Referenzimplementierung einer Android Automotive Applikation entwickeln. Als Entwicklungsmethode soll Component-Driven Development eingesetzt werden. Außerdem sollt Ihr einen Komponentenhub basierend auf Airbnb's Showkase entwickeln, welcher Euch helfen wird Eure Komponenten und deren Verhalten in Isolation zu explorieren, zu testen, und zu analysieren, z.B. durch Einbindung eines Profilers.

Im Projekt habt Ihr die Gelegenheit dem spannenden Alltag der Infotainmententwicklung bei Elektrobit näher zu kommen und mehr über neuste Sprachen, Methoden und Werkzeuge der Softwareentwicklung zu lernen. Unter anderem werden wir Euch helfen unsere Theming Engine zu integrieren, um User Interfaces noch flexibler erstellen und aktualisieren zu können.

Wir freuen uns darauf das Projekt mit Euch gemeinsam zu starten, und den Beweis zu liefern, dass User Interface Entwicklung auch ganz anders als bisher funktionieren kann!

Eurer Team von Elektrobit,
    Marcel Dausend

Elektrobit Beispiel: Wechsel zwischen Android-Themes zur Laufzeit mit Jetpack Compose.

I: Web-Frontend für Labgrid

Labgrid ist ein Python-basiertes, verteiltes Framework für Test & Development im Embedded-Umfeld. Dieses Framework führen wir derzeit für die Laborautomatisierung bei MLE ein. Aktuell gibt es nur einen Client für die Kommandozeile. Es soll daher ein Dashboard-artiges Web-Frontend entwickelt werden, welches auf übersichtliche Weise alle exportierten Hardwareressourcen und diesen zugeordnete Laborarbeitsplätze anzeigt. Insbesondere soll sich der Benutzer hiermit über den Belegungszustand von Harwareressourcen wie z.B. Evaluation Boards oder schaltbare Steckdosen informieren können, wodurch das jetzige System von recht statischen Labsheets in Papierform ergänzt oder ganz ersetzt werden soll. Im nächsten Schritt könnten Resourcen wie serielle Konsolen, Videostreams oder PDUs (schaltbare Steckdosen) über den Browser zugänglich gemacht werden.

Voraussetzungen

Grundkenntnisse in Python sind hilfreich. Es sind keine Kenntnisse der Elektrotechnik für dieses Projekt erforderlich.

Zielsetzung

Der Open-Source-Gedanke steht im Vordergrund: Die Requirements sollen nicht nur intern, sondern auch in Zusammenarbeit mit der Community auf GitHub erarbeitet werden. Das Upstreaming der Ergebnisse ist, neben der Funktionalität, ein Ziel des Projekts.

Ansprechpartner

J: Detektion von Status-LEDs auf Videostreams

Auf Embedded-Boards sind wichtige Statusinformationen (z.B. Link vorhanden, Boot erfolgreich) oft nur durch LEDs zugänglich; Laboraufbauten werden deshalb gelegentlich mit Kameras fernüberwacht. Es wäre sehr hilfreich, wenn Statusinformationen nicht nur visuell über den Videostream, sondern auch maschinenlesbar verfügbar wären, um z.B. automatisierte Tests besser steuern zu können oder die Statuswechsel zu loggen. Oft ist nicht nur von Interesse, ob eine LED ein- oder ausgeschaltet ist; auch andere Eigenschaften wie z.B. Farbe oder Blinkrate können relevant sein.

Dieses Projekt stellt einen Teilaspekt eines umfassenderen Board State Distribution Systems (BoSS) dar, zu dem ein Konzeptpapier auf GitHub vorliegt.

Voraussetzungen

Vorkenntnisse in Computer Vision und Python sind hilfreich. Es sind keine Kenntnisse der Elektrotechnik für dieses Projekt erforderlich. Ein Evaluation Board sowie eine Kamera können für die Dauer des Projekts von uns zur Verfügung gestellt werden.

Zielsetzung

Ein erster Prototyp, mit dem unter realistischen Bedingungen (z.B. Erschütterungen, Lichtreflexionen) der Zustand von Status-LEDs auf einem Embedded-Board erkannt werden kann. Die Integration in ein zukünftiges Board State Distribution System (BoSS) soll bei der Entwicklung berücksichtigt werden.

Ansprechpartner

K: Kompatibilitätsdatenbank für FMC Host- und Erweiterungskarten

Bei MLE verwenden wir für Prototypen und Entwicklungsplattformen verschiedene FPGA-Evaluierungsboards nebst Erweiterungskarten. Diese werden mit Hilfe einer standardisierten Schnittstelle, FPGA Mezzanine Card (FMC), verbunden. Da der Standard viele Varianten zulässt, ist die Kompatibilität der Host- und Erweiterungskarten (Mezzanine Cards) grundsätzlich zu prüfen. Hinzu kommt, dass mittlerweile eine Weiterentwicklung (FMC+) des Standards existiert, welche in großen Teilen rückwärtskompatibel ist.

Eine Datenbank, die eine Übersicht über die Kompatibilität von Erweiterungs- und Hostkarten, bzw. eine automatisierte Kompatibilitätsprüfung mit Hilfe einer maschinenlesbaren Beschreibung der implementierten Schnittstellenparameter (z.B. Pinbelegung, verfügbare vs. angeforderte Spannungsbereiche, mechanische oder sonstige Besonderheiten) bietet, wäre daher sehr hilfreich.

Voraussetzungen

Vorkenntnisse in der Modellierung von Datenbanken sind hilfreich. Kenntnisse der Elektrotechnik sind nicht erforderlich, können aber beim Verständnis der Problemstellung hilfreich sein.

Zielsetung

Es soll ein geeignetes Datenbankmodell sowie ein Web-Frontend entwickelt werden, mit dem FMC Host- und Erweiterungskarten auf Kompatibilität geprüft werden können. Dieses Projekt soll die Basis für eine öffentlich nutzbare Infrastruktur liefern, welche die FPGA-Community dabei unterstützt effizient und mit geringerem Risiko Prototypenplattformen aus kommerziell verfügbaren (commercial off-the-shelf, COTS) Evaluationskarten zusammen zu setzen.

Ansprechpartner

L: eSano - eHealth Plattform für Internet- und Mobile-basierte Interventionen

Internet- und Mobile-basierte Interventionen (IMIs) können als ort- und zeitunabhängige Angebote dazu beitragen, die psychotherapeutische Versorgung zu verbessern. Die Abteilung für Klinische Psychologie und Psychotherapie untersucht die Wirksamkeit und Kosten-Effektivität, Akzeptanz und Inanspruchnahme sowie zugrundeliegende Wirkfaktoren von E-Mental-Health Interventionen. Im Fokus stehen therapeutisch begleitete und unbegleitete Selbsthilfeinterventionen, die Kombination klassischer Psychotherapien mit Online-Angeboten ("blended-therapy"), sowie die Entwicklung und Erforschung neuer e-Health-Ansätze. Um solche IMIs bereitstellen zu können, bedarf es einer umfassenden technischen Unterstützung in Form einer e-Health-Plattform. Im Rahmen eines interdisziplinären Kooperationsprojekts wird seit Ende 2017 die eSano eHealth-Plattform für Internet- und Mobile-basierte Interventionen entwickelt und bereits in mehreren Studien mit Patienten sowie Lehrveranstaltungen der Abteilung eingesetzt.

Weitere Informationen zum Projekt findet sich auf der Projektseite des DBIS.

Wir suchen im Wintersemester 21/22 motivierte Studierende zur Unterstützung unseres interdisziplinäres Teams bei der (Weiter-)Entwicklung von eSano. Dabei können in folgenden Bereichen wertvolle praktische Erfahrungen gesammelt werden:

  • Automatisiertes Backend-Testing (API/Integrationstests: Laravel, Codeception) und/oder Frontend-Testing (Selenium)
  • Weiterentwicklung der Teilnehmenden-App (Ionic)
Ansprechpartner:
  • Robin Kraft, Institut für Datenbanken und Informationssysteme

M: AWARE Mobile Sensing Framework

Das Projekt AWARE beschäftigt sich mit der Erweiterung des Open-Source AWARE-Frameworks (https://awareframework.com/). Das Framework besteht aus einem zentralen Backend und einer mobilen App (Android, iOS), die es ermöglicht, Daten verschiedenster Smartphone-Sensoren aufzuzeichnen und zu verarbeiten. Dabei werden Sensor-Rohwerte in regelmäßigen Abständen erfasst und ggf. zu höherwertigen Informationen weiterverarbeitet. Weiterhin werden zusätzliche Daten z.B. zur Appnutzung oder der Anzahl der Anrufe erfasst. Zusätzlich ermöglicht die App zu unterschiedlichen Zeitpunkten Fragebögen anzuzeigen und diese von den Nutzenden ausfüllen zu lassen. In der App kann weiterhin eine grafische Übersicht über die

gesammelten Daten eingesehen werden.Weitere Informationen zum Projekt findet sich auf der Projektseite der DBIS.

Wir suchen im Wintersemester 21/22 motivierte Studierende zur Unterstützung unseres interdisziplinäres Teams bei der (Weiter-)Entwicklung von AWARE. Dabei können in folgenden Bereichen wertvolle praktische Erfahrungen gesammelt werden:

  • Erweiterung und Anpassung der mobilen Android-Anwendung im Bereich Mobile Sensing (eine iOS-Version ist geplant)
    • Entwicklung neuer Features (z.B. Schrittzähler, Wortkategorie-Counter, Auswertung von Daten in Echtzeit)
    • Anpassungen der Oberfläche (z.B. Anpassung der grafischen Darstellung von Daten in der App)
  • Erweiterung und Anpassung des Web-Backends
Ansprechpartner:
  • Robin Kraft, Institut für Datenbanken und Informationssysteme

N: CAREERFLUENCE

Die adesso SE beschäftigt eine Vielzahl von Studenten und Trainees, auch “Young Professionals” 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 bezogen, sodass ein einheitlicher Überblick nur schwer 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.

Zielsetzung

Ziel dieses Projektes ist die Weiterentwicklung eines Prototyps in Form einer zentralen Webanwendung. 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 unter anderem folgende Funktionen beinhalten:

  • 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
  • Projektbedarf: Führungskräfte/Projektleiter sollen die Möglichkeit haben Bedarf für Projektunterstützung durch Young Professional anmelden zu 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
  • Anwesenheits-/ Abwesenheitsplanung: Plan, der die Anwesenheit- bzw. Abwesenheit der Young Professional anzeigt
  • Profilverwaltung: Jeder Young Professional soll die Möglichkeit besitzen sein Profil selbständig verwalten zu können
  • Anbindung von adesso Systemen: Anbindung an den adesso Profiler, um die Skills der Young Professionelles zu laden sowie eine Anbindung an das ADFS von adesso für Single Sign-on
Erwartete Anforderungen / Fachkompetenzen
  • Softwarelebenszyklus & Agile Softwareentwicklung
  • Softwareentwicklungskenntnisse in Java (Spring Boot)
  • Datenbankkenntnisse
  • Kenntnisse in der Webentwicklung (HTML, JavaScript, Angular)
  • Git-Kentnisse
Ansprechpartner

O: Furniture Advisor

Eine Mobile App, die den Endkunden in der Auswahl eines passenden Möbelstücks unterstützen soll.

Ausgangssituation

Ein Kunde sucht ein Produkt, welches zu seiner bisherigen Ausstattung passt, hat aber noch keine genaue Vorstellung welche Produkte passen könnten. Eine vorhandene REST Schnittstelle soll angebunden werden und liefert zu den gewählten Suchparameter die entsprechenden Treffer. Neben der manuellen Erfassung der Suchparameter soll es zur Vereinfachung auch die Möglichkeit geben mit Hilfe eines Bildes (oder Videos) eines Raumes einzelne Suchparameter vorzubelegen, wie z.B. Stil, Farbe oder Größe.

Folgende Funktionen soll die Mobile App haben:

  • Abfrage des Endkunden nach Bedarf (z.B. Sofa, Lampe, Dekoartikel)  ggf. schon mit Vorliebe für eine bestimmte Farbe/Form/Material
  • Anbindung REST Schnittstelle
  • Aufnahme Bild (oder Video) eines Raumes
  • Erkennung mindestens eines Merkmals zur Vorbelegung der Suche
  • Anzeige der Produktvorschläge

Herausforderungen

  • Erstellung App für Android und iOS
  • Auswahl App Framework
  • Entwicklung lauffähige mobile App mit benutzerfreundlicher Oberfläche
  • Bildverarbeitung/ -erkennung ggfs. mit Lernalgorithmen
Ansprechpartner

P: Redu

A recommender system for learning and educational purposes

An educational platform where a recommender system provides users with sound recommendations has been the subject of many projects, there are still unfilled gaps which provide opportunities for promising research. One of the promising areas is to provide techniques of generating recommendations which not only reflect the continuously changing nature of user interests and preferences, but also influence these interests. To this end, mining user preference and interests would provide a valuable source for our system to enable useful recommendations generation. The data to be mined should be obtained through In addition, tracking user behaviour on the system would enable measuring how effective the recommendation received is and whether it would influence the user decision.
Another promising area, is concerned with explaining suggested recommendations. From one side, there is a need to study how to provide a convincing explanation of a recommendation generated by the system. This explanation should reflect the internal inference mechanism which was adopted by the recommendation algorithm used.

We are looking for motivated students who can support our team in the development and thereby gain valuable practical experience in the following areas:

  • Building and maintaining a Frontend of a web app for the system.
  • Building and maintaining a Backend (REST-based) of a web app for the system.
  • Building the core recommender module.

For more information about the project, visit the related section on DBIS projects: https://www.uni-ulm.de/in/iui-dbis/lehre/projekte/

Contact

Q: Generator für Datenströme

Anwendungsfälle mit Datenströmen nehmen in Zeiten von intelligenten Maschinen, Smartphones und Smart Cities stark zu. Bei eXXcellent solutions betreiben wir u.a. eine Datenpipeline für Sensoranbindungen der Stadt Ulm.

Projektbeschreibung

In diesem Projekt soll ein Datengenerator entstehen, der mittels einer grafischen Oberfläche verwaltet wird. In der Oberfläche selektiert der Benutzer die gewünschten Parameter (z.B. Frequenz, Intervall, Zufällige Ausfälle) und wählt anschließend das passende Ausgabeformat. Für die Ausgabeformat eigenen sich vor allem Event-basierte Protokolle wie MQTT, OPC UA, Apache Kafka und auch Websockets. Der Datengenerator soll anschließend zu Testzwecken in Projekten verwendet werden.

Vorkenntnisse

Für dieses Projekt werden keine besonderen Vorkenntnisse benötigt. Kenntnisse über benötigte (Eventbasierte-)Protokolle können während des Projektes erworben werden.

Ansprechpartner

*https://ttndata.cortex-media.de/grafana/d/wkcLA7VMk/lora-park?orgId=1&refresh=1m

Ablauf zur Generierung der Datenströme
Datenströme aus dem Lorapark der Stadt Ulm*

R: AR-basiertes Aufmaß-Tool für Privatuser

immersight entwickelt mit dem 3D-Showroom eine Cloud-Lösung für Virtuelle Ausstellung. Seit 1 Jahr entwickelt immersight auch den 3D-Workroom zur Baustellendokumentation und -kommunikation. 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.

Projektbeschreibung

Der wichtigste und entscheidende Schritt für die Projektierung einer Raumsanierung ist die Bestandsaufnahme. Bei diesem ersten Mal wo ein Fachmann den Ausgangszustand des Endkunden sieht, versteht er, was zu machen ist und was technisch nicht möglich ist. Fast immer findet dann auch das sogenannte "Aufmaß" statt, also die Vermessung alle wesentlicher Längen, Breiten und Höhen. Besonders im Fokus stehen hierbei Badezimmer und Heizräume.

Da Handwerker sehr häufig zu Endkunden fahren um eben dieses Aufmaß vor Ort zu machen, wäre es eine enorme Prozessoptimierung, wenn der Handwerker dem Endkunden einen Link schicken könnte, den der Endkunde auf seinem Smartphone öffnet, und dann durch einen Wizard geleitet wird, der ihn mittels AR befähigt, selber ein qualifiziertes Aufmaß zu machen. Idealerweise entsteht ein ganzer Grundriss mit echten Fotos von verschiedenen Perspektiven. Diese Daten werden dann direkt an den Handwerker übermittelt, indem Sie als neues Projekt in seinem 3D-Workroom angelegt werden.

Die Anwendung soll browser-basiert sein und idealerweise als PWA realisiert sein, sodass Internetausfälle keine Probleme machen. WebAR ist derzeit eine Technologie die immer mehr an Bedeutung gewinnt. Verschiedene Frameworks für WebAR zur Vermessung von Distanzen im Raum existieren bereits. Die Vorgaben für ein qualifiziertes Aufmaß im Badezimmer werden von immersight bereitgestellt.

Ansprechpartner