Softwarepraktikum (21W)
Thema | Betreuer(in) |
---|---|
Der Anti-Metamorphopsie-Visor von/für Geordi La Forge | P. Schartner |
go2algo NG – Re-Engineering von go2algo | P. Schartner |
GDPR-compliant oblivious Web-Browser in a (RAM-)Box | P. Schartner |
Heuristic Password Cracking | E. Teppan P. Schartner |
Next generation Video Platform
Learn how Netflix, YouTube & Co works and contribute to the next generation Video
Platform in the context of the ATHENA project.
|
C. Timmerer |
Graphical Design Interface for modeling Temporal Activity Charts
The student builds an (web-) application which allows modelling of UML activity charts with additional temporal
constructs (such as activity durations and temporal constraints) in an intuitive way (e.g. drag & drop of elements).
|
J. Lubas |
DSGVO-konformes Einwilligungs-Management
Einwilligung ist eine der gesetzlichen Grundlagen, welche die Verarbeitung von personenbezogenen Daten erlaubt.
Die Einwilligung muss jedoch (inkl. Kontaktdaten) dokumentiert werden und sie kann zudem widerrufen werden.
Das zu entwickelnde Tool soll die DSGVO-konforme Verwaltung von Einwilligungen zu diversen Verarbeitungsvorgängen
und deren Verantwortliche unterstützen.
|
P. Schartner |
APP zum Scannen, Archivieren und Suchen | P. Schartner |
Etablierung einer Smart Home Software–Werkstatt
Die auf Java basierende Software Plattform Openhab (www.openhab.org) integriert die Smart Home Komponenten zahlreicher Anbieter und ermöglicht die Entwicklung eigener Treiber (Bindings) für „exotischere“ Anwendungen. Als Vorbereitung für künftige Forschungsprojekte sollen die Studierenden die Openhab Entwicklungsumgebung aufsetzen, einige – noch zu vereinbarende – Treiber implementieren und für spätere Anwendungen entsprechend dokumentieren.
Gruppengröße: 2-3 Studierende
Technologie: Java |
G. Leitner |
Smart Home Konfigurator
Heutzutage wird eine Vielzahl an Smart Home Produkten am Markt angeboten, jedoch ist es besonders für technische Laien oft schwer festzustellen, ob die angebotenen Funktionen für die eigenen Anforderungen (Lebensumstände) geeignet sind. Es soll eine Plattform entwickelt werden, die es interessierten Personen ermöglicht, ihre Lebenssituation inkl. der Anforderungen zu modellieren (Konfigurator) um im Anschluss verfügbare Smart Home Funktionen bezüglich ihrer Eignung/Passung zu prüfen.
Gruppengröße: 2-3 Studierende
Technologie: Spring Boot, Thymeleaf, Bootstrap |
G. Leitner |
Zero Knowledge Playground: Enforcing correct decisions over private data on blockchains | J. Köpke |
Automatische Generierung von Wochen- und Jahresplänen für Lehrer*innen in der GECKO-Plattform
In der GECKO-Plattform werden Kompetenzen gesammelt, die Schüler*innen, Studierende aber auch Berufstätige beherrschen bzw. erlernen können. Lehrende können diese Kompetenzen für eigene Kurse sammeln und in eine passende Reihenfolge bringen. In diesem Praktikum soll die Plattform um eine automatische Generierung von Wochen- bzw. Jahrespläne nach einem vorgegebenen Muster erweitert werden.
|
S. Pasterk |
Verbesserung des Nutzungserlebnisses (User Experience) und der Bedienfreundlichkeit (Usability) der Webplattform GECKO
Im Rahmen des Projekts DigiFit4All wird die Webplattform GECKO weiterentwickelt und in Hinblick auf User Experience und Usability überarbeitet. In diesem Praktikum sollen dazu Anforderungen erhoben und soweit wie möglich umgesetzt werden.
|
S. Pasterk |
What the heck did you change? Tool zur Extraktion von Änderungen in Gradle Build Konfigurationen
Build Konfigurationen beschreiben wie ein Software Produkt kompiliert, getestet und ausgeliefert werden soll. Änderungen in solchen Build Konfigurationen haben eine wichtige Bedeutung, da sie dafür verantwortlich sein können, dass Build Ausführungen fehlschlagen. Zur Analyse welche Auswirkung bestimmte Änderungen auf den Erfolg des Builds haben, soll ein Tool erstellt werden, das Änderungen zwischen verschiedenen Versionen einer Gradle Build Konfiguration automatisiert extrahieren kann.
|
C. Macho |
The Build Oracle: Vorhersage von Build Resultaten mittels Machine Learning
In modernen Continuous Integration/Deployment Umgebungen soll jede Änderung am Source Code direkt in das Projekt integriert, getestet und zum Kunden ausgeliefert werden. Manche Änderungen weisen jedoch Eigenschaften auf, die es unnötig oder unsinnig machen, den ganzen Continuous Integration/Deployment Prozess anzuwerfen, weil man bereits antizipieren kann, dass dieser nicht erfolgreich zu Ende gehen wird. In diesem Projekt soll ein Machine Learning Model entwickelt werden, das frühzeitig erkennen kann, ob es sinnvoll ist, den Continuous Integration Prozess zu starten.
|
C. Macho |
Tool zum automatisierten Reparieren von fehlgeschlagenen Software Builds
Software Builds automatisieren das Kompilieren, Testen und Zusammenbauen von Softwareprojekten. Oft führen Fehler in der Software, z.B. in der Konfiguration oder im Code oder in Tests, dazu, dass Software Builds fehlschlagen und das Projekt nicht ausgeliefert werden kann. In diesem Projekt geht es darum ausgewählte Fehlertypen zu identifizieren und Strategien zum automatisierten Reparieren dieser Fehler zu implementieren.
|
C. Macho |
Erkennung von Problemen mit Build Systemen anhand von Fragen, Themen und Antworten auf StackOverflow
Anhand der Fragen und Antworten, die auf Stack Overflow verfügbar sind, sollen die Probleme, die Entwickler mit dem Umgang von Build Systemen (z.B. Apache Maven oder Gradle), erkannt und analysiert werden. Eine interessante Fragestellung ist zum Beispiel ob bei allen Build Systemen die gleichen Fragen auftreten, oder ob es hier Unterschiede gibt.
|
C. Macho |
How to cut the cake? – Transforming Monoliths to Microservices
In den letzten Jahren erfreuen sich Microservices als Trend in der Softwareentwicklung großer Beliebtheit. Microservices sind kleine dezidierte Softwarestücke, die separat programmiert, getestet und ausgeliefert werden können. Es hat sich auch gezeigt, dass das Zerlegen von alten, großen Projekten, genannt Monolithen, sehr schwierig sein kann und in manueller Arbeit oft zu Fehlern führen kann. In dieser Arbeit soll ein Tool programmiert werden, das Monolithen analysiert und Vorschläge zu deren Zerlegung macht bzw. diese in weitere Folge sogar automatisiert durchführen kann.
|
C. Macho |
Risk-based Test Case Selection
Im Rahmen eines Software Builds werden in Projekten oft hunderte, tausende oder noch mehr Tests ausgeführt, um Fehler im Programm Code zu finden. Die Ausführung solcher Tests kann mitunter sehr viel Zeit in Anspruch nehmen und dadurch die Auslieferung der Software verzögern. Außerdem werden sehr viele Ressourcen verschwendet, weil viele Tests durchlaufen werden, die unter Umständen gar nicht notwendig gewesen wären. In diesem Projekt soll ein Tool entwickelt werden, das auf Basis von z.B. Software Metriken, jene Tests priorisiert oder selektiert, die mit großem Risiko behaftet sind und deshalb am ehesten einen Test fehlschlagen lassen.
|
C. Macho |
Eigene Themen sind willkommen – Rahmenbedingungen siehe oben! |